EDIFACTReader, Type=ORDERS, Mode=HIERARCHY --> Fehler

Hallo, ich muß .edi-Dateien einlesen und daraus Plenty-Orders machen. Wenn ich die Datei mit o.a. Step einlesen lasse, funktioniert es nur, wenn ich den Mode auf FLATTENED stelle. Wenn ich das aber tue, weiß ich nicht, wie ich das Problem mit einer unbekannten Anzahl von Positionen lösen soll - da würde ja dann jede Position mit Extraspalten ins Spreadsheet geschrieben werden. Da ich aber ja vorher nicht weiß, wieviele Spalten da kommen könnten, kann ich das Spreadsheet natürlich nicht umfassend aufbauen - ich müßte ja Extraspalten für x mögliche Artikelpositionen einbauen, aber wenn mal x+1 in der Datei stünden, würde die letzte nicht berücksichtigt. Es wäre also notwendig, das Ganzenicht als FLATTENED, sondern als HIERARCHY einzulesen. Was kann man machen?

Anmerkung: Es gibt hier zwei Arten von Order-Dateien - die eine ist vom Typ "Endkunden-Orders", die andere vopm Typ "Lager-Orders" (ich muß beide verarbeiten). Bei den "Lager-Orders" funktioniert HIERARCHY.

Ich habe mal beide Dateien angehängt und hoffe, daß ihr helfen könnt :-)


Gruß Micha


NACHTRAG: Ich habe die Lager-Orders-Datei in ergänzter Form (mehr als eine Artikelposition) in HIERARCHY eingelesen und muß leider feststellen, daß nur die letzte der Positionen eingelesen wird! D.h. die ersten vier Positionen fallen komplett durch den Rost. Datei im Anhang.

Ich sehe gerade, ich habe euch im ersten Schritt eine von mir schon bearbeitete Lager-Orders-Datei angehängt. Zur Sicherheit hier nochmal alle drei in korrekter Form.

Hallo Leute, hat jemand eine Antwort für mich?

Hallo Micha,


wir schauen uns das einmal an.



Grüße,


Christian

Hallo Micha,


schau mal bitte, ob es jetzt geht.



Beste Grüße,


Christian

Hi Christian,

das sieht schon mal klasse aus, die Positionen werden jetzt eingelesen. Ich habe an einer Stelle noch ein Problem: Das Ganze klappt jetzt für Bestellungen des Typs "Lager" mit Mode=Hierarchy. In diesem Modus werden wichtige Informationen eingelesen wie

NAD2-0@PARTY_IDENTIFIER##ORDERING_PARTY(3035) und

NAD2-0@PARTY_IDENTIFIER##BUYER(3035)

Diese sind im Modus "Flattened" nicht vorhanden (ich meine die Informationen - ich weiß, daß die Spalten da anders heißen). Das Blöde ist nun, daß Bestellungen des Typs "Endkunden" im Moment aber in einen Fehler laufen, wenn sie mit "Hierarchy" eingelesen werden sollen - das klappt nur mit "Flattened", wobei dort dann aber wie gesagt die beiden Informationen fehlen.

Ich hänge nochmal eine "Endunden"-Bestellung dran, könnt ihr mal schauen, warum die nicht mit "Hierarchy" eingelesen werden kann?


Danke und Gruß, Micha

Ich habe noch einen Nachtrag - vielleicht geht das einfacher. Ich habe mir mal den Unterschied der Verarbeitung zwischen Flattended und Hierarchy für die Lager-Orders angesehen. In der edi-Datei sind bzgl. der NAD-Node folgende Informationen enthalten:

NAD+PO+4062773000003::9'

NAD+SU+2100002000003::9'

NAD+BY+4333990000009::9'

NAD+IV+4333990000009::9'

NAD+DP+++Hellmann Fakturierlager+Wegastraße 4+Halle (Saale)++06116+DE'

Im Flattened-Modus wird vor allem die letzte Zeile eingelesen mit den Feldern:

NAD+DP+++Hellmann Fakturierlager+Wegastraße 4+Halle (Saale)++06116+DE'

==>

NAD1-0@NAD-0, Wert: DP

NAD2-0@NAD-0, Wert:

NAD3-0@NAD-0, Wert:

NAD4-0@NAD-0, Wert: Hellmann Fakturierlager

NAD5-0@NAD-0, Wert: Wegastraße 4

NAD6-0@NAD-0, Wert: Halle (Saale)

NAD7-0@NAD-0, Wert:

NAD8-0@NAD-0, Wert: 06116

NAD9-0@NAD-0, Wert: DE

Dann gibt es noch zwei weitere Felder:

NAD2-1@NAD-0, Wert:

und

NAD2-2@NAD-0, Wert: 9

Und hier scheint ein Einlesefehler vorzuliegen an der Node NAD2-0. Wenn ich mir das Ganze nämlich in Hierarchy ansehe, sieht es so aus:

NAD+DP+++Hellmann Fakturierlager+Wegastraße 4+Halle (Saale)++06116+DE'

==>

NAD2-0@PARTY_IDENTIFIER##DELIVERY_PARTY(3035)- , Wert:

NAD3-0@NAME_AND_ADDRESS_DESCRIPTION##DELIVERY_PARTY(3035)-, Wert:

NAD4-0@PARTY_NAME##DELIVERY_PARTY(3035)-, Wert: Hellmann Fakturierlager

NAD5-0@STREET_AND_NUMBER_OR_POST_OFFICE_BOX_IDENTIFIER##DELIVERY_PARTY(3035)-, Wert: Wegastraße 4

NAD6-0@CITY_NAME##DELIVERY_PARTY(3035)-, Wert: Halle (Saale)

NAD7-0@COUNTRY_SUB_ENTITY_NAME_CODE##DELIVERY_PARTY(3035)-, Wert:

NAD8-0@POSTAL_IDENTIFICATION_CODE##DELIVERY_PARTY(3035)-, Wert: 06116

NAD9-0@COUNTRY_NAME_CODE##DELIVERY_PARTY(3035)-, Wert: DE

NAD+PO+4062773000003::9'

==>

NAD2-0@PARTY_IDENTIFIER##ORDERING_PARTY(3035)--EAN_INTERNATIONAL_ARTICLE_NUMBERING_ASSOCIATION_(3055)-, Wert: 4062773000003

NAD+BY+4333990000009::9'

==>

NAD2-0@PARTY_IDENTIFIER##BUYER(3035)--EAN_INTERNATIONAL_ARTICLE_NUMBERING_ASSOCIATION_(3055)-, Wert: 4333990000009

NAD+SU+2100002000003::9'

==>

NAD2-0@PARTY_IDENTIFIER##SUPPLIER(3035)--EAN_INTERNATIONAL_ARTICLE_NUMBERING_ASSOCIATION_(3055)-, Wert: 2100002000003

NAD+IV+4333990000009::9'

==>

NAD2-0@PARTY_IDENTIFIER##INVOICEE(3035)--EAN_INTERNATIONAL_ARTICLE_NUMBERING_ASSOCIATION_(3055)-, Wert: 4333990000009

Wie man sieht, gibt es mehrere NAD2-0 Einträge. Bei Flattened wird offenbar die erste NAD2-0 eingelesen (leerer Wert) und die nächsten NAD2-0 Einträge ignoriert. Vom zweiten NAD2-0 Eintrag werden dann noch die Subnodes NAD2-1 (leer) und NAD2-2 (9) angehängt.

Hallo Micha,


zunächst einmal vielen Dank. Wir sind dankbar für alle Hinweise zu Steps, die bei uns noch in der Betaphase sind.


Zum ersten Problem: deine Datei hat auf dem Segment "IMD" 3. Feld einen 7. Bereich statt 6 definierbaren. Ich vermute hier ist im Freitext ein ":" dazwischengerutscht, der da nicht hin sollte. Dadurch gibt es hier ein Problem mit der Datei.

Danke für den Hinweis, wir werden uns hier um eine aussagekräftigere Fehlermeldung bemühen.


Bezüglich der "Name and Address" Felder:

Viele der EDIFACT Felder enthalten lediglich Qualifier für die eigentlichen Inhalte, beschreiben also lediglich den Inhalt.

Hier in diesem Fall steht die 9 für EAN. Das findet sich dann in der Kopfzeile wieder.

Im Prinzip ist das auch der Unterschied zwischen Flattened und Hierarchy.


Hierarchy beachtet sämtliche Qualifier und benennt so entsprechend die Kopfzeilen (dadurch auch die relativ langen Kopfzeilen).

Flattened ignoriert das und reicht lediglich die Spalten durchnummeriert mit der jeweiligen Position weiter.


Ich habe es gerade einmal ausprobiert und bekomme im Hierarchy Modus auf jeden Fall die korrekten Ergebnisse.


Im Flattened Modus hast du recht, da wird aktuell überschrieben.

Ich schaue mir das nochmal an und überlege mir eine Lösung.


Viele Grüße,


Christian



Hallo Christian, vielen Dank und nochmal Entschuldigung, daß ich gedrängelt habe...

Super, daß Du das mit dem IMD-Feld herausgefunden hast - das hilft schon sehr viel weiter. Ich habe das Problem schon an die Ersteller dieser Dateien weitergegeben.

Wäre super, wenn Du auch noch eine Lösung für Flattened finden würdest - kann man hier nicht einfach die Daten/ggf. Unterstrukturen von NAD+PO, NAD+SU, NAD+BY, NAD+IV und NAD+DP gesondert einlesen?


Gruß Micha