- Beiträge: 2
zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen
- Ulrich Anton
- Autor
- Offline
- Benutzer
Weniger
Mehr
2 Jahre 9 Monate her - 2 Jahre 9 Monate her #4434
von Ulrich Anton
zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen wurde erstellt 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?
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 9 Monate her von Ulrich Anton.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 9 Monate her #4439
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen
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.
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.
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.
- Ulrich Anton
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 2
2 Jahre 3 Wochen her #4654
von Ulrich Anton
Ulrich Anton antwortete auf zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
2 Jahre 3 Wochen her #4655
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf zeilenweise Artikelmerkmale aus SQL Abfrage in einem XML Datensatz darstellen
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.
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.287 Sekunden