Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Video Querverweis eingefügt

...

Section


Column
width60%
Auf Varianten-Zeilen zugreifen
Info

Diese Funktion steht nur bei Spreadsheets des Steps SearchDatastore zur Verfügung.

Wenn man Ergebnisse aus einem Datastore verarbeitet, der Parent- und Varianten Datensätze enthält, dann gibt es die Möglichkeit, innerhalb der Parent-Zeile auch auf die Varianten-Zeilen zuzugreifen.
Zum Beispiel kann man damit die Anzahl der Varianten-Zeilen prüfen oder in Abhängigkeit der Inhalte bestimmter Varianten-Zeile in der Parent-Zeile reagieren 


Beispiel: Ausgabe in Parent-Zeile nur, wenn es mindestens eine Varianten-Zeile gibt

Code Block
<#if (row.variants()?? && row.variants()?size > 0)>Diese Parentzeile hat ${row.variants()?size} Variantenzeilen<#else>Keine Variantenzeile vorhanden</#if>

Beispiel: In Parent-Zeile alle Varianten-Artikelnummern ausgeben

Code Block
<#if (row.variants()?? && row.variants()?size > 0)>
 
  <#list row.variants() as v>
    ${v.get('artikelnummer')!} -
  </#list>
 
</#if>

In den meisten Fällen setzt man den Filter im SearchDatastore Parents/Varianten Filter="Nur Parents", damit die Varianten-Zeilen im Ausgabe-Spreadsheet erstmal ausgeblendet werden, man aber dann im Skript per row.variants() darauf zugreift und eine eigene Ausgabe erzeugt. 


...

Section


Column
width60%
Auf Kind-Zeilen (children) zugreifen
Info

Diese Funktion steht nur bei Spreadsheets des Steps SearchDatastore zur Verfügung.

Wenn man Ergebnisse aus einem Master-Datastore verarbeitet, der mit einem Child-Datastore verknüpft ist, dann gibt es die Möglichkeit innerhalb der Master-Zeile auch auf die Zeilen des Child-Datastores zuzugreifen, den sog. children.
Zum Beispiel kann man damit die Anzahl der Children prüfen oder in Abhängigkeit der Inhalte bestimmter Children in der Master-Zeile reagieren 


Beispiel: Ausgabe in Master-Zeile nur, wenn es mindestens eine Child-Zeile gibt

Code Block
<#if (row.children()?? && row.children()?size > 0)>Diese Masterzeile hat ${row.children()?size} Children<#else>Keine Children vorhanden</#if>

Beispiel: In Master-Zeile alle Children-Artikelnummern ausgeben

Code Block
<#if (row.children()?? && row.children()?size > 0)>
 
  <#list row.children() as c>
    ${c.get('artikelnummer')!} -
  </#list>
 
</#if>

In den meisten Fällen setzt man den Filter im SearchDatastore Children ausgeben="Children nicht ausgeben", damit die Children-Zeilen im Ausgabe-Spreadsheet erstmal ausgeblendet werden, man aber dann im Skript per row.children() darauf zugreift und eine eigene Ausgabe erzeugt.


...

Section


Column
width60%

Querverweis

Mit einem Querverweis (in Excel auch bekannt als SVERWEIS) können Sie einen Wert aus einem Datastore anhand eines Schlüssels in ein Spreadsheet einfügen. Als Schlüssel zum "nachschlagen" kann eine der drei identifier-Spalten (identifier, identifier2, identifier3) verwendet werden.

Man kann einen Querverweis mit folgendem SQL Befehl vergleichen:

Code Block
SELECT * FROM datastore WHERE datastorename = 'DemoDatastore' AND identifier = '123' AND folder = 'default';


  • Datastore: Aus welchem Datastore sollen Daten abgerufen werden?
  • Folder: Aus welchem Folder (Standard: 'default') sollen Daten abgerufen werden?
  • Identifier / Identifier2 / identifier3: Um eine Zeile im Datastore zu identifizieren wird die Spalte identifier, identifier2 oder identifier3 genutzt.
  • Rückgabewert bei Treffer: Geben Sie den Namen der Spalte (Field) an, aus der die Daten im Datastore geholt werden sollen.
  • Standardwert: Hier können Sie einen Wert definieren, der zurückgegeben werden soll, wenn es keinen Treffer gibt (statt "No Record found").

Info
titleVideo Tutorial

Ein Videotutorial zum Thema Querverweis findet man hier.



Info
titleHinweis zu identifier, identifier2 und identifier3

Füllen Sie nur ein einziges identifier-Feld aus. Sind mehrere identifier ausgefüllt, dann greift nur der erste "nicht leere" Wert.
Wünschen Sie eine Oder-Logik mit z.B. entweder identifier oder identifier2 dann empfehlen wir folgendes Cookbook.



Folder ignorieren

In einigen Fällen will man den Folder ignorieren. Klicken Sie dazu auf den +-Button und wählen "Folder beim Querverweis ignorieren".
Das ist z.B. dann nützlich, wenn Sie in über mehrere Folder hinweg nach EAN suchen wollen, z.B. wenn Sie nicht genau wissen, in welchem Folder sich ein bestimmter Datensatz befindet.

Warning
titleAchtung bei doppelten Datensätzen

Achtung: Sollte es Datensätze geben, die über mehrere Folder hinweg den gleichen identifier (oder identifier2 oder identifier3) besitzen, dann liefert der Querverweis nur den ersten gefundenen. Das Ergebnis ist in diesem Fall zufällig. Das sollten Sie beachten, wenn es ID-Dopplungen gibt.



Expand
titleKlicken Sie hier, um ein Beispiel anzuzeigen
Querverweis mit festem Wert

Fester Wert bedeutet hier, das wir 'hart' mit dem Wert 12345 einen Querverweis (manchmal auch Lookup genannt) auf die Identifier2-Spalte des DemoDatastore machen.
Über Datastore, Folder und Identifier / Identifier2 wird die entsprechende Zeile lokalisiert und über Field wird das auszugebende Feld ausgewählt. 


Querverweis mit dynamischen Wert aus aktueller Zeile

Dynamisch bedeutet in diesem Fall, dass anstatt eines festen 'harten' Wertes einen dynamisch Wert aus der jeweils aktuellen Zeile nutzt.
In diesem Beispiel wollen wir einen Querverweis immer über die aktuelle Spalte 'identifier' machen, um uns anhand dieser ID den Wert aus der entsprechenden Spalte im DemoDatastore zu holen.  



Column
width40%

 


...