Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.
  • Seite:
  • 1

THEMA: XML Quellstruktur mit mehreren Elementen

XML Quellstruktur mit mehreren Elementen 11 Monate 1 Tag her #2858

  • Scheunemann Manfred
  • Scheunemann Manfreds Avatar Autor
  • Offline
  • New Member
  • New Member
  • Beiträge: 13
Guten Tag,

ich habe folgenden Fall im XML

<ARTICLE>
<SUPPLIER_AID>0815-1543</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>Artikelbeschreibung Kurz</DESCRIPTION_SHORT>
<EAN>1234567890123</EAN>
<ARTICLE_FEATURES>
<REFERENCE_FEATURE_SYSTEM_NAME>PROFICLASS-5.0</REFERENCE_FEATURE_SYSTEM_NAME>
<REFERENCE_FEATURE_GROUP_ID>AAA334c003</REFERENCE_FEATURE_GROUP_ID>
<FEATURE>
<FNAME>AAB996f001</FNAME>
<FVALUE>AAC713v001</FVALUE>
<FDESCR>Materialzusammensetzung</FDESCR>
<FVALUE_DETAILS>Kunstfaser</FVALUE_DETAILS>
</FEATURE>
<FEATURE>
<FNAME>AAB748f001</FNAME>
<FVALUE>Wert des zweiten Features</FVALUE>
<FUNIT>g/m²</FUNIT>
<FDESCR>Materialgewicht</FDESCR>
</FEATURE>
</ARTICLE_FEATURES>
</ARTICLE>

Es ist nicht immer so, dass ein <ARTICLE> genau zwei <FEATURE> hat. Er kann zwischen Null und 100 <FEATURE> haben (theoretisch). In einer ganzen XML sind dann auch natürlich viele <ARTICLE> und nicht nur einer.

Die Ausgabe soll so sein, dass in Excel in der ersten Spalte die Information aus <SUPPLIER_AID> steht. Damit kann ich wissen, zu welchem Artikel das Feature jetzt kommt. Und in den vier Folgespalten dann <FNAME>, <FVALUE>, <FUNIT> und <FDESCR>.

Beispielausgabe:
ArtikelAttributsnummerWertEinheitAttributsbeschreibung
0815-1543AAB996f001AAC713v001Materialzusammensetzung
0815-1543AAB748f001Wert des zweiten Featuresg/m²Materialgewicht

Aktuell bekommen wir immer das <FEATURE>, das wir gemappt haben. Also bei zwei Attributen können wir das erste Mappen und bekommen dann auch im Ergebnis von jedem <ARTICLE> nur das erste Feature. Mappen wir das zweite, dann bekommen wir immer das zweite und so weiter. Aktuell behelfen wir uns, indem wir 7 Mappings haben. Also jeweils ein Mapping für das erste <FEATURE>, ein Mapping für das zweite <FEATURE> und so weiter. Die 7 Ergebnisse schmeißen wir dann zusammen und haben es. Aber ich glaube, so ist es nicht gedacht.
Was machen wir falsch?

Viele Grüße und schon mal vorab vielen Dank!

Manfred Scheunemann

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

XML Quellstruktur mit mehreren Elementen 11 Monate 1 Tag her #2860

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1215
Hallo Herr Scheunemann,

das ist machbar, aber es könnte eine Fleißarbeit werden :unsure: Das Problem ist derzeit, dass der XML Adapter noch keine dynamischen XML (Unter)Strukturen/Knoten verarbeiten kann. In Ihrem Fall die XML Knoten ARTICLE_FEATURES 0 bis theoretisch 100.

Die Artikel Knoten können problemlos verarbeitet werden. Wenn Sie nun die Features verarbeiten möchten, müssen Sie derzeit im XML Adapter auf der READ Seite so viele Features Knoten anlegen wie Sie maximal verarbeiten möchten. Beim Auslesen der XML Struktur werden aus dem ersten Artikel Record alle verfügbaren Feature Konten automatisch in der Definition angelegt.

Ich habe Ihnen im Anhang dazu mal ein Beispiel aufbauend auf Ihre XML Datei erstellt. Hier werden 2 Artikel (dynamisch) mit jeweils 3 Features (statisch) ausgelesen. Das Problem ist jetzt, dass der FlowHeater diese Struktur pro Artikel als eine Zeile bzw. Datensatz verarbeitet. Damit die einzelnen Features als separate Zeilen/Sätze exportiert werden können ist im Anschluss ein weiterer Zwischenschritt notwendig.
Hinweis: Beim Lesen der XML Daten ignoriert der FlowHeater automatisch nicht vorhandenen Feature XML Unterknoten!

Zum Vorgehen)
Im ersten Step wird mittels des XML Adapters pro Artikel eine Zeile in eine CSV Datei Exportiert. In der letzten CSV Spalte landen alle Features mit Trennzeichen getrennt. Jedes Feature wird mit dem Ternnzeichen „|“ getrennt abgelegt. Die einzelnen Werte jedes Features werden hier mit dem Trennzeichen „#“ getrennt hinterlegt.

z.B. Feature1_Name#Feature1_Value|Feature2_Name#Feature2_Value|…

Hinweis: Die Werte werden mittels mehrerer String Append Heater zu einer Spalte zusammengefasst

Im zweiten Step wird diese CSV Datei dann so aufbereitet, dass die pro Feature Record eine separate Zeile in eine CSV Datei geschrieben wird. Um das zu erreichen wird der GroupOut Heater benötigt, sowie pro Feature Wert ein .NET Script Heater mit einem speziell angepassten Skript.
Der GroupOut Heater legt im Prinzip x identische Kopien der gerade aktiven CSV Zeile an, die dann nacheinander verarbeitet werden. Hier müssen Sie genau so viele Kopien anlegen wie Feature XML Konten in der ersten Definition angegeben wurden. Der AutoID Heater zählt nun welche Kopie aktuell bearbeitet wird. Die . NET Script Heater benötigen diesen Wert um aus der CSV Spalten mit allen Features das aktuell benötigte Feature zu extrahieren und der entsprechend Spalte zuzuweisen. Im Beispiel wurden im Skript Kommentare hinzugefügt um hier evtl. Änderungen vornehmen zu können.

Dieses Vorgehen müsste so jetzt pro weiteren Feature Knoten nach dem gleichen Schema angepasst werden

PS: Das von Ihnen gepostete XML Beispiel wies Fehler auf, das habe ich im Beispiel korrigiert.


Dateianhang:

Dateiname: xml-verarbeitung.zip
Dateigröße: 7 KB
Anhang:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: von FlowHeater-Team.

XML Quellstruktur mit mehreren Elementen 1 Monat 1 Woche her #3256

  • Jesco Jakob
  • Jesco Jakobs Avatar
  • Offline
  • New Member
  • New Member
  • Beiträge: 7
Hallo Herr Stark, sie schreiben "Das Problem ist derzeit, dass der XML Adapter noch keine dynamischen XML (Unter)Strukturen/Knoten verarbeiten kann." Wird das kommen, bzw. ist das in Planung? Grüße J.Jakob

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

XML Quellstruktur mit mehreren Elementen 1 Monat 1 Woche her #3257

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1215
Hallo Herr Jakob,

die Entwicklung neuer Funktionen im XML Adapter ist stark abhängig von der der Nachfrage und wird dementsprechend auch priorisiert. Ich denke aber bis Ende des Jahres sollte das soweit sein.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

XML Quellstruktur mit mehreren Elementen 3 Wochen 1 Tag her #3267

  • Jesco Jakob
  • Jesco Jakobs Avatar
  • Offline
  • New Member
  • New Member
  • Beiträge: 7
Hallo Herr Stark, das gilt vermutlich auch für die angehängte Muster-XML? Dort soll sowohl der Bereich "Kopf", als auch "Positionen" eingelesen und nach csv übergeben werden. Mit einem Knoten funtioniert das jeweils, zusammen aber nicht (oder?) Grüße Jesco Jakob
Anhang:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

XML Quellstruktur mit mehreren Elementen 3 Wochen 11 Stunden her #3268

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1215
Hallo Herr Jakob,

nicht ganz. Dafür müsste eine Vor- oder Nachgelagerte Definition ausgeführt werden. Das würde auch jetzt bereits funktionieren.

Das Problem ist, dass XML sehr komplex werden kann und der FlowHeater Satzbezogen arbeitet. Wenn wie in Ihrem Fall die Kopf/Header Daten sich in einem eigenen Knoten befinden ist es einfacher diesen separat auszulesen.

Die oben beschriebene Umsetzung geht davon aus, dass ausgehend von einem XML Knoten alle weiteren dynamisch gelesen werden so dass ein logischer Satz generiert werden kann.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

XML Quellstruktur mit mehreren Elementen 2 Wochen 6 Tage her #3269

  • Jesco Jakob
  • Jesco Jakobs Avatar
  • Offline
  • New Member
  • New Member
  • Beiträge: 7
Guten Morgen Herr Stark,
"Wenn wie in Ihrem Fall die Kopf/Header Daten sich in einem eigenen Knoten befinden ist es einfacher diesen separat auszulesen".
Das hieße aber auch, dass diese Inhalte dann in einer separaten csv ausgegeben werden würden, richtig? Ich bräuchte aber sowohl die "Kopf-", als auch die "Postitionen" Informationen in EINER csv. Ich kann ja aber imme nur einen Knoten in der XPath Eingabezeile setzen!?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

XML Quellstruktur mit mehreren Elementen 2 Wochen 6 Tage her #3271

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1215
Hallo Herr Jakob,

Sie können sich aber in der zweiten Definition die geschriebenen CSV Daten der ersten Definition laden und ausgeben.

Wenn es sich um XML Kopf bzw. Header Informationen handelt sollte die erste CSV Datei lediglich eine Zeile enthalten. Diese laden Sie in der zweiten Definition über den File Heater und fügen den Output einem Feld hinzu. Das ist der einfachste Fall wie Sie Daten aus mehreren läufen miteinander kombinieren können. Im Anhang finden Sie ein kleines Beispiel dazu.

Oder aber hier ein Beispiel wie mehrere Datenquellen miteinander kombiniert werden können: CSV und Excel Daten über SQLite Datenbank zusammenführen

Dateianhang:

Dateiname: import-header.zip
Dateigröße: 2 KB
Anhang:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
  • Seite:
  • 1
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.118 Sekunden