Import aus fremden XML-Strukturen (xpath2xml)
Import aus XML
Beschreibung des Befehl: File-Type: XML to XML using configured database columns
Dieser Befehl kann genutzt werden, um Daten aus einer XML-Datei in mehrdimensionale Datenstrukturen zu importieren. Zu diesem Zweck ist es notwendig die Quell-Datenstruktur über einen sogenannten XPath zu den Tabellen/Feldern in brandbox zuzuordnen. Dazu bearbeiten Sie das jeweilige Importprofil und wählen anschließend in der Liste der Kindverknüpfungen Datenbankfelder.
Beispieldatei
<?xml version="1.0" encoding="ISO-8859-1"?>
<ZMATMAS05>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<MANDT>100</MANDT>
<MSGFN>005</MSGFN>
<MATNR>000000000000100000</MATNR>
</EDI_DC40>
</IDOC>
</ZMATMAS05>
Beispiel-Konfiguration
Die nachfolgende Beispiel-Konfiguration erzeugt für jeden Knoten in der XML-Datei einen Artikel, der die SKU aus dem XML-Knoten MATNR enthält.
Feld | Konfiguration |
---|---|
XPath | ZMATMAS05/IDOC/E1MARAM/MATNR |
Datenbankfeld | Artikel ~ SKU |
Primärschlüssel | ja |
Kollation identifizieren | nein |
Primärschlüssel
Wird das Datenbankfeld als Primärschlüssel verwendet, werden Datensätze anhand dieser Spalte identifiziert und (falls vorhanden) aktualisiert.
Kollation identifizieren
Wird das Datenbankfeld mit Kollation identifizieren ausgezeichnet, wird eine erweiterte Konfiguration im Import-Profil notwendig. Diese Konfiguration ermöglicht es Daten mehrsprachig zu importieren. Öffnen Sie das Importprofil und pflegen in der Konfiguration bspw. nachfolgende Map. Dabei enthält der Schlüssel der collationMap den Wert aus der XML-Datei, während der Wert das locale (sprache_LAND) enthält.
{
"collationMap": {
"D": "de_DE",
"F": "fr_FR",
"E": "en_GB"
}
}
Fremdschlüssel nutzen
Um Referenzen zwischen unterschiedlichen Tabellen herstellen zu können wird häufig das Feld Auswahl eines Datensatzes in einer fremden Tabelle (Fremdschlüssel) verwendet. Die dort verknüpften Referenzen können wie folgt hergestellt werden:
Der Fremdschlüssel-Feld enthält die Information zur verknüpften Tabelle und einer Column. Siehe oben verknüpfte Dokumentation
Diese beiden Informationen werden genutzt, um den Datensatz während des Imports zu identifizieren
Der Wert auf dem Knoten in XML muss dem Wert aus der Column des referenzierten Repositories entsprechen
Zusätzlich muss der gleiche Knoten für das fremde Repository mit dieser Column konfiguriert werden
Beispiel-Konfiguration
XPath | Datenbankfeld |
---|---|
ZMATMAS05/IDOC/E1MARAM/MATKL | Repository: Publikation |
ZMATMAS05/IDOC/E1MARAM/MATKL | Repository: Artikel |
Um Referenzen auflösen zu können muss in der Konfiguration des Feld-Mapping die Referenz zugeordnet werden.
Beispiel
{
"reference": {
"repository": "shopArticle",
"column": "shopArticleName"
}
}
Json-Daten importieren
Daten die in Json-Feldern organisiert sind können importiert werden, benötigen aber eine erweiterte Konfiguration.
Das Feld muss vom Doctrine-Type JsonArray sein
Es muss der Json-Key angegeben werden
Beispiel
Achtung
Der Bulk-Import ist derzeit nicht möglich, wenn JSON Felder importiert werden.
Datum konvertieren
Im XML-Knoten kann ein Datum stehen. Dessen Format kann wie folgt transformiert werden in einen Timestamp. Dabei gilt das folgende Datumsformat: https://www.php.net/manual/en/class.datetime.php
Statische Werte
Der XML-Knoten soll einen Wert setzen, der nicht im XML-Knoten vorkommt.