Aufgaben

Eine Aufgabe ist die Ausführungseinheit einer Übertragung in TRADElube. Sie verbindet einen Kanal mit genau einer Aktion, etwa Produkte Importieren, und legt fest, wann und wie oft das geschieht. Der Kanal sagt, mit wem TRADElube spricht, die Aufgabe sagt, was dabei übertragen wird.

Jede Aufgabe läuft für sich, mit eigenem Takt, eigener Konfiguration und eigener Fehlermeldung. Ein Bestandsabgleich alle zehn Minuten und ein nächtlicher Produktupload stören einander deshalb nicht, und fällt eine Übertragung aus, laufen die anderen weiter. Auch der Fehler bleibt bei der Aufgabe, zu der er gehört, statt eine ganze Anbindung als gestört auszuweisen.

Was eine Aufgabe ist

Jede Aufgabe ist eine Zeile unter dem Navigationspunkt Aufgaben. Sie trägt keinen eigenen Namen, den Sie vergeben könnten: Sie heißt nach ihrem Kanal und ihrer Aktion, und genau diese beiden stehen als erste Spalten in der Liste. Eine Aufgabe des Kanals Artikeldaten Lieferant mit der Aktion Produkte Importieren begegnet Ihnen deshalb überall unter dieser Kombination, auch in der Nachverfolgung.

Aufgabenliste mit den Spalten Kanal, Aktion, Leistung und den Zeitpunkten der letzten Ausführung

Die weiteren Spalten sagen, was zuletzt geschehen ist: wann die letzte Ausführung begonnen und geendet hat, welchen Status sie hinterlassen hat und seit wann dieser Status gilt. Eine Aufgabe, die noch nie gelaufen ist, bleibt in diesen Spalten leer.

Aufgabe und Aktion

Welche Aktionen zur Verfügung stehen, bringt der Kanaltyp mit, nicht die Aufgabe. Ein Onlineshop bietet andere an als eine Lieferantendatei, und welche das im Einzelnen sind, steht bei jedem System unter Kanäle und Aufgaben.

Eine Aufgabe trägt genau eine Aktion, und eine Aktion hat genau eine Richtung. Wer Produkte hochlädt und Bestellungen abholt, hat dafür zwei Aufgaben, nicht eine mit zwei Häkchen. Das ist der Grund, warum ein einzelner Kanal schnell auf acht oder zehn Aufgaben kommt, und der Preis dafür ist gering: Jede Übertragung bekommt ihren eigenen Transferplan, und der gilt nur für sie.

In einer bestehenden Aufgabe werden Ziel und Aktion nur noch angezeigt und lassen sich nicht mehr umstellen. Der Grund liegt an dem, was die Aufgabe mitführt: Sie merkt sich je Datensatz, was in dieses eine Zielsystem übertragen wurde. Ein Wechsel des Ziels würde diesen Stand auf ein System übertragen, das ihn nie gesehen hat, und dort Datensätze überschreiben, die niemand angefasst hat. Soll dieselbe Übertragung über einen anderen Kanal laufen, ist das deshalb eine neue Aufgabe.

Kanäle, bei denen sich die Gegenseite von sich aus bei TRADElube meldet, haben überhaupt keine Aufgaben. Was es damit auf sich hat, steht unter Kanäle.

Zeitplanung und manueller Start

Wie oft eine Aufgabe von selbst läuft, steht im Feld Leistung. Es kennt zwei Sorten von Werten: einen festen Abstand von 30 Sekunden bis zu einer Stunde, und zwei Sonderfälle. Manuell heißt, dass die Aufgabe nur läuft, wenn Sie sie starten, und ist die Vorbelegung einer neuen Aufgabe. Nächtlich heißt, dass sie zwischen Mitternacht und fünf Uhr früh läuft, dem ruhigsten Zeitpunkt für umfangreiche Übertragungen.

Zwei Eigenheiten dazu, die man sonst für eine Störung halten könnte:

  • Zwischen 0:55 und 2:00 Uhr startet TRADElube keine geplanten Ausführungen. In diesem Fenster laufen die nächtlichen Wartungsarbeiten, unter anderem die Datensicherung. Eine Aufgabe, die dort fällig wäre, holt das danach nach.
  • Eine Aufgabe, die auf einen Fehler gelaufen ist, wird nicht sofort wiederholt, sondern erst nach fünf Minuten. Steht derselbe Fehler schon länger als einen Tag, werden daraus sechzig Minuten. Damit läuft eine defekte Anbindung nicht im Minutentakt gegen ein fremdes System und produziert dort weder Last noch tausend gleiche Protokolleinträge.

Unabhängig davon starten Sie die ausgewählte Aufgabe über die Schaltfläche Ausführen sofort, auch eine, die auf Manuell steht. Das ist der übliche Weg, eine Änderung zu prüfen, ohne auf die nächste geplante Ausführung zu warten.

Erneuerungszeit: wann etwas erneut übertragen wird

TRADElube überträgt nur, was sich geändert hat. Warum das so ist, steht unter Grundlagen der Synchronisation. Das Feld Erneuerungszeit ist die Ausnahme dazu: Nach dem eingestellten Abstand wird ein Datensatz auch dann noch einmal übertragen, wenn sich an ihm nichts geändert hat. Damit findet ein Zielsystem wieder zu TRADElube zurück, in dem jemand von Hand etwas verstellt hat oder das aus einer Sicherung zurückgeholt wurde.

Sie ist damit eine Vorsorge und keine Voraussetzung für den Betrieb. Greift in Ihr Zielsystem niemand von Hand ein, können Sie das Feld ohne Weiteres leer lassen.

Bereich Allgemein einer Aufgabe mit Ziel, Aktion, Leistung und den beiden Erneuerungszeiten

Eine geplante Ausführung nimmt sich dabei nur eine begrenzte Zahl fälliger Datensätze vor und arbeitet den Rest über die folgenden ab. Der Grund ist der Alltagsbetrieb: Eine Erneuerung über zehntausend Produkte würde sonst einen halben Tag lang alle anderen Übertragungen ausbremsen, obwohl sich an den Daten nichts geändert hat. Verteilt auf viele Ausführungen fällt sie nicht auf.

Wer über Ausführen startet, erwartet oft, dass jetzt alles noch einmal übertragen wird. Das ist nicht der Fall. Ein manueller Start nimmt sich jeden Datensatz vor, der sich geändert hat, und zusätzlich jeden, der zuletzt fehlerhaft war, ohne auf die Wartezeit nach einem Fehler zu achten. Was unverändert ist, lässt er stehen, auch wenn die Erneuerungszeit dafür abgelaufen wäre. Wer eine Übertragung wirklich vollständig wiederholen will, setzt sie in der Nachverfolgung über Neu Starten oder Alle Neu Starten zurück. Damit gilt jeder betroffene Datensatz wieder als offen.

Eine Ausnahme gibt es: Steht die Erneuerungszeit auf Nächtlich, greift sie nur zwischen Mitternacht und fünf Uhr früh. Ein manueller Start am Nachmittag erneuert dann nichts, und das ist kein Fehler.

Manche Aktionen bringen mehr als ein solches Feld mit, etwa eine eigene Medien-Erneuerungszeit, weil Bilder seltener erneuert werden müssen als Preise. Welche Felder eine Aufgabe zeigt, hängt an ihrer Aktion.

Reihenfolge und Abhängigkeiten

Aufgaben kennen einander nicht. Es gibt keine Verkettung, keine Vorgänger und keine Bedingung „starte erst, wenn jene fertig ist". Jede läuft nach ihrem eigenen Takt.

Eine sinnvolle Reihenfolge ergibt sich trotzdem, und zwar aus den Daten: Was im Zielsystem als Verweis gebraucht wird, muss dort vorher angekommen sein. Ein Produkt, das einer Kategorie zugeordnet ist, findet diese Kategorie im Shop nur, wenn sie dort schon steht, denn der Verweis läuft über die Kanalzuordnung. In der Praxis laufen deshalb Kategorien, Hersteller und Medien vor den Produkten, Bestände und Bestellstatus nach ihnen.

Geregelt wird das über die Zeitplanung, nicht über eine Abhängigkeit: Die vorgelagerten Aufgaben laufen früher oder häufiger als die, die auf ihnen aufbauen. Beim ersten Befüllen eines Zielsystems startet man sie einmal von Hand in dieser Reihenfolge. Welche Reihenfolge ein bestimmtes System braucht, steht unter Kanäle und Aufgaben.

Woher eine neue Aufgabe kommt

Das Anlegen und Löschen von Aufgaben übernehmen wir, gemeinsam mit dem Kanal, zu dem die Aufgabe gehört. Der Grund ist der Schaden, den die Alternative anrichten könnte: Eine Aufgabe, die vor ihrer ersten vollständigen Konfiguration läuft, schreibt in ein fremdes System, und was dort einmal steht, holt keine Korrektur in TRADElube zurück.

Alles Weitere stellen Sie selbst ein, also Takt, Erneuerungszeit, Konfiguration und Transferplan. Und wenn Sie das lieber abgeben, machen wir auch das.

Die Schaltflächen Neu und Löschen stehen trotzdem in der Werkzeugleiste. Sie führen nicht in einen Anlagedialog, sondern zeigen eine Meldung mit unserer Adresse, damit Sie nicht vor einer fehlenden Schaltfläche stehen und den Weg suchen.

Ein Tag im Betrieb

Angenommen, Sie führen 12.000 Artikel und verkaufen über einen Onlineshop. Ihr Lieferant stellt jede Nacht eine neue Preisliste bereit, in der sich ein paar hundert Preise geändert haben. Vier Aufgaben decken das ab, und ihre Takte sind verschieden, weil die Dinge verschieden dringend sind:

Aufgabe Leistung Warum dieser Takt
Produkte Importieren, vom Lieferanten Nächtlich Die Preisliste steht ohnehin erst nachts bereit
Produkte Hochladen, in den Shop Nächtlich Läuft danach, damit der Shop am Morgen die neuen Preise zeigt
Bestellungen Herunterladen 10 Minuten Eine Bestellung, die eine Nacht liegen bleibt, kostet einen Tag Lieferzeit
Lagerbestände Hochladen 10 Minuten Was verkauft ist, soll im Shop nicht mehr bestellbar sein

Was in dieser Nacht tatsächlich geschieht: Der Import liest 12.000 Zeilen und stellt bei 11.700 davon fest, dass sich nichts geändert hat. Weitergereicht werden 300. Der Upload in den Shop bekommt entsprechend 300 Produkte zu tun und ist nach Minuten fertig statt nach Stunden.

Dahinter steht der Fingerabdruck je Datensatz. Zu jedem Produkt merkt sich TRADElube, wie es zuletzt übertragen wurde, und vergleicht beim nächsten Mal, bevor der Datensatz überhaupt geladen wird. Der Aufwand richtet sich damit nach dem, was sich geändert hat, und nicht nach der Größe Ihres Sortiments: Ein Katalog mit 50.000 Artikeln ist kein anderer Fall als einer mit 500.

Man könnte es sich einfacher machen und jedes Mal alles verarbeiten. Das ist deutlich weniger Entwicklungsaufwand und bedeutet in diesem Beispiel jede Nacht 12.000 Übertragungen statt 300, jede davon mit einem Aufruf an den Shop. Der Preis unserer Entscheidung gehört dazu: Beim ersten Mal überträgt eine Aufgabe alles, und wenn Sie den Transferplan ändern, gilt danach jeder Datensatz wieder als neu, weil sich die Vorschrift geändert hat.

Und wenn nachts etwas schiefgeht? Hier zeigt sich die Regel, die auch hinter der Wartezeit nach einem Fehler steht: Der Zustand einer Übertragung hängt am einzelnen Datensatz, nicht an der Ausführung. Nehmen wir an, der Shop ist um drei Uhr zehn Minuten lang nicht erreichbar, und 40 der 300 Produkte kommen nicht durch. Dann stehen 260 im Shop, die 40 stehen in der Nachverfolgung als fehlerhaft, und die Aufgabe gilt deswegen nicht als gestört. Die nächste Ausführung nimmt genau diese 40 wieder auf. Sie müssen nichts zurücksetzen, nichts nachtragen und vor allem nicht herausfinden, welche vierzig es waren.

Zusammenspiel

Eine Aufgabe steht zwischen dem Kanal und dem, was tatsächlich übertragen wird:

  • Der Kanal liefert die Verbindung und die Zugangsdaten. Fallen die aus, fallen alle Aufgaben dieses Kanals gemeinsam aus.
  • Die Aktion bestimmt, welche Objekte in welche Richtung gehen, und damit auch, welche Felder es überhaupt zu füllen gibt.
  • Der Transferplan hängt an der Aufgabe und bestimmt, welcher Wert wohin geschrieben wird. Zwei Aufgaben desselben Kanals können deshalb völlig unterschiedlich abbilden.
  • Die Kanalzuordnung entsteht bei der Ausführung und merkt sich je Datensatz das Gegenstück im angebundenen System.

Was am Ende tatsächlich gelaufen ist, steht in der Nachverfolgung, sowohl an der Aufgabe selbst als auch am einzelnen Datensatz.

Weiterführend