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.

Schema editieren

Um ein neues Schema manuell zu erstellen, navigieren Sie zu Datastores → Schema und nutzen dort den "Schema erstellen" Button. Hier sehen Sie ebenfalls all ihre angelegten Schemas dieses Workspaces. Schemas Übersicht

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

Schema konfigurieren

Eigenschaft
Beschreibung

Position

Die Position des Felds (beginnend bei 0). Sie haben mehrere Möglichkeiten ein Feld zu verschieben:

  • Verschieben durch Drag&Drop
  • Verschieben an den Anfang (︽) oder ans Ende (︾)
  • Manuelle Eingabe der Position

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 Mapper Step 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 Mapper Step 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 Mapper Step 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 Mapper Step eine Warnung angezeigt.
Bsp.:

Erweiterte Optionen

Zeigt die am Feld hinterlegten erweiterten Optionen an.

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

Schema - Erweiterte Einstellungen

Eigenschaft
Beschreibung
Eigenschaft
Beschreibung

Art des Inhalts

(Content Type)

Siehe Schema Konfiguration

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 Mapper Step die Hilfs-Funktionen .at(position), .equalsAll("wert") oder .contains("teilstring") nutzen.

Beispiele:

<#if colors.at(0) == "red">Meine Lieblingsfarbe ist rot</#if>

Hier wird das 1. Element aus der Liste ausgegeben.
<#if colors.contains("gre")>Grün</#if>

Hier wird jedes Element der Liste auf Teilstring geprüft. Beim ersten Treffer liefert der Test true.
<#if colors.equalsAll("green")>Grün</#if>

.equalsAll() ist eine Synesty-eigene Funktion, die MULTIPLEVALUE Spalten nach exakter Übereinstimmung durchsucht. Beim ersten Treffer liefert der Test true. Vergleichbar ist das mit der Freemarker-Funktion ?seq_contains().

.equalsAll() akzeptiert aber auch mehrere Werte (.equalsAll(wert1 [,wert2])) und liefert true nur wenn ALLE Werte in der Liste enthalten sind.

<#if colors.equalsAll("green", "red")>Grün und rot</#if>

<#if colors.equalsAll("green", "blue")>Grün und blau<#else>mindestens eins davon ist nicht enthalten</#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 Mapper Step 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>

Trennzeichen

Nur relevant wenn Typ=MULTIPLEVALUE oder MAP ist.

Pflichtfeld

Siehe Schema Konfiguration

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 Mapper Step eine Warnung angezeigt und farbig hinterlegt.
Weitere Details unter Pattern.

Das RegEx-Pattern wird inline validiert. Ungültige Pattern werden direkt angezeigt.

Erlaubte Werte und Beispiel Werte

Erlaubte Werte:

Ist der Schalter aktiviert, werden die Felder, in denen Erlaubte Werte konfiguriert sind, validiert.

Beispiel Werte:

Ist der Schalter deaktiviert, werden die Felder nicht validiert. Die hinterlegten Werte dienen nur als Beispiel und können abweichen. Das ist sinnvoll wenn dynamische Parameter gesetzt werden die einer bestimmten Form entsprechen müssen.

Einstellungen:

Hier können selbstdefinierte Wert → Label Paare hinterlegt werden.
Klicken Sie auf "Neuer Wert" um einen neues Wert → Label Paar zu definieren.

Mit erlaubten Werten, können Sie für ein Feld selbstdefinierte Werte generieren und den Feldinhalt entsprechend validieren. Sie haben alternativ auch die Möglichkeit keine Werte vorzugeben, aber zumindest einen Standardwert zu definieren. Außerdem können Beschreibungen für die einzelnen Wert-Label-Paare hinterlegt werden, die im Mapper angezeigt werden.

Die Value-Werte der Erlaubten und Beispielwerte werden überprüft um Dopplungen zu vermeiden. Doppelte Werte können dennoch weiterhin gespeichert werden. Nur Zeilen in denen der Value-Wert leer ist, werden beim Speichern automatisch entfernt.

Sind RegEx-Pattern ungültig oder gibt es Dopplungen bei den Erlaubten/Beispiel Werten, wird das bereits in der Schema-Gesamtansicht angezeigt.

Schema laden im Mapper Step

Wenn Sie im Mapper Step das Schema laden, dann wird eine Auswahl "Erlaubte Werte" oder "Beispiel Werte" angezeigt. Der Standardwert wird dabei hervorgehoben (unterstrichen).

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

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.

Schema - Validierung mit RegEx

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

Validierung im Datastore

Im Datastore werden invalide Zellen, die nicht dem Schema entsprechen rot markiert und hovert man mit der Maus über die entsprechende Zeile, kommt eine kurze Erläuterung. Das ganze wird auch in der Detailansicht angezeigt.

Validierung im Mapper Step

Auch im Mapper Step 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 Mapper Step - Ziel-Schema laden.

Ein paar Beispiele

  • Art des Inhalts (Content-Type)

    • Konfiguration im Schema Content-Type Validierung

    • Validierungsergebnis Datastore Content-Type Validierung Ergebnis im Datastore

    • Validierungsergebnis Mapper Step Content-Type Validierung Ergebnis im Mapper SpreadsheetMapper

  • Pattern (RegEx überprüfung des Werts)

    • Konfiguration im Schema
      RegEx Validierung

    • Validierungsergebnis Datastore RegEx Validierung Ergebnis im Datastore

    • Validierungsergebnis Mapper Step RegEx Validierung Ergebnis im Mapper SpreadsheetMapper

  • Elaubte Werte (Vordefinierte erlaubte Werte für den Inhalt)

    • Konfiguration im Schema Erlaubte Werte Validierung

    • Validierungsergebnis Datastore Erlaubte Werte Validierung Ergebnis im Datastore

    • Validierungsergebnis Mapper Step Erlaubte Werte Validierung Ergebnis im Mapper SpreadsheetMapper

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 Data Managements -> 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.

Neuer 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 bearbeiten

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

Datensatz-Detailansicht

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

Datastore Detailansicht anzeigen

Anschließen auf "Daten bearbeiten" um in den Editiermodus zu gelangen.

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.

Datastore Detailansicht eines Eintrags

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.

Einen Eintrag direkt in der Übersicht bearbeiten

Massen-Bearbeiten

Datastore Daten über Masseneditieren bearbeiten

Eine spezielle Funktion ist das Massen-Bearbeiten, dass unter Aktionen / Bearbeiten erklärt wird.

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.

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.

Datensätze exportieren

Datensätze als CSV-Datei herunterladen

Alle Einträge (mit sämtlichen Spalten) des Datastores können als CSV-Datei heruntergeladen werden.

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.

Backup eines Datastores

Datastore-Backup automatisieren

Ein Datastore-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.

Übersicht aller Datastore Filter

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.

Child Filter

Zeigt Datensätze abhängig davon, ob sie Child-Datensätze in einem Child-Datastore besitzen oder nicht. (Nur sichtbar bei Master-Datastores mit mindestens einem Child-Datastore)

  • Alle (keine Einschränkung)
  • Datensätze mit Children
  • Datensätze ohne Children

Child-Filter

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

Level Filter (Datensatztyp Parent/Variant)

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

  • Parents+Varianten (ungeordnet) - zeigt alle Datensätze an (ungeordnet)
  • Parents (erst Parents + Varianten) - Zeigt als oberstes den Parent, darunter die Varianten an
  • Parents (nur Parents) - zeigt nur Parent Datensätze, also der 1. Ebene
  • Varianten oder Parents ohne Varianten - zeigt nur die unterste Hierarchieebene, d.h. entweder Varianten oder Parents die keine Varianten haben.
  • Nur Varianten - 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.

  • Alle - keine Einschränkung
  • Parents mit Varianten - findet alle Datensätze, die auch Varianten haben (Varianten haben den Identifier des Parents als parent_id)
  • Parents ohne Varianten - findet alle Datensätze, die keine Varianten haben

Processing Filter

Findet Datensätze mit einem bestimmten PROCESSING-Status.

  • Alle - 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
  • PROCESS_MARK_DELETE - Datensätze die als "zum Löschen freigegeben" markiert wurden

Der Processing Status kann folgendermaßen gesetzt werden:

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

Sortierung

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

  • Erstellungsdatum
  • Aktualisierungsdatum
  • Datum der letzten Inhaltsänderung
  • Datum der Verarbeitung - nach Verarbeitungsdatum
  • Identifier - 1,2 oder 3
  • Folder
  • Tags

Datensatztyp

  • Parents+Varianten (ungeordnet)
  • Parents (erst Parents + Varianten)
  • Parents (nur Parents)
  • Varianten oder Parents ohne Varianten
  • nur Varianten

Freemarker 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.

Datums Filter

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

  • Erstellungsdatum
  • Aktualisierungsdatum
  • Datum der letzten Verarbeitung
  • Datum der letzten Inhaltsänderung - Dieses Datum wird nur aktualisiert, wenn sich wirklich eines der Felder durch ein Update verändert hat.

Tagfilter

Hier können Datensätze danach gefiltert werden, ob ausgewählte Tags gesetzt sind oder nicht.

Identifier 1, 2 & 3

Hier kann nach verschiedenen Identifiern gefiltert werden.

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.

Zeige Children

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

Daten validieren

Zeigt 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.

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.

Daten 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.

Daten löschen

Achtung

Vor dem Löschen von Datensätzen in Datastores sollte vorher ein Backup angelegt werden: Datensätze exportieren / Backup und Wiederherstellung Damit können durch Fehlkonfiguration beim Löschvorgang verlorene Datensätze wieder hergestellt werden.

Datastore Löschen - Alle Optionen

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 selbst gewählten Folders und diversen optionalen Filtern.

Datastore leeren

Entfernt alle Datensätze dieses Datastores.

Datastore - Daten löschen

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.

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.

Hierzu rufen Sie Filter → gespeicherte Suchfilter → Aktuelle Suchfilter speichern auf: Eigenen Suchfilter speichern

Und vergeben einen Namen, z.B. "Neue Bestellungen ohne PLZ"

Anschließend ist der Filter unter diesen Namen jederzeit und in jedem Datastore abrufbar: Eigenen Suchfilter auswählen

Schnellsuche Vorlagen

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

Datastore vorgefertigte Filter

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.

System Log für automatisch zu löschende Datensätze

Einträge für "Auto-Removal" müssen erst aktiviert werden

Aus Performance-Gründen werden die Einträge für das automatische Löschen standardmäßig herausgefiltert. Aktivieren Sie diese einfach durch Klick auf den Link in der Hinweisbox.

Ä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.  Datastore Änderungs-Tracking - Felder vom Tracking ausschließen

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 Data Management, 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.

Mapping Set bearbeiten

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.

Ein Mapping Set in einem Mapper Step nutzen

Das betrifft folgende Bereiche und Aktionen:

  • Datastore Import
  • Datastore Export
  • Datastore Spaltenfunktionen
  • Mapper 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.
Datensatz Limit