Lobster Experten Fragen

ANSI ASC X12

ANSI ASC X12 steht für American National Standards Institute Accredited Standards Committee X12. Dieser Nachrichtenstandard definiert über 300 Nachrichtentypen aus allen möglichen Bereichen wie Handel, Transport und Versicherungen. Auch sonst gibt es viele Parallelen zu EDIfact, was nicht von ungefähr kommt, da X12 ein Vorläufer von EDIfact ist. Allerdings ist dieser Vorläufer immer noch in Gebrauch, gerade in den USA, aber zum Beispiel auch in Australien. Das X12-Komitee selbst führt X12 als Nationalen Standard und verweist zu internationalen Standards auf eine Seite der UN/CEFACT, die unter anderem dann auch wieder auf UN/EDIFACT verweist. Man möchte also eigentlich meinen, wir hier in Europa müssten uns mit diesem X12-Kram gar nicht herumschlagen, denn immerhin wird ja EDIfact als internationaler Standard anerkannt. So einfach ist es aber leider nicht. Wer mit Geschäftspartnern in Übersee zu tun hat, hat in der Regel auch mit X12 zu tun. Daher hier also ein paar nähere Informationen dazu:

Beispiel

Hier eine kleine X12-Datei mit einem Auftrag:

ISA*  *          *  *          *ZZ*SENDER         *ZZ*RECEIVER       *041201*1200*U*00305*000000101*1*P*^
GS*PO*SENDER*RECEIVER*041201*1200*101*X*003050
ST*850*000000101
BEG*22*NE*101**041201*123456
FOB*DF*ZZ*JMJ
DTM*037*041205
DTM*038*041215
DTM*002*041218
TD1*CNT90*1
TD5****JJ*X
TD3*40
N1*OB**92*7759
N3*111 Buyer St
N4*Conyers*GA*30094*US
N1*SE*Foo Bar Sellers
N4****US
REF*DP*101
PO1*100*1*EA***ZZ*BL47*HD*100
PID*F****Widget
PO4**1*EA
N1*CT**38*CN
N4****CN
CTT*1*100
SE*22*000000101
GE*1*101
IEA*1*000000101

Wenn Sie den Artikel zu EDIfact noch nicht gelesen haben holen Sie das am besten jetzt nach. Denn die Logik der Segment-Abfolge ist eine ganz ähnliche. Zur Verdeutlichung hier ein Teil der Struktur zum Nachrichtentyp 850 (Purchase Order):

 

X12_850_6040_PurchaseOrder X12_850_6040_LoopSPI
X12 Nachricht 850 – Puchase Order (Version 006040), dargestellt in Lobster_data Der Loop SPI der X12 Nachricht 850

Was in EDIfact die Segmentgruppen (SG1 bis SGx) sind, nennt sich bei X12 „Loops“, die Logik ist dieselbe. Einzelne Segmente können sich wiederholen. Soll eine Gruppe wiederholt werden, zeigt immer das erste Segment der Gruppe (bzw. des Loops) an, dass es wieder von vorne los geht. Auch hier gilt: Sind wir in der Struktur einmal an einer bestimmten Stelle vorbei, können wir nie wieder zurück.

Die Details

Unterschiede
In den Details unterscheidet sich X12 doch ein wenig von EDIfact:

  • Zum einen gibt es nichts, das dem UNA-Segment entspräche. Stattdessen werden die benutzten Trennzeichen anhand ihrer Position im ISA-Segment erkannt:
    • Das Zeichen direkt nach „ISA“ ist der Feldtrenner (im Beispiel ein *)
    • An Stelle 105 findet man das Trennzeichen für Werte innerhalb von Components alias Composites (hier das ^)
    • Das Zeichen, danach ist der Segmenttrenner. In unserem Fall ist also der Zeilenumbruch der Segmenttrenner.
    • Der Dezimaltrenner wird nicht vorgegeben, und auch ein Escape-Character fehlt.

    Das gesamte ISA-Segment ist wie ein Fix Record Datensatz aufgebaut.

  • Etwas, das es bei EDIfact zwar neuerdings gibt, dort aber nicht genutzt wird, ist der sogenannte „Repetition Character“. Der findet sich an Position 83. Im obigen Beispiel steht da ein U, und das bedeutet „Unused“, also ungenutzt. Wird er genutzt, kann sich ein Feld oder eine ganze Composite innerhalb eines Segments mehrfach wiederholen, wobei die einzelnen Wiederholungen eben durch dieses Zeichen getrennt sind. Allerdings muss das schon in der Nachrichtenbeschreibung so vorgegeben sein, und das ist nicht allzu häufig der Fall.
  • Subsets zu X12 gibt es nicht. Das X12-Komitee hat da den Daumen drauf und verlangt Geld für die Formatbeschreibungen jeder neuen Version.
  • Die Nachrichtentypen werden über ihre Nummer (im Beispiel 850) identifiziert. Das sprechendere „PO“ (für Purchase Order) im GS-Segment ist nicht unbedingt damit gleichzusetzen, denn dieses bezeichnet eine funktionale Gruppe, also u.U. mehrere Nachrichtentypen, die thematisch zusammengehören. Die funktionale Gruppe „SO“ enthält z.B. zehn verschiedene Nachrichtentypen (Version 006040).
  • Segment-Kennungen müssen nicht, wie bei EDIfact, drei Zeichen lang sein. Zwei reichen manchmal auch.

Gemeinsamkeiten

  • Wie gerade gelesen, gibt es also auch bei X12 Segmente, normale Felder und Composites (auch Components genannt). Und die Loops entsprechen den Segmentgruppen.
  • Auch X12 kennt diverse Steuersegmente, die Dateien einleiten bzw. Nachrichten klammern:
    • ISA entspricht in etwa einer Kombination aus UNA und UNB. Auch hier stehen unter anderem beteiligte Parteien, Datum/Uhrzeit und eben die wichtigsten Sonderzeichen. Eine Zeichensatz-Vorgabe gibt es nicht, dieser ist in X12 auf ASCII festgelegt.
    • GS und GE klammern analog zu UNG und UNE eine Gruppe thematisch zusammengehöriger Nachrichten (funktionale Gruppe). Im Beispiel oben steht im GS-Segment „PO“ für „Purchase Order“
    • ST und SE wiederum klammern eine Nachricht, wie das bei EDIfact UNH und UNT tun. Im obigen ST steht der Code 850 für den Nachrichtentyp, eben eine Purchase Order.
    • Am Ende schließt der IEA-Satz die Datei ab, wie ein UNZ bei EDIfact. Da Gruppen bei X12 Pflicht sind, steht hier die Anzahl der enthaltenen Gruppen (GS/GE).
    • Auch in den Pärchen ISA/IEA, GE/GE und ST/SE finden sich Identifikationsnummern, die die Zusammengehörigkeit sicherstellen. Und auch SE enthält einen Zähler aller Segmente dieser Nachricht, einschließlich SE. Entsprechend enthält auch GE die Anzahl Nachrichten (alias Transaction Sets) innerhalb seiner Gruppe.

Natürlich gibt es auch bei X12 eine Weiterentwicklung. Die Versionen werden hier anders benannt. So bedeutet z.B. die Versionsnummer 006040:
Version 6, Ausgabe (release) 4, Unterausgabe (subrelease) 0.
Übrigens steht am Ende des GS-Segments (und auch im ISA-Segment) unserer Beispielnachricht, dass diese zur X12-Version 003050 gehört. Also schon ein bisschen veraltet…