Skip to main content
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Download

zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen

Mehr
2 Jahre 3 Monate her - 2 Jahre 3 Monate her #4434 von Ulrich Anton
Hallo,

ich stehe vor folgendem Problem. Ich habe Artikelmerkmale zu einem Artikel zeilenweise in einer SQL Tabelle gespeichert, d.h. mehrere Zeilen pro Artikel.

Artikel    Merkmal   Wert
B01950  ITEMId     B01950
B01950  NOM        Mon 22
B01950  LINE1       Terra
B01950  LINE2       22 Zoll
B01950  LINE3       höhenverstellbar
B01950  QUALITY  gut
B01951  ITEMId      B01951
.....
Als XML Ausgabe brauche ich die Merkmale zusammengefasst unter der Artikelnummer : 

<Item>
<ItemId>B01950</ItemId>
<NOM>Mon 22" Terra</NOM>
<LINE1>Terra</LINE1>
<LINE2>22 Zoll</LINE2>
<LINE3>höhenverstellbar</LINE3>
<Quality>gut</Quality>
<VolumeUnit>Stk</VolumeUnit>
<BAUJAHR>2019</BAUJAHR>
<Preis>200,00</Preis>
<Preis_brutto>200</Preis_brutto>
<STEUER>17</STEUER>
<LAND>DEUTSCHLAND</LAND>
<ZUSTAND>Pixelfehler</ZUSTAND>
<ZUSTAND>Kratzer</ZUSTAND>
<ZUSTAND>Stromkabel fehlt</ZUSTAND>
</Item>
<Item>
<ItemId>B01952</ItemId>
….
Ich bekomme allerdings die Gruppierung auf ITEMId Ebene beim XML Adapter nicht hin. Vielleicht kann mir hier jemand weiterhelfen?
Letzte Änderung: 2 Jahre 3 Monate her von Ulrich Anton.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
2 Jahre 3 Monate her #4439 von FlowHeater-Team
Hallo Herr Anton,

ist machbar aber etwas aufwendiger. Das Problem ist, der XML Adapter kann Namen von XML Knoten/Nodes nicht dynamisch anhand von vorhandenen Felder der READ Seite generieren. Sie müssen dazu einmal alle möglichen Namen als Felder (Nodes) auf der WRITE Seite definieren.

Damit aber nur diejenigen Felder geschrieben werden die auch gesetzt sind, benötigen Sie pro Merkmal eine IF-THEN-ELSE Bedingung , die prüft ob das Merkmal anhand der Gruppierung gerade anliegt und nur dann den Feldinhalt setzt. Im XML Adapter müssen Sie zusätzlich die Option „Leere Felder ignorieren“ aktivieren. SO werden XML Knoten (Nodes), die keinen Inhalt haben, nicht in die XML geschrieben bzw. unterdrückt.

Bei Eindeutigen Feldern/Merkmalen ist das kein Problem. Problemtisch sind in Ihrem Fall die Merkmale „ZUSTAND“. Hierfür benötigen Sie einen .NET Script Heater , der pro Artikel anhand der Position diese durchnummeriert und dann ein temporäres eindeutiges Merkmal „ZUSTAND1“, ZUSTAND2“, etc. generiert. Das kann dann anschließend wieder über die bereits bekannte Bedingung geprüft und dem Ausgabefeld zugweisen werden.

Hinweis: Damit die Defintion funktioniert, müssen die Datensätze mit Hilfe des GroupBy Heater über die Artikelnummer gruppiert werden.

Klingt jetzt etwas kompliziert. Im Anhang habe ich Ihnen ein kleines Beispiel erstell, damit sollte es etwas einfacher sein zu verstehen.

 

 

Dateianhang:

Dateiname: dynamische...port.zip
Dateigröße:12 KB

 

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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 6 Monate her #4654 von Ulrich Anton
Hallo,

ich habe nun versucht, das Ergebnis aus "Zustand1", "Zustand2" etc. mit Append zusammenzuführen. Das funktioniert dann, wenn ich "Append" gruppiere. 
Danach werden aber die einmaligen Werte wie QUANTITY" nicht mehr geschrieben.

 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 6 Monate her #4655 von FlowHeater-Team
Hallo Herr Anton,

ich bin mir jetzt nicht Sicher was Sie durchführen möchten?

Im Ursprünglichen Beispiel haben wir ja die Felder „Zustand“ dynamisch aufgegliedert in „Zustand1“, „Zustand2“, etc., damit diese in separate XML Felder/Nodes auf der WRITE Seite ausgegeben werden können. Möchten Sie diese Felder jetzt in ein XML Feld mit einem Trennzeichen ausgeben?

Wenn ja bräuchten Sie das .NET Script eigentlich nicht mehr!

Ich habe Ihnen mal die Beispiel Definition in 2 unterschiedlichen Varianten (mit und ohne Script) beigefügt, siehe Anhang.

 

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.
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.271 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.