Transferplan

Der Transferplan ist die Abbildungsvorschrift einer Aufgabe in TRADElube: Er legt fest, welcher Wert wohin gehört. Aus welcher Spalte einer Lieferantendatei die Artikelnummer kommt, welches Feld im Shop die Beschreibung aufnimmt, welcher Datensatz überhaupt mitgeht.

Damit ist er die Stelle, an der aus zwei Systemen mit unterschiedlichem Aufbau ein gemeinsamer Datenbestand wird. Eine Lieferantendatei muss nicht erst umformatiert werden, und ein Zielsystem muss seine Felder nicht so benennen wie das Quellsystem. Der Transferplan ist damit der Ort, an dem aus einer allgemeinen Schnittstelle Ihre Schnittstelle wird: Was bei Ihnen anders liegt als beim Nachbarn, wird hier abgebildet, Zeile für Zeile, bis hin zu einem Skript für den Fall, den keine Auswahlliste trifft.

Wo der Transferplan steht

Bei den meisten Kanälen gehört der Transferplan zur Aufgabe und wird dort im Bereich Transferplan bearbeitet. Das ist der Ort, der zur Sache passt: Eine Aufgabe überträgt genau eine Sorte Objekte in genau eine Richtung, und nur dafür braucht sie eine Abbildung. Zwei Aufgaben desselben Kanals haben deshalb zwei völlig verschiedene Pläne.

Bei Kanälen, bei denen sich die Gegenseite bei TRADElube meldet, gibt es keine Aufgaben. Dort steht der Bereich Transferpläne im Kanal selbst, und die Register liegen in drei Ebenen übereinander: oben das Objekt, darunter die Aktion, darunter die Abschnitte des Plans. Ein Beispiel dafür ist der CAO-Faktura-Connector.

Zwei sehr verschiedene Ausgangslagen

Wie viel an einem Plan überhaupt zu tun ist, hängt davon ab, mit was für einem Kanal Sie es zu tun haben. Der Unterschied ist groß genug, dass er die Erwartung prägt:

  • Bei einem Standardkanal ist der Plan weitgehend vorkonfiguriert. Wir kennen das Gegenüber, also etwa Shopware, WooCommerce oder eine Warenwirtschaft, und die Aktion bringt eine Vorbelegung mit, die den Normalfall schon abbildet. In der Regel ergänzen Sie einzelne Zeilen, etwa einen festen Wert oder ein Feld, das in Ihrem Sortiment eine besondere Rolle spielt. Ein solcher Plan ist am ersten Tag lauffähig.
  • Beim benutzerdefinierten Kanal bauen Sie den Plan von Grund auf. Dort steht auf der anderen Seite eine Datei oder ein Datenfeed, dessen Aufbau nur Sie kennen. TRADElube kann nichts vorbelegen, was es nicht kennt, und dafür bekommen Sie an dieser Stelle Möglichkeiten, die ein Standardkanal gar nicht braucht.

Die folgenden Abschnitte beschreiben zuerst das, was für beide gilt. Was ausschließlich der benutzerdefinierte Kanal mitbringt, steht danach unter einer eigenen Überschrift.

Der Aufbau: Plan, Abschnitt, Zuweisung

Ein Transferplan ist geschachtelt, und diese drei Ebenen begegnen Ihnen bei jedem Kanal wieder, auch in Fehlermeldungen, die ihren Weg vollständig ausschreiben.

Ebene Was sie ist
Plan Eine vollständige Abbildung. Eine Aufgabe kann mehrere haben, dann steht oben eine Reiterleiste. Bei nur einem Plan entfällt sie
Abschnitt Ein Teil des übertragenen Objekts, als Reiterleiste: Allgemein, Beschreibungen, Preise, Lagerbestände, Kategorien, Medien, Eigenschaften. Welche es gibt, hängt an der Aktion
Zuweisung Eine Zeile: ein Zielfeld und die Vorschrift, woher sein Wert kommt

Die Abschnitte sind der Grund, warum sich ein Plan auch dann noch überblicken lässt, wenn er zweihundert Zuweisungen trägt: Preise stehen bei den Preisen, Bilder bei den Medien, und wer eine Beschreibung sucht, öffnet genau einen Reiter.

Eine Zuweisung: vom Ziel her gelesen

Eine Zuweisung wird nicht von der Quelle her gedacht, sondern vom Ziel: Die Zeile gehört einem Feld, und die Frage lautet, woher dessen Wert kommt. Deshalb steht links das Zielfeld und nicht die Quellspalte.

Jedes Zielfeld trägt zwei Namen übereinander, oben die deutsche Beschriftung, darunter in Grau die unveränderliche technische Bezeichnung, etwa Produktnummer und ProductNumber. Die zweite ist kein Versehen: Unter diesem Namen taucht das Feld in Skripten wieder auf, und sie bleibt gleich, egal in welcher Sprache Sie arbeiten. Wer keine Skripte schreibt, braucht sie nie und kann die graue Zeile übergehen.

Eine Zuweisung ist zunächst abgeschaltet. Erst wenn Sie ihr Kontrollkästchen setzen, entsteht überhaupt eine Vorschrift, und vorher bleibt die Zeile leer, auch wenn es aussieht, als fehlte ein Eingabefeld. Der Grund für diese Vorbelegung: Was keine Vorschrift trägt, rührt TRADElube im Zielsystem nicht an. Wären alle Zeilen von Anfang an aktiv, überschriebe die erste Ausführung jedes Feld, für das noch niemand eine Quelle bestimmt hat. Dazu kommen zwei Einschränkungen, die häufig gebraucht werden: Nur bei Neuanlage schreibt den Wert einmalig beim ersten Mal und lässt spätere Änderungen im Zielsystem danach in Ruhe. Nur falls befüllt überspringt die Zuweisung, wenn die Quelle nichts liefert, statt das Zielfeld zu leeren.

Drei Arten, einen Wert zu bestimmen

Woher der Wert kommt, entscheidet eine von drei Arten:

  • Als Feldzuweisung nimmt den Wert unverändert aus einer Spalte der Quelle. Das ist der Normalfall und deckt den größten Teil eines Plans ab.
  • Als Fixer Wert schreibt für jeden Datensatz denselben Wert, etwa eine Steuerklasse oder ein Kennzeichen, das die Quelle gar nicht liefert.
  • Zuweisung über Skript berechnet den Wert. Das ist der Weg, wenn zwei Spalten zusammengesetzt werden müssen, wenn eine Bedingung mitspielt, oder wenn ein Verweis auf einen anderen Datensatz nachgeschlagen wird.

Fünf Zuweisungszeilen mit Feldzuweisung, Skript und den Schaltflächen zum Umstellen

Welche Arten ein Feld überhaupt zulässt, ist an der Zeile abzulesen, ohne dass Sie etwas ausprobieren müssen. Die gerade gewählte Art steht als das Bedienelement da, das zu ihr gehört: eine Auswahlliste bei der Feldzuweisung, ein Eingabefeld beim festen Wert, der Skripttext mit der Schaltfläche Bearbeiten beim Skript. Daneben stehen als Schaltflächen nur die Arten, auf die dieses Feld umgestellt werden kann. Wo keine Schaltfläche steht, gibt es keine Wahl.

Fehlt in der Auswahlliste eine Spalte, die es in der Datei nachweislich gibt, ist die Erklärung fast immer dieselbe, und sie kostet beim ersten Mal die meiste Zeit: Die Liste ist nach Datentyp gefiltert. Ein Textfeld bietet nur Textspalten an, ein Zahlenfeld nur Zahlenspalten. Gesucht wird dann nicht in der Zuweisung, sondern im Datenformat des Kanals.

Der Abschnitt Auswahl: was überhaupt übertragen wird

Die Abschnitte weiter oben beantworten, wie ein Wert übertragen wird. Ein Abschnitt beantwortet etwas anderes, nämlich ob: Auswahl. Er steht bei den Aufgaben für Produkte und Bestellungen ganz vorn und ist farblich hervorgehoben, weil seine vier Zeilen mehr entscheiden als der ganze Rest des Plans.

Jede Zeile ist eine Bedingung und wirkt nur, wenn ihr Kontrollkästchen gesetzt ist. Ist es das nicht, unterbleibt der zugehörige Schritt.

Abschnitt Auswahl einer Produktaufgabe mit den vier Zeilen Bedingung, Bestehender Eintrag, Neuer Eintrag und Entfernter Eintrag

Zeile Was sie entscheidet
Bedingung Welche Datensätze überhaupt in Frage kommen. Ohne sie geht alles mit, was die Aufgabe erfasst
Bestehender Eintrag Woran ein bereits vorhandener Eintrag im Zielsystem erkannt wird. Zur Wahl steht, was der Kanal anbietet, bei einem Onlineshop etwa Mit Produktnummer, Mit Hersteller Produktnummer oder Mit EAN
Neuer Eintrag Ob TRADElube im Zielsystem etwas anlegen darf, das dort noch nicht steht
Entfernter Eintrag Was mit einem Datensatz geschieht, den Sie aus dem Kanal genommen haben: Löschen oder, wo das Zielsystem es kann, Deaktivieren

Die Zeile Bestehender Eintrag wirkt dabei nur beim allerersten Mal. Danach kennt TRADElube die interne Kennung des Datensatzes im Zielsystem und arbeitet nur noch mit ihr, siehe Kanalzuordnungen. Deshalb dürfen Sie eine Produktnummer später ändern, ohne dass etwas doppelt entsteht.

Aus der Kombination der Zeilen ergeben sich die üblichen Fälle:

  • Nur pflegen, nichts anlegen: Neuer Eintrag abwählen. Dann werden nur Datensätze angefasst, die im Zielsystem bereits stehen. Das ist der Fall, wenn eine Warenwirtschaft das Sortiment führt und eine Lieferantendatei nur Bilder und Eigenschaften nachliefert.
  • Nichts löschen: Entfernter Eintrag abwählen. Was Sie aus dem Kanal nehmen, bleibt im Zielsystem stehen.
  • Statt löschen abschalten: Deaktivieren wählen, wo der Kanal es anbietet. Das Produkt bleibt im Shop, ist aber nicht mehr bestellbar.

Jede der vier Zeilen lässt sich auch über ein Skript beantworten, wenn eine feste Einstellung nicht reicht.

Ein bereits gefüllter Shop, angebunden

Der Fall, in dem dieser eine Abschnitt den größten Unterschied macht: Sie binden einen Shop an, in dem schon 3.000 Artikel stehen, über Jahre gepflegt. TRADElube kennt keinen davon. Was Sie im Abschnitt Auswahl der Aufgabe Produkte Hochladen einstellen, entscheidet über die erste Ausführung:

Zeile Ihre Einstellung Was daraus folgt
Bedingung zunächst auf eine Warengruppe eingeschränkt Die erste Ausführung umfasst 80 Artikel statt 3.000, und Sie sehen am Ergebnis, ob die Abbildung stimmt
Bestehender Eintrag Mit Produktnummer TRADElube sucht jeden Artikel im Shop über seine Nummer und übernimmt den vorhandenen Eintrag
Neuer Eintrag gesetzt Was es im Shop noch nicht gibt, wird angelegt
Entfernter Eintrag abgewählt Was Sie später aus dem Kanal nehmen, bleibt im Shop stehen

An der zweiten Zeile hängt der Tag. Steht dort nichts, findet die erste Ausführung kein Gegenstück und legt die Artikel ein zweites Mal an. Danach hilft nur Aufräumen im Shop, denn TRADElube hat sich zu jedem neu angelegten Artikel eine Kanalzuordnung gemerkt und arbeitet ab dann folgerichtig weiter, auch wenn das Ergebnis es nicht ist.

Die erste Zeile ist der billigere Teil derselben Vorsicht. Eine Ausführung über achtzig Artikel zeigt Ihnen dieselben Fehler wie eine über dreitausend und lässt sich in zehn Minuten von Hand nachsehen. Stimmt das Ergebnis, nehmen Sie die Bedingung wieder heraus, und die nächste Ausführung holt den Rest.

Bei einem leeren Shop entfällt die ganze Sorgfalt: Dort gibt es nichts einzusammeln, Bestehender Eintrag läuft ins Leere, und Sie können sofort mit dem vollen Sortiment starten.

Mehrere Pläne und ihre Reihenfolge

Eine Aufgabe kann mehrere Pläne haben, und sie werden je gelesener Zeile nacheinander angewendet, in der Reihenfolge ihrer Reiter. Das ist mehr als Kosmetik: Legt ein Plan einen Datensatz an, auf den ein späterer Plan sich bezieht, muss er vorher stehen. In der umgekehrten Reihenfolge findet der zweite Plan sein Gegenüber bei der ersten Ausführung nicht.

Der übliche Fall dafür sind Produkte mit Varianten. Ein Plan baut den Hauptartikel auf, der zweite die Varianten, die ihn suchen.

Woher die Pläne kommen, hängt am Kanal. Bei einem Standardkanal bringt die Aktion sie mit, und ihre Namen sagen, worum es geht: Die Aufgabe Produkte Hochladen eines Onlineshops hat die Pläne Produkt und Produktvariante, mehr gibt es dort nicht einzurichten. Beim benutzerdefinierten Kanal legen Sie die Pläne selbst an, weil nur Sie wissen, wie viele Ebenen Ihre Datei hat. Neue werden hinten angehängt und lassen sich anschließend nach vorn schieben.

Was nur der benutzerdefinierte Kanal mitbringt

Bei einem Standardkanal ist die Struktur der Gegenseite bekannt und festgelegt. Beim benutzerdefinierten Kanal ist sie es nicht, denn dort steht eine Datei oder ein Datenfeed, dessen Aufbau von Fall zu Fall anders ist. Deshalb hat dieser Kanal einen zusätzlichen Abschnitt Aufbau, in dem Sie diese Struktur zuerst beschreiben.

Die Einheit darin heißt Datensatz und steht für eine Ebene der Datei, etwa die Zeilen einer CSV-Datei oder einen Knoten in einer XML-Struktur.

Transferplan mit den Reitern der Pläne, den Reitern der Abschnitte und dem Datensatz Artikelliste CSV

Ein Datensatz trägt dann Zuweisungen, die kein Feld füllen, sondern die Ausführung steuern:

Zuweisung Wozu
Zuordnung Woran ein Datensatz wiedererkannt wird, siehe Kanalzuordnungen
Auswahl Welche Einträge überhaupt in Frage kommen
Filter Welche davon übergangen werden
Gruppierung Wie mehrere Zeilen zu einem Objekt zusammengefasst werden, etwa Varianten unter ihrem Hauptartikel
Replikation Wie aus einer Zeile mehrere Objekte entstehen, etwa drei Bildspalten als drei Medien

Gruppierung und Replikation sind der Grund, warum sich eine Lieferantendatei meist ohne Vorverarbeitung einlesen lässt. Lieferantendateien sind selten so aufgebaut, wie ein Produktdatenmodell aussieht: Varianten stehen als eigene Zeilen nebeneinander, Bilder in mehreren Spalten derselben Zeile. Beides ließe sich sonst nur mit einer Umformung vorab lösen.

Mehr als ein Datensatz je Abschnitt ist dabei der Normalfall, wenn dasselbe mehrfach vorkommt. Drei Bilder je Produkt entstehen nicht aus drei Zuweisungen in einem Datensatz, sondern aus drei Datensätzen.

Zusammenspiel

Der Transferplan hängt zwischen der Aufgabe und dem einzelnen Datensatz:

  • Die Aufgabe bestimmt über ihre Aktion, welche Abschnitte und welche Zielfelder es überhaupt gibt. Ein Plan ohne Aufgabe ist nicht möglich.
  • Der Kanal liefert mit seinem Datenformat die Quellspalten und deren Datentypen, und damit das, was die Auswahllisten anbieten.
  • Die Kanalzuordnung entsteht bei der Ausführung. Woran ein Datensatz wiedererkannt wird, entscheidet beim benutzerdefinierten Kanal die Zuweisung Zuordnung am Datensatz, bei einem Standardkanal der Abschnitt Auswahl der Aufgabe.
  • Was eine Ausführung daraus gemacht hat, steht in der Nachverfolgung, je Datensatz und je Feld.

Eine Änderung am Plan wirkt sich auf die nächste Ausführung aus, und zwar auf alle Datensätze: TRADElube erkennt, dass die Vorschrift eine andere ist, und überträgt auch das, was sich seit dem letzten Mal nicht geändert hat.

Weiterführend