SearchDatastore Step

Mit dem Step SearchDatastore kann man Datensätze aus einem Datastore exportieren. Durch verschiedene Parameter kann man eingrenzen, welche Datensätze exportiert werden.  Das Ergebnis ist ein sogenanntes Spreadsheet, welches im Anschluss weiterverarbeitet werden kann.

Wir empfehlen in diesem Zusammenhang auch den Eintrag Datastore Import und Export.

Konfiguration

NameDatentypBeschreibungWerte
datastoreNameSTRINGName des zu durchsuchenden Datastores.
filterFolderSTRINGLISTDer zu durchsuchende Folder.
Wenn leer, werden alle folder durchsucht.

Master filter (filterMatchingStatus)STRING

Nur anwendbar in Child-Datastores.
Damit kann man sich in einem Child-Datastore wahlweise nur die Datensätze anzeigen lassen, die korrekt mit einem Datensatz im Master-Datastore verknüpft sind oder die nicht verknüpft sind.

  • All (Standardwert)
  • With masters
  • Without masters
Child filter (filterOffers)STRINGNur anwendbar in Master-Datastores.
Damit kann man sich in einem Master-Datastore wahlweise alle Datensätze anzeigen lassen, die mindestens ein Child-Datensatz in einem Child-Datastore haben oder die keine Child-Datensätze haben.
  • all (Standardwert)
  • Items with children
  • Items without children
display children (showOffers)STRING

Nur anwendbar bei Master-Datastores.
Damit kann man einstellen, ob man unter jedem Master-Datensatz  die verknüpften Child-Datensätzen ausgegeben haben möchte oder nicht. Das Ausgabe-Spreadsheet ist dabei 2-stufig, d.h. jeder Master-Datensatz-Zeile folgen die Child-Datensatz-Zeilen.

  • show children
  • hide children (Standardwert)
search for (filterIncludeVariants)STRING

Mit dieser Option kann man die Anzeige der Ausgabe von Parent- und Variant-Zeilen beeinflussen.

both (unordered) - Zeigt Parent- und Variant-Zeilen, allerdings ungeordnet (sehr schnell).
parents (show variants) - Die Varianten werden immer unter der verknüpften Parent-Zeile ausgegeben (2-stufig) (wesentlich langsamer).
ParentsOnly - Zeigt nur Parent-Zeilen aber keine Varianten-Zeilen.
variantsOnly - Zeigt nur Varianten-Zeilen.
Variants or Parents Without Variants - Zeigt entweder nur Varianten-Zeilen, oder Zeilen, die keine Varianten haben.

  • Both (unordered)
  • Parents (show variants)
  • Parents Only
  • Variants Only
  • Variants or Parents Without Variants
Level Filter (filterShowParentsWithVariants)STRING

Parents with variants - Zeigt nur Parent-Zeilen, die auch Varianten haben.
Parents without variants - Zeigt nur Parent-Zeilen, die keine Varianten haben.
All - Zeigt alle Datensätze, egal ob mit oder ohne Varianten-Zeilen.

  • All (Standardwert)
  • Parents with variants
  • Parents without variants
flowRunSTRING

Zeigt nur Datensätze, die von einer bestimmten Flow-Run-ID markiert wurden. (Beim Import mit dem DatastoreWriter wird jeder "angefasste" Datensatz mit der Run-ID des Flows markiert)

Dieser Filter ist sehr praktisch, um sich alle Datensätze zu holen, die durch den aktuellen Flow markiert wurden.
In 99% der Fälle verknüpft man dazu diese Option mit der Runtime-Flow-Variable "flow_run_id" (siehe Laufzeit-Eigenschaften)

Wozu ist das nützlich? Oft wird das dazu genutzt, Datensätze zu identifizieren, die durch die aktuelle Flow-Ausführung "angefasst" oder "nicht angefasst" wurden.
Siehe auch diesen Cookbook Eintrag Wie finde ich Datensätze, die gestern importiert wurden, aber heute nicht mehr mit mitkommen?


flowRunCompareSTRING

Bezieht sich auf die vorherige Option flowRun.
Damit gibt man an, ob der Vergleich der Run-ID am Datensatz gleich oder ungleich der gegebene flow_run_id ist.


EQUALS - Vergleich der flow_run_id auf Gleichheit.
NOT EQUALS -Vergleich der flow_run_id auf Ungleichheit.

  • EQUALS (Standardwert)
  • NOT EQUALS
filterIdentifierSTRING

Gibt den Datensatz aus, der im Feld identifier den eingegeben Wert hat.
Sollte es mehrere Datensätze mit dem gleichen identifier, aber in unterschiedlichen foldern geben, dann kann es auch sein, dass mehrere Datensätze ausgegeben werden (nur wenn filterFolder oben leer ist). Wenn filterFolder angegeben ist, kommt max. 1 Ergebniszeile zurück.

Wird meistens nur zum Debugging verwendet.


filterIdentifier2STRING

Wie filterIdentifier, aber für Datastore-Spalte identifier2. Meistens nutzt man identifier2, um zusätzliche Identifikations-Nummern wie EAN oder Lieferantenartikelnummer für einen Datensatz zu hinterlegen.


filterIdentifier3STRINGWie filterIdentifier, aber für Datastore-Spalte identifier3. Meistens nutzt man identifier2, um zusätzliche Identifikations-Nummern wie EAN oder Lieferantenartikelnummer für einen Datensatz zu hinterlegen.
processingStatusSTRING

Gibt Datensätze im entsprechenden ProcessingStatus zurück.

Wie funktioniert das? Jeder Datensatz hat ein Feld ProcessingStatus, welches die Werte UNPROCESSED, INPROCESS or PROCESSED_SUCCESS, PROCESSED_ERROR haben kann. Dies kann man frei festlegen. Gedacht ist dieses Feld, um einen Bearbeitungslebenszyklus eines Datastores zu markieren. Gerade wenn ein Datensatz von mehreren Prozessen "angefasst" wird, ist es notwendig zu markieren, in welchem Prozessschritt sich der Datensatz befindet.  

Beim Import in den Datastore (Insert oder Update) kann man im DatastoreWriter Step angeben, welchen ProcessingStatus die "angefassten" (Insert oder Update) Datensätze bekommen sollen.


  • All (Standardwert)
  • UNPROCESSED
  • INPROCESS
  • PROCESSED_SUCCESS
  • PROCESSED_ERROR
filterDateSTRING

Ein optionaler Datumsfilter. Hier stellt man das Datumsfeld des Datensatzes ein, nach welchem gefiltert werden soll. (Insert Datum, Update Datum, Processing Datum, Last Content Change Date)

Mit den nachfolgenden Optionen dateFrom und dateTo, kann man

  • --none--
  • Insert Date
  • Update Date
  • Processing Date
  • Last Content Change Date
dateFromDATETIMEStart-Datum bezogen auf das in filterDate eingestellte Datumsfeld. z.B. 18.12.2016 16:00
dateToDATETIMEEnd-Datum bezogen auf das in filterDate eingestellte Datumsfeld. z.B. 20.12.2016 16:00
Leer lassen um bis "jetzt" (aktueller Zeitpunkt) zu filtern.

sortByFieldSTRINGOptional: Damit kann man das Feld für die Sortierung der Ergebnisse einstellen.
  • --none--
  • identifier
  • identifier2
  • identifier3
  • Created Date
  • Update Date
  • Last Content Change Date
  • Processing Date
  • Folder
sortDirSTRINGDie Sortierrichtung (aufsteigend, absteigend) bezogen auf der sortByField.
  • Ascending
  • Descending
limitSTRING

Limitiert die Anzahl der Zeilen.
Standardwert: leer, bedeutet unbegrenzt.

Wichtig bei umfangreichen Datastores mit tausenden / Millionen von Datensätzen:
Stellen Sie das Limit bei Tests und Arbeit mit Flows immer explizit auf einen niedrigen Wert z.B. 100. Das beschleunigt das Ganze sehr. Ansonsten werden Sie lange Wartezeiten oder Timeout-Fehler sehen.

Inputs

Das sind die Optionen, mit denen man den Step konfigurieren kann.

Name Datentyp Beschreibung Pflichtfeld Werte
datastoreName DATASTORE Datastore für die Suche Ja
  • --- Kein Datastore ausgewählt ---
filterFolder STRINGLIST Der Folder für die Filterung Nein
processingStatus STRING Der Processing Filter ermöglicht es Datensätze nach Verabeitungsstatus (Processing Status UNPROCESSED, INPROCESS oder PROCESSED_SUCCESS, PROCESSED_ERROR) zu filtern. Nein
  • Alle
  • UNPROCESSED
  • INPROCESS
  • PROCESSED_SUCCESS
  • PROCESSED_ERROR
  • PROCESSED MARK DELETE
filterTags TAGFILTER Datastore Zeilen nach Tags filtern Nein
enableTags STRING Tags zum Output hinzufügen Nein
  • Ja
  • Nein
filterIdentifier STRING Filter durch den identifier, der mit Folder eindeutig ist. Wenn Sie zusätzlich einen Folder angeben, wird nur ein Ergebnis zurückgegeben. Andernfalls können Sie mehrere Ergebnisse erhalten. Der identifier enthält in der Regel Daten wie SKU oder eine andere ID für einen Datensatz. Nein
filterIdentifier2 STRING Filter durch den identifier2. Beachten Sie, dass der identifier2 nicht eindeutig sein muss, so dass ein Filter nach diesem Feld immer noch mehrere Ergebniszeilen zurückgeben kann. Es kann verwendet werden, um Daten wie EAN oder externe IDs zu speichern. Nein
filterIdentifier3 STRING Filter durch den identifier3. Beachten Sie, dass der identifier3 nicht eindeutig sein muss, so dass ein Filter nach diesem Feld immer noch mehrere Ergebniszeilen zurückgeben kann. Es kann verwendet werden, um Daten wie EAN oder externe IDs zu speichern. Nein
filterMatchingStatus STRING Dieser Filter ist bei Child Datensätzen möglich: Alle Datensätze MIT Master (matched) - gibt nur (Child) Datensätze aus, die mit einem Master Datensatz verknüpft sind (matched). Alle Datensätze OHNE Master (unmatched) - gibt nur (Child) Datensätze aus, die nicht mit einem Master Datensatz verknüpft sind (unmatched). Alle - gibt beide zurück. Nein
  • Alle
  • Alle Datensätze MIT Master (matched)
  • Alle Datensätze OHNE Master (unmatched)
filterOffers STRING Dieser Filter ist bei Master Datensätzen möglich: Datensätze MIT Children - gibt Master Datensätze zurück, die mindestens einen zugordeneten Child Datensatz besitzen | Datensätze OHNE Children - gibt Master Datensätze, die keine zugeordneten Child Datensätze besitzen | Alle - alle Datensätze des gewählten Datastores werden ausgegeben. Nein
  • Alle
  • Datensätze MIT Children
  • Datensätze OHNE Children
showOffers STRING Children ausgeben - gibt zusätzlich zum Master Datensatz alle referenzierende Datensätze der Child-Datastores aus. Children nicht ausgeben - Die Ausgabe erfolgt ohne die Child-Datensätze. Nein
  • Children ausgeben
  • Children nicht ausgeben
filterIncludeVariants STRING Parents und Varianten (ungeordnet) - Parents und Varianten werden zurückgegeben, aber ungeordnet (am schnellsten). Parents (erst Parents + Varianten) - Parents und Varianten werden geordnet zurückgegeben Parents-first (langsamer). nur Parents - Es werden keine Varianten zurückgegeben. nur Varianten - Es werden nur Varianten zurückgegeben. Varianten, oder Parents ohne Varianten - alle Varianten und Parent-Datensätze ohne Varianten. Nein
  • Parents und Varianten (ungeordnet)
  • Parents und Varianten (erst Parent, dann zugehörige Varianten)
  • nur Parents
  • nur Varianten
  • Varianten, oder Parents ohne Varianten
filterShowParentsWithVariants STRING Parents with variants - gibt nur übergeordnete Elemente zurück, die auch Varianten haben. Parents ohne Varianten - gibt nur Parents zurück, die keine Varianten haben. Alle - keine Filterung. Nein
  • Alle
  • Parents MIT Varianten
  • Parents OHNE Varianten
flowRun STRING Filter nach der ID eines Flow-Runs. Dies ist nützlich für die Suche nach Artikeln, die mit einem bestimmten Ablauf aktualisiert oder importiert wurden. Nein
flowRunCompare STRING EQUALS - Die Flow Run ID ist gleich der angegebenen ID. NOT EQUALS - die Flow Run ID ist nicht gleich der angegebenen ID. Nein
  • EQUALS
  • NOT EQUALS
filterDate STRING Auswahl eines Datums für die Filterung Nein
  • --- Keine Filterung ---
  • Erstellungsdatum(Created)
  • Aktualisierungsdatum (Update)
  • Verarbeitungsdatum (Processed)
  • Datum letzte Inhaltsänderung (LastContentChanged)
dateFrom DATETIME Filter ab Datum, z.B. 2012-12-18 16:00 Nein
dateTo DATETIME Filter bis Datum, z.B. 2012-12-19 16:00. Lassen Sie das Feld leer, um es bis jetzt zu filtern. Nein
sortByField STRING Feld für die Sortierung des Ergebnisses Nein
  • Standard
  • identifier
  • identifier2
  • identifier3
  • Tags
  • Erstellungsdatum(Created)
  • Aktualisierungsdatum(Update)
  • Datum letzte Inhaltsänderung(LastContentChanged)
  • Verarbeitungsdatum(Processed)
  • folder
sortDir STRING Die Sortierrichtung (Auf- oder absteigende). Nein
  • Aufsteigend
  • Absteigend
limit STRING Begrenzt die Anzahl von Zeilen im Ergebnis. Nein

Outputs

Das sind die Ergebnisse des Steps, die von nachfolgenden Steps, nach der Ausführung verwendet werden können.

Name Datentyp Beschreibung Pflichtfeld Werte
spreadsheet SPREADSHEET SPREADSHEET-Objekt, dass das Suchergebnis des Datastores enthält. Ja
Folgende Felder sind im Output enthalten:

Feld Datentyp Beschreibung Pflichtfeld Standardwert
datastorenameSINGLENein
folderSINGLENein
identifierSINGLENein
identifier2SINGLENein
identifier3SINGLENein
datastoretagsMULTIPLEVALUENein
parent_identifierSINGLENein
master_folderSINGLENein
master_identifierSINGLENein