none
how to create new schemas for EDI transformations?

    Frage

  • Our current job is to create a BizTalk application which can handle EDIG@S 4.0, NOMINT and NOMRES. This version is rather new, so there is no default schema in the default EDIFACT schemas delivered with BizTalk. I also couldn't find anything on how to create my own working schema for EDIFACT. How would I go on making a new XSD schema for EDIFACT transformations?
    Mittwoch, 31. August 2011 06:06

Antworten

  • Hallo zusammen,
     
    Für den Aufbau eines neuen EDIFACT Dokumentformats würde ich Dir empfehlen, auf ein bestehendes Format (z. B. INVOIC o. ä.) zurückzugreifen und dieses dann anzupassen.
     
    Alle DTM Typen sind grundsätzlich von der Struktur equivalent, die Nummerierung wird vornehmlich zur Trennung genutzt.
     
    Die LOOPs haben die Aufgabe, die Struktur der EDI Dokumente abzubilden. Vereinfacht gesagt hat man häufig Sequenzen von Segmemten:
     
    LIN
    DTM
    DTM
    RFF
    LIN
    DTM
    RFF
    RFF
     
    Hier wird impliziert, dass die einer LIN folgenden DTM und RFF Segmente zu der LINE gehören. Daher das Loop Konstrukt, welches das alles auf der Ebene zusammenbindet.
     
    Grüße
     
    Jörg Fischer
     
    "DanielSchmid_ITVT" schrieb im Newsbeitrag news:d990df12-12f8-44f4-8f80-560c385f4cae...

    Upsi, Deutsch :D danke für eure Antworten.

    Die von Oliver genannten Artikel habe ich bereits gesehen, haben allerdings auch nur die Hintergrundinfos geliefert. Mein Problem war, wie ich diese Infos in das XSD einfließen lassen kann. Folgendes hab ich jetzt gemacht:

    Zuerst habe ich versucht, das XSD komplett per Hand aufzubauen, was überhaupt nicht funktioniert hat. Ich konnte zwar die Struktur im XSD darstellen, hatte aber keinerlei Referenzen zu den EDIFACT-Typen. Also hab ich alle Felder als xs:string gelassen, und die Schema Editor Extension "EDI Schema Editor Extension" angewählt. Nach komplettem Aufbau der Struktur wurde ich aber massig mit dem Fehler "Node has an invalid depth of x (117)" überhäuft, wobei x 4, 5 oder 6 war. Die Fehlermeldung war ziemlich eindeutig, konnte ich aber nicht nachvollziehen. Ich hatte zwar tatsächlich so viele Ebenen, aber der Fehler trat nicht bei den Standard-EDI-XSDs von BTS auf, was mich dann verwirrt hat. Der Hauptunterschied zwischen meinem und den BTS-Schemas war, dass die Nodes in den BTS-Schemas einen Data Structure Type hatten, aber ich keinen in meinem Schema auswählen konnte. Da ich hierfür keine Lösung fand, hab ich einen anderen Weg eingeschlagen.

    Ich habe das ORDERS-Schema, worauf NOMINT basiert, kopiert, und so angepasst wie es für meine Struktur nötig ist. Dieses Mal konnte ich auch die Data Structure Types setzen. Jetzt klappt es auch: ich kann meine NOMINT-Nachricht mit dem modifizierten ORDERS-Schema in XML umwandeln.

    Wo ich mir noch nicht sicher bin ist, ob ich die richtigen Data Structure Types ausgewählt hab. Es gibt von vielen Typen [z.B. DTM] mehrere Data Structure Types, alle mit einer anderen Nummer am Ende. Welche ist die richtige für mich? Wann muss ich eine andere nehmen? Und wofür genau sind die *LOOP-Types, da man ja bei einem Node selbst MinOccurs und MaxOccurs festlegen kann?


    Jörg Fischer
    Mittwoch, 7. September 2011 11:06
    Moderator

Alle Antworten

  • Hi Daniel,

     

    by hand. But seriously, do you have any sources that would offer you the XSD files for this messages? Or at least an WSDL from a customer that you could use to generate them?

    I did not manage to find anything related on the net besides the specification, but maybe you have soone who already did this?

     

    BTW: This forum is German :)

     


    If you like my post or consider it as a valid answer, please use the buttons to show me - Oliver

    Microsoft Most Valuable Professional for BizTalk Server
    http://i.evolved.cc


    Montag, 5. September 2011 07:56
  • Hallo Daniel,

    da dies ein deutsches Forum ist, poste ich jetzt auch in Deutsch. Oliver hat recht, da Edig@s kein Bestandteil der BizTalk Edi Lösung ist, musst Du die Sache händisch angehen. Eine Beschreibung aller Nachrichtentypen (plus XML Schematas) findest Du hier:

    http://www.edigas.org/edigas/component/option,com_docman/Itemid,48/lang,german/

    (Downloadpaket Edig@s MIG Version 4 - All Messages - Rev 8)

    Zusätzliche umfangreiche  Beschreibungen zu den Nachrichtentypen z.B. NOMINT, gibt es auch auf der Seite der DVGW.

    http://www.dvgw-sc.de/marktpartner-gasnetz/kommunikation-edi/dvgw-nachrichtentypen.html

    Schöne Grüße

    Oliver

    Montag, 5. September 2011 11:23
  • Upsi, Deutsch :D danke für eure Antworten.

    Die von Oliver genannten Artikel habe ich bereits gesehen, haben allerdings auch nur die Hintergrundinfos geliefert. Mein Problem war, wie ich diese Infos in das XSD einfließen lassen kann. Folgendes hab ich jetzt gemacht:

    Zuerst habe ich versucht, das XSD komplett per Hand aufzubauen, was überhaupt nicht funktioniert hat. Ich konnte zwar die Struktur im XSD darstellen, hatte aber keinerlei Referenzen zu den EDIFACT-Typen. Also hab ich alle Felder als xs:string gelassen, und die Schema Editor Extension "EDI Schema Editor Extension" angewählt. Nach komplettem Aufbau der Struktur wurde ich aber massig mit dem Fehler "Node has an invalid depth of x (117)" überhäuft, wobei x 4, 5 oder 6 war. Die Fehlermeldung war ziemlich eindeutig, konnte ich aber nicht nachvollziehen. Ich hatte zwar tatsächlich so viele Ebenen, aber der Fehler trat nicht bei den Standard-EDI-XSDs von BTS auf, was mich dann verwirrt hat. Der Hauptunterschied zwischen meinem und den BTS-Schemas war, dass die Nodes in den BTS-Schemas einen Data Structure Type hatten, aber ich keinen in meinem Schema auswählen konnte. Da ich hierfür keine Lösung fand, hab ich einen anderen Weg eingeschlagen.

    Ich habe das ORDERS-Schema, worauf NOMINT basiert, kopiert, und so angepasst wie es für meine Struktur nötig ist. Dieses Mal konnte ich auch die Data Structure Types setzen. Jetzt klappt es auch: ich kann meine NOMINT-Nachricht mit dem modifizierten ORDERS-Schema in XML umwandeln.

    Wo ich mir noch nicht sicher bin ist, ob ich die richtigen Data Structure Types ausgewählt hab. Es gibt von vielen Typen [z.B. DTM] mehrere Data Structure Types, alle mit einer anderen Nummer am Ende. Welche ist die richtige für mich? Wann muss ich eine andere nehmen? Und wofür genau sind die *LOOP-Types, da man ja bei einem Node selbst MinOccurs und MaxOccurs festlegen kann?

    Dienstag, 6. September 2011 08:43
  • Hallo zusammen,
     
    Für den Aufbau eines neuen EDIFACT Dokumentformats würde ich Dir empfehlen, auf ein bestehendes Format (z. B. INVOIC o. ä.) zurückzugreifen und dieses dann anzupassen.
     
    Alle DTM Typen sind grundsätzlich von der Struktur equivalent, die Nummerierung wird vornehmlich zur Trennung genutzt.
     
    Die LOOPs haben die Aufgabe, die Struktur der EDI Dokumente abzubilden. Vereinfacht gesagt hat man häufig Sequenzen von Segmemten:
     
    LIN
    DTM
    DTM
    RFF
    LIN
    DTM
    RFF
    RFF
     
    Hier wird impliziert, dass die einer LIN folgenden DTM und RFF Segmente zu der LINE gehören. Daher das Loop Konstrukt, welches das alles auf der Ebene zusammenbindet.
     
    Grüße
     
    Jörg Fischer
     
    "DanielSchmid_ITVT" schrieb im Newsbeitrag news:d990df12-12f8-44f4-8f80-560c385f4cae...

    Upsi, Deutsch :D danke für eure Antworten.

    Die von Oliver genannten Artikel habe ich bereits gesehen, haben allerdings auch nur die Hintergrundinfos geliefert. Mein Problem war, wie ich diese Infos in das XSD einfließen lassen kann. Folgendes hab ich jetzt gemacht:

    Zuerst habe ich versucht, das XSD komplett per Hand aufzubauen, was überhaupt nicht funktioniert hat. Ich konnte zwar die Struktur im XSD darstellen, hatte aber keinerlei Referenzen zu den EDIFACT-Typen. Also hab ich alle Felder als xs:string gelassen, und die Schema Editor Extension "EDI Schema Editor Extension" angewählt. Nach komplettem Aufbau der Struktur wurde ich aber massig mit dem Fehler "Node has an invalid depth of x (117)" überhäuft, wobei x 4, 5 oder 6 war. Die Fehlermeldung war ziemlich eindeutig, konnte ich aber nicht nachvollziehen. Ich hatte zwar tatsächlich so viele Ebenen, aber der Fehler trat nicht bei den Standard-EDI-XSDs von BTS auf, was mich dann verwirrt hat. Der Hauptunterschied zwischen meinem und den BTS-Schemas war, dass die Nodes in den BTS-Schemas einen Data Structure Type hatten, aber ich keinen in meinem Schema auswählen konnte. Da ich hierfür keine Lösung fand, hab ich einen anderen Weg eingeschlagen.

    Ich habe das ORDERS-Schema, worauf NOMINT basiert, kopiert, und so angepasst wie es für meine Struktur nötig ist. Dieses Mal konnte ich auch die Data Structure Types setzen. Jetzt klappt es auch: ich kann meine NOMINT-Nachricht mit dem modifizierten ORDERS-Schema in XML umwandeln.

    Wo ich mir noch nicht sicher bin ist, ob ich die richtigen Data Structure Types ausgewählt hab. Es gibt von vielen Typen [z.B. DTM] mehrere Data Structure Types, alle mit einer anderen Nummer am Ende. Welche ist die richtige für mich? Wann muss ich eine andere nehmen? Und wofür genau sind die *LOOP-Types, da man ja bei einem Node selbst MinOccurs und MaxOccurs festlegen kann?


    Jörg Fischer
    Mittwoch, 7. September 2011 11:06
    Moderator
  • Danke Jörg, das hat mir sehr weitergeholfen.
    Mittwoch, 7. September 2011 12:54