# Laufender Betrieb

Zeitplan, Suchindex, Vorgehen bei fehlenden Daten und häufige Fragen.

# Zeitplan der Übertragungen

Unter **FINN.webshop → Zeitsteuerung** wird festgelegt, wie oft jede Aufgabe läuft. Auf
derselben Seite stehen das Protokoll, der Zeitpunkt der letzten Ausführung und der nächste
geplante Termin.

<!-- TODO Screenshot: images/betrieb-zeitsteuerung.png -->

## Die Aufgaben

| Aufgabe                                    | Was sie tut                                            |
| ------------------------------------------ | ------------------------------------------------------ |
| geänderte Artikel exportieren               | Artikel, die sich geändert haben                          |
| Alle Artikel exportieren                    | Vollexport mit Bildern                                    |
| Alle Artikel exportieren (ohne Bilder)      | Vollexport ohne Bilder                                     |
| Alle Artikelbilder exportieren              | nur die Bilder                                             |
| Artikelleichen entfernen                    | räumt im Shop auf, was nicht mehr freigegeben ist            |
| Preise exportieren                          | Preise aller freigegebenen Artikel                          |
| Artikelbestand exportieren (geändert)       | Bestände mit Bewegung seit dem letzten Lauf                  |
| Artikelbestand exportieren (komplett)       | alle Bestände                                               |
| Artikelgruppen exportieren                  | Gruppenstruktur und Gruppenbilder                            |
| Stammdaten synchronisieren                  | Lieferanten, Mitarbeiter, Steuern, Bedingungen, Pakete         |
| Extratabellen exportieren                   | zusätzlich ausgewählte Tabellen                                |
| XDATZUORD exportieren                       | Dateien und Dokumente zu Artikeln                              |
| Kunden exportieren                          | alle freigegebenen Kunden                                      |
| Kunden exportieren (geändert)                | nur geänderte Kunden                                            |
| neue Belege importieren                     | Bestellungen und Anfragen holen                                  |
| geänderte Belege exportieren                 | Belege fürs Kundenkonto                                          |
| Status exportieren                          | Bearbeitungsstatus der Belege                                     |
| Newsletteradressen importieren              | Newsletter-Anmeldungen in die SelectLine                           |
| ElasticSearch Vollindex                     | Suchindex neu aufbauen, siehe [Suchindex](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/suchindex)             |

## Die Aufgaben laufen nacheinander

Das ist der wichtigste Punkt bei der Planung: Aufgaben laufen **nicht gleichzeitig**.
Startet eine, während eine andere arbeitet, wartet sie.

<p class="callout danger">Läuft ein Vollexport aller Artikel mehrere Stunden, warten in dieser Zeit alle anderen Aufgaben — auch der Belegimport. Vollexporte gehören daher auf eine feste Uhrzeit in der Nacht und nicht in ein Intervall.</p>

Ein Start von Hand über die Oberfläche umgeht das Warten und läuft sofort.

## Empfehlung für einen mittelgroßen Shop

| Aufgabe                                   | Empfehlung          | Begründung                                      |
| ----------------------------------------- | ------------------- | ----------------------------------------------- |
| neue Belege importieren                    | alle 5 Minuten       | Bestellungen sollen zeitnah im ERP stehen          |
| Artikelbestand exportieren (geändert)      | alle 5 Minuten       | häufigste Änderung im Tagesgeschäft                 |
| Status exportieren                         | alle 10 Minuten      | Kunde sieht den Fortschritt                         |
| geänderte Artikel exportieren               | alle 15 Minuten      | Stammdatenänderungen zeitnah                         |
| geänderte Belege exportieren                | alle 15 Minuten      | Belege fürs Kundenkonto                              |
| Kunden exportieren (geändert)               | stündlich            |                                                    |
| Preise exportieren                         | stündlich            | erfasst neue Preise und abgelaufene Aktionen          |
| Stammdaten synchronisieren                 | stündlich            | überträgt auch die Paketdaten                          |
| Artikelgruppen exportieren                 | stündlich            | läuft nur bei Änderungen, daher billig                  |
| Newsletteradressen importieren             | täglich              |                                                       |
| XDATZUORD exportieren                      | nachts, feste Zeit   |                                                       |
| Extratabellen exportieren                  | nachts, feste Zeit   | überträgt immer den vollen Inhalt                       |
| Artikelbestand exportieren (komplett)      | nachts, feste Zeit   | Korrekturlauf                                          |
| Alle Artikel exportieren (ohne Bilder)     | nachts, feste Zeit   | Korrekturlauf                                          |
| Artikelleichen entfernen                   | nachts, feste Zeit   | nach dem Vollauf                                        |
| ElasticSearch Vollindex                    | nachts, feste Zeit   | siehe [Suchindex](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/suchindex)                          |
| Alle Artikel exportieren                   | nur von Hand         | läuft je nach Artikelzahl viele Stunden                   |
| Alle Artikelbilder exportieren             | nur von Hand         | oder nach einer Bildaktion                                |
| Kunden exportieren                         | nur von Hand         | Vollauf, sonst genügt der Änderungslauf                    |

## Warum die nächtlichen Korrekturläufe wichtig sind

Der Änderungslauf erkennt Artikel daran, dass sich der Artikelstamm geändert hat. Zwei
Dinge entgehen ihm:

- **Preisänderungen und ablaufende Aktionen** — dafür gibt es *Preise exportieren*.
- **Änderungen in Nebentabellen** — Merkmale, Zubehör, Sachmerkmale, Fremdbezeichnungen.
  Dafür der nächtliche Vollauf ohne Bilder.

<p class="callout warning">Ohne diese Läufe können Änderungen dauerhaft im Shop fehlen.</p>

## Reihenfolge in der Nacht

Sinnvoll ist, die nächtlichen Läufe in dieser Ordnung zu staffeln — mit genug Abstand,
damit sie sich nicht blockieren:

1. Alle Artikel exportieren (ohne Bilder)
2. Preise exportieren
3. Artikelbestand exportieren (komplett)
4. Artikelleichen entfernen
5. XDATZUORD exportieren
6. Extratabellen exportieren
7. ElasticSearch Vollindex

<p class="callout info">Der Suchindex gehört ans Ende: Er soll den Stand nach allen Übertragungen abbilden.</p>

## Was im Protokoll steht

Das Protokoll zeigt den Fortschritt, übersprungene Datensätze und Fehler.

<p class="callout warning">Ein Lauf gilt als erfolgreich beendet, auch wenn einzelne Artikel gescheitert sind. Der Abschluss allein ist also kein Nachweis dafür, dass alles im Shop angekommen ist — dafür muss man ins Protokoll schauen.</p>

Siehe [Wenn etwas nicht im Shop ankommt](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/wenn-etwas-nicht-im-shop-ankommt).

# Suchindex

Die Artikelsuche des FINN.webshop arbeitet mit einem Suchindex. Ein Artikel wird im Shop
erst gefunden, wenn er dort erfasst ist — die übertragenen Daten allein genügen nicht.

<!-- TODO Screenshot: images/betrieb-suchindex.png -->

## Einzelne Artikel

Nach jedem übertragenen Artikel stößt FINN.ghost dessen Neuindizierung im Shop an. Im
Normalbetrieb ist der Index damit ohne weiteres Zutun aktuell.

<p class="callout info">Das passiert nur für Artikel, die freigegeben sind. Ein Artikel, dessen Freigabe entfernt wurde, wird übertragen aber nicht neu indiziert — er verschwindet über den Shop aus der Suche.</p>

## Vollindex

Die Aufgabe **ElasticSearch Vollindex** baut den Index für das gesamte Sortiment neu auf.

Nötig ist sie:

- nach der Erstbefüllung
- nach einem Vollexport aller Artikel
- wenn die Suche Artikel nicht findet, die im Shop vorhanden sind
- nach Änderungen an der Suchkonfiguration des Shops

<p class="callout warning">Der Vollindex kann bei großen Sortimenten lange laufen. FINN.ghost räumt dafür eine großzügige Wartezeit ein. Läuft der Shop dennoch in eine Zeitüberschreitung, erscheint im Protokoll ein Hinweis auf den Timeout — der Shop arbeitet den Index aber meist im Hintergrund weiter.</p>

Der Vollindex gehört ans **Ende** der nächtlichen Läufe, damit er den Stand nach allen
Übertragungen abbildet. Siehe [Zeitplan](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/zeitplan-der-ubertragungen).

## Wenn die Suche nichts findet

| Prüfpunkt                          | Hinweis                                                  |
| ---------------------------------- | -------------------------------------------------------- |
| Ist der Artikel im Shop vorhanden?  | im Shop-Adminbereich prüfen                                 |
| Ist er freigegeben?                 | ohne Freigabe wird nicht indiziert                           |
| Vollindex gelaufen?                 | Zeitpunkt in der Zeitsteuerung prüfen                         |
| Meldung im Protokoll?               | Fehler beim Index werden dort vermerkt                         |

<p class="callout info">Ein Artikel, der im Shop korrekt hinterlegt ist und trotzdem nicht gefunden wird, ist fast immer ein Indexthema — kein Übertragungsthema.</p>

## Weiter

[Wenn etwas nicht im Shop ankommt](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/wenn-etwas-nicht-im-shop-ankommt)

# Wenn etwas nicht im Shop ankommt

Die meisten Fälle lassen sich in wenigen Minuten selbst klären. Diese Seite geht die
häufigsten Situationen der Reihe nach durch.

## Ein Artikel fehlt im Shop

### 1. Ist das ShopAktiv-Feld gesetzt?

In der Artikelmaske das bei der Einrichtung vereinbarte Kennzeichen prüfen. Das ist mit
Abstand die häufigste Ursache.

### 2. Hat der Artikel einen Steuerschlüssel im Verkauf?

Fehlt er, bricht der Export dieses Artikels ab. Im Protokoll steht
„SSVerkauf für &lt;Artikelnummer&gt; nicht vorhanden!".

### 3. Ist die Artikelgruppe ausgeschlossen?

Steht die Gruppe auf der Ignorierliste, wird der Artikel übersprungen. Im Protokoll
erscheint der Hinweis auf den Gruppenfilter. Abhilfe: Gruppe von der Liste nehmen oder
*Shopaktive Artikel ohne Gruppenfilterung übertragen* einschalten.

### 4. Ist es ein Fertigungsartikel ohne Arbeitsplan?

Ein Fertigungsartikel ohne hinterlegte Fertigungsliste wird übersprungen, wenn die
SelectLine Fertigungsaufträge beim Speichern erzeugt.

### 5. Läuft die Aufgabe überhaupt?

Unter **FINN.webshop → Zeitsteuerung** nachsehen, ob *geänderte Artikel exportieren* ein
Intervall hat und wann sie zuletzt gelaufen ist. Steht die Aufgabe dauerhaft auf wartend,
blockiert ein großer Lauf.

### 6. Ist er nur nicht auffindbar?

Ist der Artikel im Shop vorhanden, wird aber nicht gefunden, ist es der Suchindex — siehe
[Suchindex](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/suchindex).

## Ein geänderter Preis kommt nicht an

Preisänderungen ändern den Artikelstamm nicht, der Änderungslauf bemerkt sie also nicht.
Die Aufgabe *Preise exportieren* von Hand starten oder auf den nächsten geplanten Lauf
warten.

Dasselbe gilt für **abgelaufene Aktionspreise**.

## Eine Merkmals- oder Zubehöränderung kommt nicht an

Auch das sind Nebentabellen, die der Änderungslauf nicht erkennt. Entweder den Artikel
einmal in der Artikelmaske speichern — dann gilt er als geändert — oder auf den nächtlichen
Vollauf warten.

## Der Bestand stimmt nicht

| Prüfpunkt                    | Hinweis                                                 |
| ---------------------------- | ------------------------------------------------------- |
| reservierte Menge             | wird standardmäßig abgezogen                                |
| Stückliste                    | Bestand ergibt sich aus der knappsten Komponente             |
| eigene Bestandsermittlung      | falls eingerichtet, gilt sie statt der Standardlogik           |
| Bestandsaufgabe gelaufen?      | Zeitpunkt in der Zeitsteuerung prüfen                          |

## Eine Bestellung fehlt in der SelectLine

Anders als bei Fremdplattformen bleibt eine gescheiterte Bestellung im Shop **offen** und
wird beim nächsten Lauf erneut versucht. Eine dauerhaft fehlende Bestellung bedeutet also,
dass ein Fehler wiederholt auftritt.

### 1. Wiederkehrende Meldung im Protokoll?

Nach der Belegnummer aus dem Shop suchen. Wiederkehrende Meldungen sind der Normalfall bei
einem dauerhaften Problem.

### 2. Bekannte Ursachen

| Ursache                                   | Erkennbar an                                            |
| ----------------------------------------- | ------------------------------------------------------- |
| Kunde hat Belegsperre                      | Meldung mit Kundennummer und Belegnummer                   |
| Artikel im Beleg nicht in der SelectLine    | Fehler beim Anlegen der Position                            |
| Belegtyp nicht zugeordnet                  | Beleg landet im vom Shop gemeldeten Belegtyp                 |
| Fehler im Makro *Bestellung angelegt*       | Beleg wird gelöscht, Meldung des Makros im Protokoll          |
| Zahlungsbedingung nicht ermittelbar         | Hinweis mit der Bezeichnung, Beleg entsteht trotzdem           |

<p class="callout warning">Beim Scheitern wird auch ein in diesem Zug neu angelegter Kunde wieder entfernt. Das ist gewollt, damit keine halben Datensätze zurückbleiben — es bedeutet aber, dass ein wiederholt scheiternder Import den Kunden immer wieder anlegt und löscht.</p>

## Der Shop ist nicht erreichbar

| Meldung im Protokoll                        | Bedeutung                                           |
| ------------------------------------------- | --------------------------------------------------- |
| Webserver für POST … nicht erreichbar        | Zeitüberschreitung oder Shop nicht erreichbar          |
| Webserver für UPLOAD … nicht erreichbar      | dasselbe beim Hochladen von Bildern oder Dateien        |

<p class="callout info">Bei großen Läufen ist das meist keine Störung der Verbindung, sondern eine Zeitüberschreitung des Webservers. Abhilfe: den Lauf aufteilen — Artikel ohne Bilder übertragen und die Bilder mit der eigenen Aufgabe nachziehen.</p>

## Regelmäßige Kontrolle

Zwei Dinge, die sich im Alltag bewährt haben:

- **Protokoll auf wiederkehrende Meldungen prüfen.** Weil gescheiterte Bestellungen
  wiederholt werden, ist jede sich wiederholende Meldung ein offener Punkt.
- **Anzahl der freigegebenen Artikel mit dem Shop vergleichen.** Die Differenz sind die
  Artikel mit unvollständigen Daten.

## Wenn es dabei bleibt

Wenden Sie sich an den Support und halten Sie bereit:

- die betroffene Artikel-, Kunden- oder Belegnummer
- den Auszug aus dem Protokoll zum Zeitpunkt des Laufs
- welche Aufgabe zuletzt gelaufen ist

# Häufige Fragen

## Muss ich im Shop noch Zuordnungen pflegen?

Kaum. Der FINN.webshop kennt die SelectLine-Struktur, deshalb gibt es keine Zuordnung von
Merkmalen, Kategorien oder Eigenschaften. Zu pflegen sind nur die Belegtypen, der
Neukunden-Typ und der Umfang der Übertragung.

## Warum sehe ich im Shop die Preise meiner Kunden?

Weil die Preistabelle der SelectLine mit übertragen wird und der Shop die Preisfindung mit
denselben Regeln rechnet — Preisgruppe, Staffel, Rabattgruppe, Aktionszeitraum. Dafür ist
keine Preisregel im Shop nötig. Siehe [Preise](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/preise).

## Was passiert, wenn ich einen Artikel im Shop von Hand ändere?

Bei der nächsten Übertragung wird die Änderung überschrieben. Der Shop ist als Abbild der
SelectLine gedacht, nicht als zweiter Pflegeort.

## Wie bekomme ich einen Artikel aus dem Shop heraus?

Das ShopAktiv-Feld entfernen. Beim nächsten Lauf wird der Artikel als nicht mehr shopaktiv
übertragen und aus dem Angebot genommen. Vollständig aufgeräumt wird er durch
*Artikelleichen entfernen*.

## Muss ich nach einem FINN.ghost-Update im Shop etwas nachinstallieren?

Nein. FINN.ghost aktualisiert die Schnittstellendateien im Shop beim Start selbst und prüft
anschließend die Datenbank des Shops. Siehe [Shopdaten](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/shopdaten).

## Ein Artikel ist im Shop, wird aber nicht gefunden

Das ist der Suchindex, nicht die Übertragung. Siehe [Suchindex](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/suchindex).

## Warum tauchen dieselben Fehler im Protokoll immer wieder auf?

Weil eine gescheiterte Bestellung im Shop offen bleibt und beim nächsten Lauf erneut
versucht wird. Das ist gewollt — keine Bestellung geht verloren. Eine sich wiederholende
Meldung heißt aber: Hier muss jemand eingreifen. Siehe
[Wenn etwas nicht im Shop ankommt](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/wenn-etwas-nicht-im-shop-ankommt).

## Kann ich zusätzliche Daten in den Shop bringen?

Ja, über die [Extratabellen](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/extratabellen). Damit lässt sich jede weitere
SelectLine-Tabelle in den Shop spiegeln. Die Darstellung übernimmt das Shop-Template.

## Neukunde oder Interessent — was ist richtig?

**Kunde**, wenn Shop-Besteller wie normale Kunden behandelt werden sollen und sofort ein
Auftrag entstehen soll. **Interessent**, wenn der Kundenstamm frei von Einmaladressen
bleiben soll; dann entsteht ein Angebot, und die Übernahme in einen Kunden ist ein
bewusster Schritt. Siehe [Belege und Neukunden](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/belege-und-neukunden).

## Warum dauert der Vollexport so lange?

Weil zu jedem Artikel deutlich mehr Daten übertragen werden als bei anderen Anbindungen —
Preise, Staffeln, Merkmale, Varianten, Sets, Zubehör, Lieferantendaten — und weil zu jedem
Artikel die Bilder gehen und der Suchindex angestoßen wird.

Für einen schnellen Durchlauf *Alle Artikel exportieren (ohne Bilder)* verwenden und die
Bilder mit der eigenen Aufgabe nachziehen.

## Was bedeutet „Webserver nicht erreichbar"?

Meist eine Zeitüberschreitung des Webservers bei einem großen Lauf, keine Störung der
Verbindung. Abhilfe: den Lauf aufteilen. Siehe
[Wenn etwas nicht im Shop ankommt](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/wenn-etwas-nicht-im-shop-ankommt).

## Sehen meine Kunden alle Belege?

Nur die Belegtypen, die unter *Belege zum Exportieren* ausgewählt sind. Der Bearbeitungsstatus
wird darüber hinaus für alle kürzlich geänderten Belege gemeldet. Siehe
[Belege im Kundenkonto](https://wiki.dako-it.com/books/finnghost-fur-finnwebshop-0s8/page/belege-im-kundenkonto).

## Kann ich einen Zeitraum erneut übertragen?

Für Artikel, Preise, Bestände und Kunden genügen die Vollläufe. Bei den Belegen merkt sich
die Schnittstelle je Belegtyp, bis wann sie gelaufen ist; dieser Stand lässt sich
zurücksetzen — das erfordert einen Eingriff in die Konfiguration bei gestopptem Dienst,
bitte über den Support.

## Wo finde ich heraus, was gerade läuft?

**FINN.webshop → Zeitsteuerung.** Dort steht zu jeder Aufgabe, ob sie läuft oder wartet,
wann sie zuletzt gelaufen ist und wann sie das nächste Mal fällig ist. Darunter das
Protokoll.