Anmerkungen zur EDIFACT-Syntax

EDIFACT-Dateien bestehen aus

  • Segmenten,

  • Feldern und

  • Komponenten.

Segmente kann man sich als Zeilen vorstellen, Felder als Spalten und Komponenten als Teil einer Spalte. Ein Segment wird immer mit einer Segmentkennung begonnen und mit einem Endzeichen abgeschlossen. Beispiel: DTM+200:20060414:102'

Die Zeichenkette DTM ist die Segmentkennung, das einfache Anführungszeichen das Endzeichen. Nach einem Segment-Ende muss wieder ein neues Segment beginnen oder es dürfen keine weiteren Daten folgen.

Die Felder in einem Segment werden durch ein Metazeichen getrennt. Standardmäßig ist dies das Pluszeichen (+). Beispiel: GID+2+00000005+00000005'

Das Segment besteht aus folgenden vier Feldwerten: GID, 2, 00000005 und 00000005.

Die Komponenten eines Feldes werden durch ein Metazeichen getrennt. Standardmäßig ist dies der Doppelpunkt (:). Beispiel: UNH+IFTMIN:D:95B:UN:SUTC+1'

Das zweite Feld im Segment besteht aus den folgenden 5 Komponenten IFTMIN, D, 95B, UN und SUTC.

Die Zeichen für Segment-Ende, Feldtrenner und Komponententrenner können in einer EDIFACT-Datei definiert werden. Dazu dient das Segment UNA. Das Segment UNA ist ein Sonderfall. Es beschreibt die Zeichen, mit denen Segmente und Daten innerhalb der Segmente unterteilt bzw. maskiert werden. Dieses Segment ist optional, wird es weggelassen, gelten die Definitionen des Standards. Existiert das UNA-Segment, muss es immer am Anfang des Dokuments stehen.

Um die Größe der Dateien klein zu halten, wurden in EDIFACT folgende Komprimierungsmöglichkeiten festgelegt.

  • Leere Felder werden angegeben, indem einfach ein weiterer Feldtrenner eingefügt wird. Beispiel: GID+++00000005'

Das Segment besteht aus 4 Feldern, die Felder 2 und 3 sind leer, und werden übersprungen. Der gleiche Mechanismus wird auch bei Komponenten angewendet.

  • Leere Felder am Ende eines Segments werden angegeben, in dem das Segment-Ende nach dem letzten, nichtleeren Zeichen, angegeben wird. Beispiel: GID+2'

Das Segment besteht eigentlich aus 4 Feldern, die Felder 3 und 4 sind aber leer. Das Segment-Ende nach dem zweiten Feld gibt an, dass alle weiteren Felder des Segmentes leer sind.