Datastores

Datastore

In Datastores kann man Daten tabellarisch speichern, ähnlich wie in Excel-Tabellen. Die verfügbaren Spalten werden durch sog. Schemas frei definiert. Die Daten können entweder einzeln per Hand eingetragen werden oder als Datei importiert werden. Der Import kann manuell im Browser oder automatisiert durch einen Flow gestartet werden. Sobald die Daten importiert sind, können sie durch die umfangreichen Such- und Filtermöglichkeiten durchsucht werden. 
Datastores unterstützen auch die Speicherung hierarchischer Daten wie z.B. Artikel mit Artikelvarianten oder Aufträge mit Auftragspositionen abbilden.

Importierte Daten lassen sich auch wieder exportieren. Dies kann entweder manuell oder automatisiert per Flow erfolgen. Beide Exportmöglichkeiten erlauben eine umfangreiche Umwandlung und Anpassung durch den Mapper SpreadsheetMapper.

Beispiel Datastore-Ansicht

Schema

Mit einem Schema kann man in Synesty Studio eine Datenstruktur definieren, welche in Spreadsheets und Datastores Anwendung findet.  
Für Datastores beschreiben Schemas die Spalten, deren Inhalt und Datentyp. Ein Schema wird zur Erstellung von Datastores benötigt und kann auch zur Erstellung mehrerer Datastores wiederverwendet werden. Sie können ein eigenes Schema erstellen oder auf fertige Schemas zurückgreifen.

Mit Hilfe eines definierten Schemas können vorhandene bzw. importierte Daten analysiert und validiert werden. Für jedes Feld können gültige Werte, entweder durch Eingabe von Pattern (Muster) oder durch Eingabe von erlaubten Werten, festgelegt werden.

Ein neues Schema können Sie z.B. über den  Button unter Datastores -> Schema erstellen.

Um ein vordefiniertes Schema zu nutzen, wählen Sie in der entsprechenden Auswahl das gewünschte Schema aus und klicken anschließend auf den "Erstellen" Button. Ein solches Schema kann nicht verändert werden.

Hinweis

Einige Steps benötigen einen Datastore mit einem fest definierten Schema. Beachten Sie dazu die Hinweise in der jeweiligen Step Beschreibung.

Schema automatisch erstellen

Alternativ zur manuellen Erstellung, kann man einen neuen Datastore auch durch einen Import erzeugen. Dabei wird das Schema automatisch erstellt. Das ist praktisch, wenn das benötigte Schema sehr viele Spalten hat, deren manuelle Erstellung sehr zeitaufwendig wäre. Erstellen Sie dazu einfach den Datastore durch einen Import einer CSV-Datei (manuell oder per Flow) und es wird ein Schema mit allen Spalten der CSV-Datei angelegt.

Schema konfigurieren

Eigenschaft
Beschreibung
Name

Der Name des Feldes.

Art des Inhalts

(Content-Type)

Beschreibt den Inhalt des Feldes genauer. Diese Einstellung hat Einfluss auf die Feld-Validierung und Anzeige im Backend.
Standardwert: TEXT

Typ
Beschreibung
LONGTEXTgibt an, dass dieses Feld einen sehr langen Text enthält. Auswirkung: Aktuell keinerlei Auswirkungen auf Validierung oder Anzeige (evtl. in Zukunft).
HTMLgibt an, dass dieses Feld HTML-Code enthält. Auswirkung: Aktuell keinerlei Auswirkungen auf Validierung oder Anzeige (evtl. in Zukunft).
URLgibt an, dass dieses Feld eine URL enthält. Auswirkung: Im Datastore-Backend wird das Feld als anklickbarer Link dargestellt.
IMAGEURLgibt an, dass dieses Feld eine Bild-URL enthält. Auswirkung: Im Datastore-Backend (Detailseite) wird das Bild beim Überfahren mit der Maus eingeblendet.
JSONgibt an, dass dieses Feld einen Wert im JSON (JavaScript Object Notation) Format enthält. Auswirkung: Wenn das Feld keinen validen JSON Wert enthält, dann wird im Datastore-Backend bzw. im SpreadsheetMapper eine Warnung angezeigt. 
INTEGERgibt an, dass das Feld eine Ganzzahl (z.B. 10, 100) enthält. Auswirkung: Wenn der Feldinhalt keine Ganzzahl ist, dann wird im Datastore-Backend und im SpreadsheetMapper eine Warnung angezeigt.
DECIMALgibt an, dass das Feld eine Dezimalzahl ist (Komma als Dezimaltrenner). Auswirkung: Wenn der Feldinhalt keine Dezimalzahl ist, dann wird im Datastore-Backend und im SpreadsheetMapper eine Warnung angezeigt. 
BOOLEANgibt an, dass das Feld entweder TRUE oder FALSE enthält. Auswirkung: Aktuell keinerlei Auswirkungen auf Validierung oder Anzeige (evtl. in Zukunft). 
DATETIME

gibt an, dass das Feld ein DATUM enthält. Folgende Datumsformate werden unterstützt:

  • yyyy-MM-dd'T'HH:mm:ssZZ
  • yyyy-MM-dd HH:mm:ss.SSS
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd HH:mm
  • yyyy-MM-dd
Pflichtfeld

Gibt an, ob das Feld ein Pflichtfeld ist oder nicht. Auswirkung: Wenn der Feldinhalt leer ist, dann wird im Datastore-Backend und im SpreadsheetMapper eine Warnung angezeigt.
Bsp.:

Über das  Icon kann jedes Feld noch genauer konfiguriert werden.

Eigenschaft
Beschreibung
Eigenschaft
Beschreibung
Typ

Hier kann der generelle Datentyp der Spalte eingestellt werden.  (Standardwert: SINGLE)

SINGLE - sagt, dass hier ein einfacher / einzelner Wert gespeichert ist.

MULTIPLEVALUE - sagt, dass die Werte in diesem Feld eine Liste darstellen. Die Listenelemente sind durch ein definiertes Trennzeichen separiert, z.B. :

red,green,yellow,black

Auf Zellen dieses Typs lassen sich im SpreadsheetMapper die Hilfs-Funktionen .at(position) oder .contains("wert") nutzen, um auf einzelne Listenelemente zuzugreifen, oder zu prüfen, ob ein Wert in der Liste enthalten ist.

Beispiele:

<#if colors.contains("green")>Grün</#if>
<#if colors.at(0) == "red">Meine Lieblingsfarbe ist rot</#if>

MAP - sagt, dass es sich um eine sog. Map aus Schlüssel-Wert-Paaren handelt (z.B. auch bekannt als Hashmap). Dies wird gern zum Abbilden von Produktattributen verwendet, z.B.:

color=red;size=L
  • MAP (mit Art des Inhalts = JSON):  Einen Spezialfall stellt die Kombination aus Feldtyp MAP und Art des Inhalts JSON dar. Wird diese Kombination im Schema ausgewählt, so werden die Schlüssel-Wert-Paare im JSON Format erwartet, z.B.: 

    { "color" : "red", "size" : "L" }

Auf Zellen dieses Typs lassen sich im SpreadsheetMapper die Hilfs-Funktionen .at("key") , .containsKey("key") oder .containsKeysAll("key1", "key2") nutzen, um auf einzelne Listenelemente zuzugreifen, oder zu prüfen, ob ein Wert in der Liste enthalten ist.

Beispiele:

<#if attributes.at("color") == "red">Mein T-Shirt ist rot</#if>
<#if attributes.containsKey("color")>Mein Artikel hat eine Farbe</#if>
<#if attributes.containsKeysAll("size", "color")>Mein Artikel hat eine Farbe und Größe</#if>
RegEx Pattern

Ein regulärer Ausdruck (RegEx) der den Feldinhalt beschreibt. Sollte der Feldinhalt nicht dem Ausdruck entsprechen, dann wird im Datastore-Backend und im SpreadsheetMapper eine Warnung angezeigt und farbig hinterlegt.
Weitere Details unter Pattern.

Trennzeichen

Nur relevant wenn Typ=MULTIPLEVALUE oder MAP ist.

Erlaubte Werte

Werte: Komma-getrennte Liste von erlaubten Werten. (z.B. 1,2,3 usw.)

Standardwert: Gibt den Standardwert aus der Werte-Liste an.

Labels: Optionale Komma-getrennte Liste mit Bezeichnungen für jeden Wert. Labels sind nur für die Anzeige und können auch weggelassen werden.
Wichtig ist, dass man immer genau so viele Labels angibt, wie es auch Werte gibt. D.h. die Werte müssen korrespondieren. (Bsp: Werte: 1,2 Labels: New,Used)

Auswirkung: Wenn Sie im SpreadsheetMapper das Schema laden, dann wird eine Auswahl "Gültige Werte" angezeigt. Der Standardwert wird dabei hervorgehoben. 

Sollte der Feldinhalt nicht dem Ausdruck entsprechen, dann wird im Datastore-Backend und im SpreadsheetMapper eine Warnung angezeigt wie z.B.:

Schema laden im SpreadsheetMapper

Pattern

Pattern (Muster) legen fest, welche zulässige Struktur ein Wert haben darf. Diese Pattern werden durch Eintrag der entsprechenden RegEx (regular expression - Regulärer Ausdruck) am Feld festgelegt.
Zum Testen von Patterns gibt es verschiedene Programme im Internet. Wir empfehlen https://regex101.com/open in new window.

Anwendungsbeispiele für Patterns

Diese Liste enthält einige Beispiele für Patterns, welche für Prüfungen von Werten in einer Spalte verwendet werden können.
Bitte beachten, dass es oft mehrere Lösungen für eine RegEx geben kann.

FormatBeschreibungRegEx
Textlänge (255)Zulässige Längenbegrenzung z.B. eines Produktnamens auf 255 Zeichen. Produktname soll mindesten 5 Zeichen haben.^.{5,255}$
DezimalzahlPrüfung, ob Wert eine Dezimalzahl ist. Dies findet Anwendung bei z.B. Preisangaben. Es müssen immer genau 2 Stellen nach dem Trenner (hier im Beispiel Punkt) angegeben werden. Beispiel für gültige Werte 49.99, 0.29, 299.00^\d+.\d{2}$
Postleitzahl5 stellige Postleitzahl für Deutschland^\d{5}$
EAN1313 stellige EAN Nummer^\d{13}$
e-mail AdressePrüfung auf gültige e-mail Adresse mit 2 oder 3 Zeichen am Ende (z.B. .de oder .com)
Beispiel für gültige Werte: info@synesty.com , info-center@test_1-2.de
^[a-zA-Z0-9_-.]+@[a-zA-Z0-9_-.]+.[a-zA-Z0-9]{2,3}$
IPv4 AdressePrüfen auf gültige IP Adresse im IPv4 Format
Beispiel für gültigen Wert: 123.10.0.182
^(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})$
Erlaubte WerteErlaubte Werte prüfen. Z.B. Gewichtsangaben "g", "kg, "oz", or "lb"
Diese Werte können auch direkt bei Erlaubte Werte eingetragen werden.
^(kg
ImageURLImageURL mit erlaubten Imageformaten (Bsp. jpg, gif und png) prüfen^([Hh][Tt][Tt][Pp][Ss]?:\//[a-zA-Z0-9_-./]+.(jpg
Numerisches FeldSpalte darf beliebige Anzahl von Zahlen enthalten (z.B. numerische Produktnummer) .
Beispiel für gültige Werte: 2348535, 001, 110012
^\d+$
SchemaSchema für z.B. Produktnummer.
Beispiel für gültige Werte: 23-48535.1 , 23-48535.12 , 23-48535.123
^\d{2}-\d{5}.\d{1,3}$
Preisangabe Variante 1Die zulässige Preisangabe ist entweder ein Zahl ohne Nachkommastelle ODER mit Nachkommastelle wobei es eine oder zei Nachkommastellen geben kann.
Beispiel für gültige Werte: 49 oder 99,99 oder 24,9
^(\d+)$
Preisangabe Variante 2Preisangabe mit 2 festen Nachkommastellen
Beispiel für gültige Werte: 123,99 oder 24,49
^\d+,\d{2}$
Preisangabe Variante 3Preisangabe mit 2 festen Nachkommastellen gefolgt von einem Leerzeichen und Währungsangabe nach ISO 4217 CodeHinweis: Es wird nur die Struktur geprüft. Die Richtigkeit des Währungssymbols wird nicht geprüft.
Beispiel für gültige Werte: 123,99 EUR oder 24,49 CHF
^\d+,\d{2}\s[A-Z]{3}$

Datenvalidierung

Schemas für Datenvalidierung nutzen

  • Art des Inhalts (Content-Type), Pattern und Erlaubte-Werte sind wichtig für Validierung

Validierungsergebnis im Datastore

Im Datastore werden invalide Zellen, die nicht dem Schema entsprechen rot markiert.

In der Datensatz-Detailansicht sieht man auch eine Erläuterung.

Datenvalidierung im SpreadsheetMapper

Auch im Mapper SpreadsheetMapper kann man Informationen aus dem Schema nutzen.
Dazu kann man die Funktion "Schema Laden" nutzen, um ein Schema quasi über einen Mapper "drüber" zu legen. Dadurch werden die aktuellen Daten validiert und z.B. auch die erlaubten Werte sichtbar.

Mehr dazu unter SpreadsheetMapper - Ziel-Schema laden.

Einen neuen Datastore erstellen

Hinweis

Um einen neue Datastore zu erstellen zu können, wird immer ein Datastore-Schema benötigt. Wenn ein entsprechendes noch nicht vorhanden ist, sollten Sie mit der Erstellung des Schemas beginnen.

Einen neuen Datastore können Sie über den Menüpunkt Datastores ->  "Neuer Datastore" Button anlegen.
Der Name des Datastore kann beliebig gewählt werden. Wählen Sie anschließen den Typ und das Schema des neuen Datastores aus.
Wenn Sie einen Child Datastore erstellen, muss zusätzlich ein vorhandener Master Datastore ausgewählt werden (siehe Master-Child). Erstellen Sie deshalb immer zuerst den Master Datastore.

Interne Spalten

Jeder Datensatz (Datastore Record) hat einige feste, interne Spalten, die immer vorhanden sind. Diese spielen vor allem beim Import und Export eine Rolle. Diese Spalten kann man in Identifier- und Status-Spalten unterscheiden.

Identifier-Spalten

Die Identifier-Spalten dienen der eindeutigen Zuordnung von Datensätzen und deren Beziehungen zu anderen Datensätze (Master-Child und Parent-Variant). Alle Pflichtfelder müssen bei Imports oder Updates gefüllt werden, damit die Datensätze identifiziert werden können. Die optionalen Spalten dienen hauptsächlich der Verknüpfung von Datensätzen mit anderen Datensätzen.

Identifier2 und Identifier3

Ein Beispiel-Einsatz der Spalten identifier2 und identifier3 ist z.B. wenn es um Artikeldaten geht, die in 2 getrennten Systemen unterschiedliche IDs / Nummern haben. 
Die identifier-Belegung in Synesty Studio könnte dann aussehen wie folgt:

  • identifier = eindeutige SKU der Warenwirtschaft
  • identifer2 = eindeutige Artikelnummer des Shopsystems
  • identifier3 = EAN des Artikels
Name
Beschreibung

datastorename

(Pflichtfeld)

Name des Datastores in den importiert werden soll.

folder

(Pflichtfeld)

Bezeichnung für den Ordner, zur Gruppierung. Der folder ist Teil des Primärschlüssels eines Datensatzes.

Default-Wert (wenn leer oder nicht vorhanden): default

identifier

(Pflichtfeld)

Eindeutiger Bezeichner des Datensatzes. z.B. Artikelnummer, SKU. Muss zusammen mit folder in einem Datastore eindeutig sein.
z.B.

eindeutig pro Datastore:

folder: meinordner1
identifier: 123 

folder: meinordner2
identifier: 123

Nicht eindeutig in einem Datastore:
folder: meinordner1
identifier: 123

folder: meinordner1
identifier: 123

identifier2

(Optional)

Optionaler Identifier der für weitere Schlüssel (z.B. Lieferanten-Artikelnummer) verwendet werden kann. Der identifier2 kann in der Querverweis Funktion verwendet werden, um einen Datensatz zu identifizieren.

Default-Wert: <leer> 

identifier3

(Optional)

Optionaler Identifier der für weitere Schlüssel (z.B. EAN) verwendet werden kann. Der identifier3 kann in der Querverweis Funktion verwendet werden, um einen Datensatz zu identifizieren.

Default-Wert: <leer> 

parent_identifier

(Optional)

Der identifier des referenzierten Parent Datensatzes im gleichen Datastore und Folder. Wenn gesetzt, dann wird dieser Datensatz mit dem Parent verknüpft und bildet einen Datensatz vom Typ "Variant".

Default-Wert: <leer>

master_datastore

(Optional)

Nur für Child-Datastores.
Name des referenzierten Master-Datastores.

(master_datastore, master_folder und master_identifer müssen zusammen den referenzierten Master-Datensatz beschreiben.)

master_folder

(Optional)

Nur für Child-Datastores.
Bezeichnung für den Ordner des referenzierten Master-Datensatzes.

(master_datastore, master_folder und master_identifer müssen zusammen den referenzierten Master-Datensatz beschreiben.)

master_identifier

(Optional)

Nur für Child-Datastores.
identifier des referenzierten Master-Datasatzes im Master-Datastore.

(master_datastore, master_folder und master_identifer müssen zusammen den referenzierten Master-Datensatz beschreiben.)

Status-Spalten

Die Status-Spalten dienen der Anzeige im Datastore und können zur Filterung genutzt werden.

NameBeschreibung
CreatedDiese Spalte gibt das Erstellungsdatum des Datensatzes an.
UpdatedDiese Spalte gibt das Datum des letzten Updates an.

(muss nicht zwingend eine Änderung des Inhalts bedeuten, wenn der gleiche Datensatz importiert wurde)
LastContentChangedDiese Spalte gibt das Datum der letzten Änderung des Inhalts an.

(Spalte des Schemas, nicht interne-Spalte)
Processing StatusDiese Spalte gibt den Verarbeitungsstatus eines Datensatzes an. Mögliche Werte sind:

UNPROCESSED, INPROCESS, PROCESSED_ERROR, PROCESSED_SUCCESS

Diese Werte werden meist von Steps gesetzt, die Datensätze eines Datastores direkt verarbeiten, z.B. PlentyAddOrders
ProcessedDiese Spalte gibt das Datum der Verarbeitung an.

(wann wurde der Processing Status geändert)

Daten manuell bearbeiten

Es gibt 3 Möglichkeiten wie man Datensätze bearbeiten kann.

Datensatz-Detailansicht

Über das Auge-Symbol in der Suche gelangt man zur Detail-Ansicht.

Über "Daten bearbeiten" kommt man in den Editiermodus.

Bei Änderungen wird der Wert vor der Änderung noch mit angezeigt. Dies ist oft bei der Fehlersuche hilfreich, wenn man herausfinden will, was und wann sich ein Datensatz geändert hat.

Inline-Editing direkt im Suchergebnis

Durch Doppelklick auf einen Spaltenwert oder den Namen der Spalte im Suchergebnis des Datastores, kann man die Felder einer Zeile direkt editieren. Das ist praktisch, wenn man schnell Änderungen durchführen, ohne erst in die Detailansicht zu wechseln.

Massen-Bearbeiten

Die dritte Option ist das Massen-Bearbeiten, dass unter Aktionen / Bearbeiten erklärt wird.

Hierarchische Daten

Datastores erlauben es Daten hierarchisch abzuspeichern. Dabei unterscheiden wir zwischen zwei verschiedenen Konzepten:

  • Parent-Variant
  • Master-Child

Wenn wir von hierarchischen Daten und Parent-Variant Import sprechen, dann meinen wir damit den Import von Daten, zwischen denen es eine Eltern-Kind Beziehung (z.B. Stamm-Artikel und dazugehörige Varianten) gibt und die sich im gleichen Datastore befinden.

Master-Child ist sehr ähnlich zu Parent-Variant. Beide Konzepte beschreiben eine Eltern-Kind-Beziehung, aber mit folgenden Unterschieden:

  • Bei Parent-Variant liegen die Datensätze im selben Datastore
    • dadurch haben Parent- und Variant-Datensätze das gleiche Schema
  • bei Master-Child liegen Datensätze in unterschiedlichen Datastores
    • dadurch können Master- und Child-Datensätze unterschiedliche Schemas verwenden

Wir haben uns für diese 2 unterschiedlichen Begriffe entschieden, um diese beiden Konzepte auseinander halten zu können.

Mehr dazu auf der Seite Datastore Import und Export.

Datenimport und -export

Das Thema Import und Export wird auf der Seite Datastore Import und Export ausgiebig behandelt.

Export hierarchischer Daten mit Zugriff auf Parent / Master Zeile

Hierarchische Daten mit Zugriff auf Parent / Master Zeile exportieren

Wir empfehlen auch den Abschnitt Spreadsheets - Auf Relationen zugreifen, der beschreibt, wie man beim Export hierarchischer Daten auf die Parent- bzw. Master-Zeile zugreift. Das ist nützlich wenn man z.B. Auftragspositionen mit Daten aus dem Auftragskopf anreichern möchte.

Backup und Wiederherstellung (Backup / Restore)

Unter Datastore-Einstellungen finden Sie die Punkte Backup erstellen und Backup wiederherstellen
Damit kann ein Datastore als ZIP-Datei mit samt Schema gesichert und wieder eingespielt werden. Das Backup kann mit dem Step Datastore-Backupopen in new window auch per Flow automatisiert werden.

Suche

Die Suche ist der zentrale Anlaufpunkt für jegliche Interaktion mit einem Datastore. Sie erlaubt neben der klassischen Suche über einen Suchbegriff die Anwendung verschiedenster Filter, um Daten zu finden und zu selektieren.

Suchformular

Suchfilter

Suchbegriff

Durchsucht den Datastore nach Datensätzen, die in einem Feld die eingegebenen Zeichenfolge (den Suchbegriff) enthalten.

Folder

Grenzt die Suche auf einen oder mehrere Folder ein.

Hinweis

Die Liste der Folder wird aus Geschwindigkeitsgründen zwischengespeichert (Cache). Das kann dazu führen das nicht alle Folder oder nicht mehr vorhandene Folder angezeigt werden. Sie können die Folder Liste über den Button explizit aktualisieren.

Child Filter

Zeigt Datensätze abhängig davon, ob sie Child-Datensätze in einem Child-Datastore besitzen oder nicht.

  • All - keine Einschränkung
  • items with children - Datensätze mit Children
  • items without children - Datensätze ohne Children

Child-Datastore, Child-Folder

Findet Datensätze, zu denen es Datensätze im gewählten Child-Datastore gibt. Dieser Filter ist nur bei Master-Datastores sinnvoll, zu denen es Datensätze in Child-Datastores gibt.

Sobald ein Child-Datastore ausgewählt wurde, kann die Suche optional auch noch auf einen folder innerhalb des Child-Datastores eingeschränkt werden.

Beispiel nur Child-Datastore: "finde alle Aufträge mit Referenzen auf Datensätze im Datastore Position"

Beispiel + Child-Folder: "finde alle Aufträge mit Referenzen auf Datensätze im Datastore Position im Folder=default"

Only selected child folders: - diese Checkbox in Kombination mit der Checkbox "Show Children" zeigt nur Child-Datensätze, der ausgewählten Child-Folder. Wenn diese Option nicht aktiviert ist, werden auch Child-Datensätze anderer Child-Folder angezeigt.

Level (Parent/Variant Level)

Zeigt Datensätze abhängig von ihrer Positionen in der Parent-Variant Hierarchie.

  • Both - keine Einschränkung
  • Parents only - zeigt nur Parent Datensätze, also der 1. Ebene
  • Variants or Parents w/o (without) variants - zeigt nur die unterste Hierarchieebene, d.h. entweder Varianten oder Parents die keine Varianten haben.
  • Variants only - zeigt nur Varianten. D.h. ausschließlich Varianten, die einen Parent haben, nicht aber Parents, die keine Varianten haben.

Level Filter (Parent/Variant Status)

Findet Datensätze in Abhängigkeit davon, ob es Variant-Items gibt oder nicht.

  • All - keine Einschränkung
  • Parents with Variants - findet alle Datensätze, die auch Varianten haben (Varianten haben den Identifier des Parents als parent_id)
  • Parents without Variants - findet alle Datensätze, die keine Varianten haben

Validation Status

Findet Datensätze abhängig vom Validierungsstatus. Der Validierungsstatus wird beim Speichern (Import, Anlegen und Update) eines Datesatzes anhand der im Schema hinterlegten Informationen ermittelt. Wenn im Schema z.B. ein Feld als Pflichtfeld definiert wurde, aber beim Import leer ist, dann wird der ganze Datensatz als ungültig (Invalid) markiert. Bei der Suche erscheinen die invaliden Felder rot hinterlegt.

  • All - ignoriert den Validation Status
  • Valid - findet nur Datensätze ohne Validierungsfehler
  • Invalid - findet nur Datensätze bei denen es beim speichern Validierungsfehler gab

Processing Status

Findet Datensätze mit einem bestimmten PROCESSING-Status.

  • All - keine Einschränkung
  • UNPROCESSED - nur unverarbeitete Datensätze
  • INPROCESS - nur Datensätze, die in Bearbeitung sind
  • PROCESSED SUCCESS - erfolgreich bearbeitete Datensätze
  • PROCESSED ERROR - fehlerhaft bearbeitete Datensätze

Der Processing Status kann folgendermaßen gesetzt werden:

  • Datastore Suche / Actions / Reset Processing Status
  • SpreadsheetDatastoreWriter Step
  • einige andere Steps, die direkt auf Datastores arbeiten (z.B. Plentymarkets AddOrders Step)

Date Filter

Findet nur Datensätze, bei denen die gewählte Datumsspalte in einem bestimmten Zeitraum liegt.

  • Insert Date - Erstelldatum
  • Update Date - Datum der letzten Änderung
  • Processed Date - Datum der letzten Verarbeitung
  • Last Content Change Date - Datum der letzten inhaltlichen Änderung. Dieses Datum wird nur aktualisiert, wenn sich wirklich eines der Felder durch ein Update verändert hat.

Filter

Hier kann ein Freemarker (siehe Scripting) Ausdruck zur Filterung der Datensätze verwendet werden.

Beispiel: stock == "2"

Der Beispielfilter zeigt nur Datensätze an die in der Spalte stock einen Wert von "2" besitzen.

Über das "+" Zeichen erhalten Sie eine kleine Auswahl vorgefertigter Filter.

Flow-Run-ID Filter

Findet Datensätze, die durch einen bestimmten Flow-Run im Rahmen eines ausgeführten Flows  "angefasst" wurden. Angenommen ein Datenimport Flow hat ein Feld eines Datensatzes geändert, dann wird im Datensatz die ID des Flow-Runs gespeichert, im Rahmen dessen die Änderung gemacht wurde.
In der Datensatz Detailansicht wird dies durch "Importiert durch Flowrun" gekennzeichnet.

Nützlich ist diese Funktion, um alle Datensätze zu identifizieren, die durch einen bestimmten Flow-Run aktualisiert wurden.

In vielen Fällen noch wichtiger ist es, alle Datensätze zu identifizieren, die NICHT durch einen bestimmten Flow-Run "angefasst" wurden. Diese Datensätze sind dabei oft Datenleichen, also Datensätze, die z.B. von einem externen System NICHT MEHR mitgeschickt werdenopen in new window (z.B. ausgelaufene Artikel). Diese Datensätze will man in der Regel finden und löschen bzw. als inaktiv markieren oder Bestand null setzen.

Sorting

Sortiert die Ergebnisliste nach folgenden Spalten, wahlweise in absteigender oder aufsteigender Richtung:

  • Created Date - nach Erstelldatum
  • Update Date - nach Datum der letzten Änderung
  • Last Content Change Date - nach Datum der letzten inhaltlichen Änderung
  • Processing Date - nach Verarbeitungsdatum
  • Identifier - nach Identifier
  • Folder - nach Folder

Show Children

Zeigt zusätzlich zu den Datensätzen des derzeit aktuellen Datastores auch die Child - Datensätze an.

Aktionen

Aktionen werden auch als Massen-Update oder Gruppenfunktionen bezeichnet und stellen Funktionen im Datastore bereit, die auf mehrere Datensätze gleichzeitig angewendet werden können. 
Dabei lassen sich die Aktionen nur auf selektierte Datensätze oder auf das gesamte Suchergebnis anwenden. Letzteres bedeutet, dass auch Datensätze von der Aktion erfasst werden, die nicht auf der aktuellen Suchergebnisseite angezeigt werden. Bei solchen Aktionen darf kein Datensatz selektiert sein.

Hinweis

Die Exportfunktion exportiert alle markierten Suchergebnisse oder alle Suchergebnisse, wenn keines markiert ist.

Exportieren

Alle Daten eines Datastores können über den  Button exportiert werden.

  • Als Datei - Daten als CSV-Datei herunterladen, passend zu den gewählten Filtereinstellungen.
  • Export-Flow erstellen - Erstellt einen neuen Flow der die gewählten Filtereinstellungen übernimmt.

Export als Datei

Der Unterpunkt "Als Datei" kann zum Export in eine CSV oder XLS genutzt werden. Dabei können die Spalten des Exports flexibel über der gewohnt SpreadsheetMapper-Ansicht konfiguriert werden, um Spalten zu bearbeiten oder zu entfernen.

Export-Flow erstellen

Diese Funktion ist eine praktische Abkürzung um einen einfachen Flow zu erstellen, welcher Daten aus dem Datastore ausliest, diese aufbereitet und in eine CSV-Datei schreibt. Sie könnten einen solchen Flow theoretisch auch manuell erstellen, jedoch ist dieser Weg wesentlich schneller.

Bearbeiten

Die Bearbeiten Funktion ermöglicht die Änderung von Werten selektierter Datensätze (Massen Update). Wählen Sie eine oder mehrere Spalten aus in denen Werte geändert werden sollen. Anschließend gelangen Sie in die Transformy Ansicht und können hier Änderungen der Werte vornehmen.

Bestätigen Sie die Änderungen durch drücken des "Start Update" Buttons.

Kopiere nach

Kopiert die selektierten Daten in einen anderen Datastore. Dabei kann man durch Konfiguration beeinflussen, wie die neuen Datensätze erzeugt werden.

Durch Klick auf Next, gelangt man wieder in die Transformy Spalten-Konfiguration, wo man optional noch weiteren Einfluss auf die zu kopierenden Daten nehmen kann.

Löschen

Entfernt die selektierten Datensätze.

Hinweis

Die Löschen Aktion kann nur auf selektierte Datensätze angewendet werden.
Achtung: Das Löschen kann nicht rückgängig gemacht werden.

Folder Löschen

Entfernt alle Datensätze eines Folders.

Datastore leeren

Entfernt alle Datensätze dieses Datastores.

Vorgehen beim leeren des Datastores:

1. Zusätzliche Optionen wählen (optional):

Sie haben die Möglichkeit, die zu löschenden Datensätze nach bestimmten Merkmalen einzugrenzen:

Kompletten Datastore leeren

Um den gesamten Datastore zu leeren, gehen Sie direkt zu 2. über.

  • Löschen von Datensätzen mit einen bestimmten Verarbeitungsstatus:
    • UNPROCESSED
    • INPROCESSED
    • PROCESSED SUCCESS
    • PROCESSED ERROR
    • PROCESSED MARK_DELETE
  • Eingrenzung der Datenzeilen durch einen Datumsfilter:
    • Erstellungsdatum
    • letzte Aktualisierung
    • letzte InhaltsänderungNach Auswahl des Filter-Kriteriums, tragen Sie bitte noch das gewünschte Start- und/oder Enddatum ein.

2. Vorschau anzeigen und kontrollieren

Nach Eingabe aller gewünschten Optionen, klicken Sie auf "Vorschau vor Löschen" um sich ein Preview der zu löschenden Daten anzuzeigen.

Hinweis

Die Vorschau der zu löschenden Daten wird in einen neuen Browser-Tab geöffnet.

3. Daten löschen

Nach Kontrolle der Datenzeilen, kehren Sie in das ursprüngliche Browser-Tab zurück. Nun können Sie die Daten, falls gewünscht, durch Klick auf "Jetzt unwiderruflich löschen" aus dem Datastore entfernen.

Erweitert

Verarbeitungsstatus ändern

Aktualisiert den PROCESSING STATUS der selektierten Items. Das kann z.B. nützlich sein, um einen Datenexport erneut anzutriggern, wenn dieser z.B. den betroffenen Datensatz nach fehlgeschlagenem Export auf PROCESSED_ERROR gestellt hat. In diesem Fall würde man vermutlich den Datensatz wieder auf UNPROCESSED zurücksetzen.

Suchfilter speichern

Ein erstellter Suchfilter aus allen oben genannten Möglichkeiten kann mit  unter einem frei wählbaren Namen gespeichert werden, um ihn später mit einem Klick wieder aufzurufen.

Schnellsuche Vorlagen

Die Schnellsuche bietet auch einige vorgefertigte und häufig genutzte Suchfilter unter Vorlagen.

Spalten-Funktionen

Eindeutige Werte

Oft möchte man wissen, wie viele eindeutige Werte eine bestimmte Spalte hat. Das spielt immer dann eine Rolle, wenn man diese Werte z.B. für Zuordnungstabellen (Mappingsets in Synesty Studio) braucht.

Beispiel: "Wie viele eindeutige Kategorien habe ich?"
D.h. angenommen man hat einen Katalog mit 20000 Artikeln, die sich auf 105 verschiedene Kategorien aufteilen. Wenn man nun eine Liste genau dieser 105 eindeutigen Kategoriepfade wissen möchte, dann kann man diese Funktion benutzen.

Das "Eindeutige Werte" Feature entspricht der aus SQL-Datenbanken bekannten DISTINCT() Funktion und dient dazu die eindeutigen / unterschiedlichen Werte einer gewählten Spalte über alle Datensätze zu ermitteln.


Der Screenshot zeigt, dass es pro "brandname" jeweils einen Datensatz gibt.

Datastore Management

Hinter dem Menüpunkt Datastore-Management finden Sie Konfigurationseinstellungen für einen Datastore. 
Diese stehen ab dem Plus-Paketopen in new window zur Verfügung.

Automatisches Löschen von Datensätzen

Die automatische Löschfunktion erlaubt Ihnen Datensätze automatisch zu entfernen, welche älter als X Tage sind, bezogen auf das gewählte Datumsfeld. Optional kann die Löschung noch auf ein oder mehrere Processing-Status eingeschränkt werden. Der Löschvorgang läuft regelmäßig im Hintergrund.

Daten frühstmöglich löschen

Um Datenzeilen direkt zu löschen, stellen Sie den Zeitraum auf "0 Tage" ('Sofort löschen'). Bitte beachten Sie, dass es einige Minuten dauern kann bis die Datenzeilen wirklich gelöscht sind.

Wann brauche ich das?

Immer wenn Sie sehr alte Datensätze automatisch löschen oder Daten nicht sehr lange in Datastores speichern wollen. Wenn Datensätze durch diese Funktion entfernt wurden, finden Sie einen Eintrag im System Log.

Änderungs-Tracking konfigurieren und Felder ausschließen

Was ist Änderungs-Tracking? 
Wenn Sie bereits Datastores nutzen, dann kennen Sie das Feld LastContentChanged, den jeder Datensatz besitzt.

Änderungs-Tracking erkennt inhaltliche Änderungen an Datensätzen. Jedes mal wenn sich ein Feld inhaltlich ändert, wird das Feld LastContentChanged des Datensatzes aktualisiert. 
Dieses Verhalten ist automatisch für ALLE Felder aktiv.

Neu ist ab jetzt, dass dieses Verhalten konfigurierbar ist, und dass man bestimmte Felder vom Änderungs-Tracking ausschließen kann.

Wann brauche ich das?

Angenommen Sie haben eine Artikeldatenbank. Sie wollen dass ein Datensatz nur als geändert markiert wird, wenn sich Bestand (stock) oder Preis (price) geändert hat, nicht aber wenn sich das Feld Beschreibung ändert. 
In diesem Fall, würden Sie alle Felder außer stock und price ausschließen.

Ein Folgeprozess eines Bestandsupdates kann damit wesentlich effizienter gestaltet werden, da der Datensatz nur noch als "inhaltlich geändert" markiert wird, wenn sich stock oder price geändert haben, und nicht mehr bei jeder Feldänderung.

Mapping Set

Ebenfalls im Navigationspunkt Datastores, finden Sie den Reiter Mapping Set. Ein Mapping Set ist eine Art Übersetzungstabelle, womit Sie einen Quellwert in einen Zielwert übersetzen, auch genannt "mappen", können.

Im Screenshot sehen Sie ein Beispiel, wie Mapping Sets dazu genutzt werden können, um z.B. Attribute verschiedener Systeme anzugleichen bzw. als synonym zu verwenden.

Wo werden Mapping Sets angewendet?

Mapping Sets können als Spaltenfunktion innerhalb des Mapper SpreadsheetMapper Steps angewendet werden, sowie unter Eindeutige Werte bei den Datastore-Spaltenfunktionen. Das betrifft folgende Bereiche und Aktionen:

  • Datastore Import
  • Datastore Export
  • Datastore Spaltenfunktionen
  • SpreadSheetMapper Step

Häufig gestellte Fragen zum Thema Datastore

Woher weiß ich wann ich Datastores brauche?

Immer dann, wenn Sie Daten in Synesty Studio zwischen speichern wollen oder müssen, kommen Datastores zum Einsatz. 
Ob und wann Sie Daten zwischenspeichern müssen hängt von verschiedenen Faktoren ab.

In der Praxis werden Datastores häufig dann genutzt, wenn Sie neue Daten mit vorhandenen Daten abgleichen wollen.

Wann brauche ich Datastores nicht?

Es gibt viele Szenarien, wo Sie keine Datastores benötigen.
Zum Beispiel, wenn Sie einfach nur einen Flow erstellen, der eine CSV-Datei geringfügig umwandelt und diese dann auf einen FTP-Server kopiert - mit anderen Worten "die Daten nur durchschleift". In diesem Fall müssen die Daten in der Regel nicht zwischengespeichert werden. Theoretisch könnte man das - aber man muss es nicht.

Wann ist ein Datastore sinnvoll?

Angenommen Sie haben ein Szenario, wo Sie von mehreren Lieferanten Produktdaten bekommen. Man könnte diese verschiedenen Daten erstmal in einem Datastore konsolidieren. D.h. man importiert der Reihe nach alle Daten in den Datastore. Dabei könnte man auch schon Spalten bereinigen, umbenennen oder anreichern. D.h. am Ende liegen die Daten dann einheitlich im Datastore. Sie können die Daten in Ruhe sichten, evtl. manuell bearbeiten oder filtern. Anschließend könnten die Daten aus dem Datastore mit Hilfe von Flows weiterverarbeitet oder exportiert werden.

Weitere Anwendungsbeispiele:

  • Markierung und Speicherung von Zuständen z.B. Bearbeitungsstatus
    • Angenommen Sie wollen Datensätze als "exportiert" oder "noch nicht exportiert" markieren. Dann können Sie diese Markierung am Datensatz speichern und damit verhindern dass Datensätze doppelt exportiert werden.
    • Sie könnten z.B. "verbotene" Datensätze markieren, die einem Eintrag in einer Blacklist oder Whitelist entsprechen.
  • Konsolidierung verschiedener Datenquellen in ein einheitliches Format. Das einheitliche Format stellt der Datastores dar.
  • Anreicherung von Daten über Querverweise
    • Angenommen Sie wollen eine CSV-Datei eines Lieferanten, die nur eine Artikelnummer enthält, um weitere Spalten wie Artikelname und Bild-URL aus ihrem eigenen Produktkatalog erweitern. Dann ist ein Datastore sehr sinnvoll, da man über den Querverweis auf die Artikelnummer auf alle Spalten ihrer Artikel zugreifen kann, um damit die CSV-Datei zu erweitern
  • Abgleich von neuen und vorhandenen Daten

Was kostet die Speicherung in Datastores?

Immer wenn Sie Daten in einem Datastore speichern, benötigen Sie auch den notwendigen Speicherplatz dafür. In Synesty Studio wird das pro Datensatz gemessen. D.h. Sie müssen die notwendige Anzahl an Datensätzen gebucht haben, um entsprechend viele Datensätze speichern zu können.

Sie können ein Paketopen in new window erwerben, um die Datensatz-Limits zu erhöhen. Das Dashboard zeigt ihnen immer den aktuellen Verbrauch ihrer Datensätze an.

Last Updated: