Flow: Wie kann ich neue Artikel erkennen die mein Lieferant schickt? (Delta)

Oft will man Daten von z.B. Lieferanten mit seinem eigenen Artikelstamm abgleichen und nur die neuen Artikel erkennen.

Bezogen auf die Grafik bedeutet das, dass man die Artikel auf der linken Seite herausfinden will (Delta).

Der Ablauf ist wie folgt:

Man braucht dafür:

Flow 1 (Vorbereitung)

  • importiert ihren Artikelstamm in einen Datastore
  • wichtig: in identifier2 des Datastore sollten man den Abgleichs-Identifier speichern, den auch der Lieferant schickt z.B. EAN
  • diesen Flow braucht man nur ausführen wenn es neue Artikel in ihrem Artikelstamm gibt, damit der Datastore immer aktuell ist

Flow 2 (das ist der entscheidende Flow)

  • Flow holt ihre Lieferantendatei und verarbeitet diese
  • dort braucht man einen SpreadsheetMapper Step
  • im SpreadsheetMapper machen sie z.B. in der EAN- oder in einer Hilfsspalte einen Querverweis auf ean zu identifier2 und folder des Datastores, in dem sich ihr Artikelstamm befindet.
  • wenn der Lieferant nun eine EAN schickt, die noch nicht in ihrem Datastore in identifier2 existiert, dann liefert der Querverweis ein "No Record found"

Folder beachten

Sollten Sie ein "No Record found" erhalten, obwohl der identifier2 im Datastore existiert, dann prüfen Sie, ob sie auch den Folder korrekt gesetzt haben und dass die Datensätze in einem Folder im Datastore liegen, der nicht „default“ ist. Das Feld Folder im Querverweis kann nur dann leer gelassen werden, wenn der Folder „default“ ist. Ansonsten müssen sie hier auch den entsprechenden Folder angeben, in dem der Datensatz zu finden ist. Sie können hier einen festen Wert eintragen oder über Freemarker eine Spalte der Quelldatei definieren z.B. ${Marke!} → (analog wie ${EAN!} im identifier).

Neue Produkte erkennen

Nun schaltet man hinter den SpreadsheetMapper einen SpreadsheetFilter Step mit folgender Filter-Bedingung:

ean! == "No Record found"

D.h. der Filter lässt nur Zeilen durch, in denen in der Querverweis-Spalte „No Record found“ steht.

Das sind dann neue Produkte.

Jetzt kann man mit diesem Ergebnis weiterarbeiten und z.B. diese neuen Artikel in ihren Shop importieren.

Wenn man die Filter-Bedingung umkehrt (ean! != "No Record found") dann bekommt man die existierenden Artikel.
ean! == "No Record found" --> das sind neue Artikel, die es im Datastore noch nicht gibt.
ean! != "No Record found" --> das sind existierende Artikel, zu denen es im Datastore schon einen Eintrag gibt.

Vorhandene Produkte erkennen

Um bereits existierende Produkte zu erkennen, muss man einfach die Filter-Bedingung umkehren:

ean! != "No Record found"

Dieser Filter lässt nur Zeilen durch, in denen in der Querverweis-Spalte NICHT „No Record found“ steht (das != bedeutet „ungleich“). Das sollten alle existierenden Produkte sein, da der Querverweis ja einen Treffer hatte. Diese Ergebnis-Zeilen kann man jetzt weiter verarbeiten, um z.B. Bestand oder Preise zu aktualisieren.