Skip to content

Datastores

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. 

Schema erstellen

Schema erstellen

Default

Schema Import Modus: Default

Im Default Modus wird ein neues, leeres Schema erstellt. Hier müssen alle Felder und deren Eigenschaften manuell hinzugefügt werden.

Quick-Builder

Schema Import Modus: Quick-Builder

Dieser Modus ist ähnlich dem Default Modus. Hier können die Felder aber in einem Text-Feld eingegeben werden. Außerdem kann einem Feld ein Standard-Wert zugewiesen werden.

Schema Import Modus: Quick-Builder

Schema aus CSV erstellen

In diesem Modus kann eine CSV-Tabelle angegeben werden, aus deren Spaltennamen die Felder des Schemas erstellt werden.

Schema aus JSON erstellen

Schema Import Modus: JSON

Dieser Modus erstellt ein Schema anhand einer angegebenen JSON-Datei. Dabei wird die komplexe Baum-Struktur abgeflacht (flattened). Jede neue Ebene wird durch standardmäßig einen Unterstrich (”_”) getrennt. Wird in den Key Namen ein Unterstrich erkannt, wird als Trenner automatisch ein Punkt (”.”) gesetzt. Außerdem wird anhand der Werte versucht der Content-Type (Art des Inhalts) und der Field-Type (Typ) automatisch zu ermitteln.

Die Baumstruktur wird dabei abgeflacht (Flattened).

Weiter Informationen finden Sie hier: Flatten von JSON in ein Schema

Schema aus XML erstellen

Schema Import Modus: XML

Dieser Modus erstellt ein Schema anhand einer angegebenen XML-Datei. Auch hier wird die komplexe Baum-Struktur abgeflacht (flattened). Jede neue Ebene wird durch standardmäßig einen Unterstrich (”_”) getrennt. Wird in den Key Namen ein Unterstrich erkannt, wird als Trenner automatisch ein Punkt (”.”) gesetzt. Außerdem wird anhand der Werte versucht der Content-Type (Art des Inhalts) und der Field-Type (Typ) automatisch zu ermitteln.

Die Baumstruktur wird dabei abgeflacht (Flattened).

Weiter Informationen finden Sie hier: Flatten von XML in ein Schema

Schema konfigurieren

Schema konfigurieren

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
Auflistung der möglichen Typen:

TypBeschreibung
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-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 (Punkt 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).
DATETIMEGibt 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.

    Erweiterte Optionen

    Zeigt die am Feld hinterlegten erweiterten Optionen an.

    Schema - Erweiterte Einstellungen

    Typ

    Hier kann der generelle Datentyp der Spalte eingestellt werden. Standardwert: SINGLE
    Auflistung aller möglichen Typen:

    EigenschaftBeschreibung
    SINGLEEin einfacher einzelner Wert
    MULTIPLEVALUEListe von Werten, getrennt durch ein Trennzeichen (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.
    MAPSchlüssel-Wert-Paare (z.B. color=red;size=L)
    Anwendungsbeispiele für MULTIPLEVALUE und MAP

    Im Gegensatz zu SINGLE, lassen sich die Werte eines MULTIPLEVALUE oder einer MAP einfach programmatisch auswerten.

    • MULTIPLEVALUE red,green,yellow,black
      • ${meinMULTIVALUE}.at(0)
      • ${meinMULTIVALUE}.contains("gre")
      • ${meinMULTIVALUE}.equalsAll("green")
        • .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", "blue")>Grün und blau<#else>mindestens eins davon ist nicht enthalten</#if>

    • MULTIPLEVALUE (mit Art des Inhalts = JSON) [{ "color" : "red", "size" : "L"}, { "color" : "blue", "size" : "M"}]
      Einen Spezialfall stellt die Kombination aus Feldtyp MULTIPLEVALUE und Art des Inhalts JSON dar. Wird diese Kombination im Schema ausgewählt, so werden die Schlüssel-Wert-Paare in einem Array im JSON Format erwartet. Auf Zellen dieses Typs lassen sich im Mapper Step die Hilfs-Funktionen .at(position), .equalsAll("wert") oder .contains("teilstring") nutzen.
    • MEINJSONMULTIVALUE[0].at("color") = red
    • MEINJSONMULTIVALUE[1].at("color") = blue

    • MAP color=red;size=L
      • ${meineMAP}.at("color") = red
      • ${meineMAP}.containsKey("color") = true
      • ${meineMAP}.containsKeysAll("size", "weight") = false
    Trennzeichen

    Nur relevant wenn Typ=MULTIPLEVALUE oder MAP und Field-Type nicht JSON 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. Weitere Details unter Pattern.

    Erlaubte Werte und Beispiel Werte

    Ist der Schalter aktiviert wird der Welt des Feldes validiert, andernfalls werden die hinterlegten Werte nur als Beispielwerte angesehen (das ist sinnvoll wenn dynamische Parameter gesetzt werden die einer bestimmten Form entsprechen müssen.)

    Hinterlegen Sie Ihre Werte als Wert -> Label Paare. Schema - Erlaubte Werte Außerdem können Beschreibungen für die einzelnen Wert-Label-Paare hinterlegt werden, die im Mapper angezeigt werden. Dopplungen sind im Idealfall zu vermeiden. Doppelte Werte können dennoch weiterhin gespeichert werden. Nur Zeilen in denen der Value-Wert leer ist, werden beim Speichern automatisch entfernt.

    Sie haben alternativ auch die Möglichkeit keine Werte vorzugeben und lediglich einen Standardwert zu definieren.

    Doppelte Werte können dennoch weiterhin gespeichert werden. Nur Zeilen in denen der Value-Wert leer ist, werden beim Speichern automatisch entfernt. Wenn Sie im Mapper Step das Schema laden, dann wird eine Auswahl zwischen “Erlaubte Werte” oder “Beispiel Werte” angezeigt.

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

    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|g|oz|or|lb)$
    ImageURLImageURL mit erlaubten Imageformaten (Bsp. jpg, gif und png) prüfen^([Hh][Tt][Tt][Pp][Ss]?&#058;&#092;/\/[a-zA-Z0-9_\-\.\/]+.(jpg|png|gif))$
    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+)$|^(\d+\,\d{1,2})$
    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

    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.

    Validierungsbeispiele

    • 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

    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.    

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

    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-Backup 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. 
    dynamisches Datum (Date-Expression)

    Sie haben die Möglichkeit beim auswählen des Datums über den Reiter “Expression” ein dynamisches Datum zu erzeugen. Sie haben hierbei Zugriff auf einige spezielle “Variablen”, welche im folgenden erläutert werden. Dies geschieht Anhand des Beispieldatums 15.01.2025 10:45

    • {{now}} - Aktuelles Datum => 2025-01-15 10:45

    Rundungseinheiten für {{now}} (werden direkt angehangen)

    • \y - Erster Tag des aktuellen Jahres => 2025-01-01 00:00
    • \M - Erster Tag des aktuellen Monats => 2025-01-01 00:00
    • \w - Erster Tag der aktuellen Woche => 2025-01-13 00:00
    • \d - Aktueller Tag um Mitternacht => 2025-01-01 00:00
    • \h - Aktuelle volle Stunde => 2025-01-15 10:00

    Zeitmodifikatoren können mit {{now}} verrechnet werden

    • y - Jahr
    • M - Monat
    • w - Woche
    • d - Tag
    • h - Stunde
    • m - Minute

    In dem gezeigten Beispiel wird das aktuelle Datum (15.01.2025 10:45) auf 0:00 Uhr gesetzt, ein Monat aufgerechnet, zwei Tage abgezogen und 8 Stunden hinzugerechnet. Durch den Vorschau-Button (Auge-Icon) kann man sich die aktuelle Vorschau des erzeugten Wertes anzeigen lassen. Datetimepicker-Expression

    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 werden (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. 

    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

    Datastore Löschen - Alle Optionen

    Entfernt die selektierten Datensätze.

    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:

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

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

    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

    Ä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 Paket erwerben, um die Datensatz-Limits zu erhöhen. Das Dashboard zeigt ihnen immer den aktuellen Verbrauch ihrer Datensätze an.
    Datensatz Limit