Visit our main site www.danga.biz

Friday, June 13, 2008

Beknopte beschrijving van de UN/EDIFACT berichtstructuur

Het uitbreiden van Open Source gereedschappen met functionaliteit voor het definiëren en uitvoeren van berichttransformaties van EDIFACT naar andere standaarden en omgekeerd vereist een goed begrip van de UN/EDIFACT standaard.

Ik zal hierna beknopt de UN/EDIFACT Standaaard proberen uit te leggen. Achtereenvolgens zullen de volgende onderwerpen aan bod komen:
- belangrijke karaktertekens
- de verschillende structuurelementen
- een beschrijving van de structuur
- de positiebepaling, status en herhalende factor van structuurelementen
- de compressieregels

enkele belangrijke karaktertekens
- Segment einde teken = apostrophe '

- Segment tag en data element separator = plus sign +

- Component data element separator = colon :

- Release character = question mark ? herstelt de betekenis van het daaropvolgend teken


Voorbeeld: 10?+10=20 betekent 10+10=20

de structuurelementen
De structuur van een EDIFACT bericht is vastomlijnd en bestaat uit een aantal verplichte en optionele elementen. De belangrijkste bouwsteen van een EDIFACT bericht is het segment en de structuur waaraan een bericht moet voldoen is daarom vastgelegd in segment tabellen. Deze tabellen beschrijven welke segmenten in een bericht voorkomen en in welke volgorde.

Een eenvoudig voorbeeld van zo'n segment tabel ziet er als volgt uit:

Segmenten die bij elkaar horen kunnen worden gegroepeerd in een segment groep. Een segment groep bevat altijd een trigger segment en ten minste één of meer segmenten of segment groepen. Het trigger segment is een verplicht segment en moet eenmaal voorkomen. Het trigger segment is bovendien het eerste segment in de groep. Een segment wordt eenduidig geïdentificeerd door een segment tag en de positie in een bericht.

In bovenstaand voorbeeld is het segment met de segment tag RFF een trigger segment voor de segment groep 1 en eveneens voor de segment groep 3.

Een segment is een geordende verzameling van functioneel bij elkaar horende stand-alone of composite data elementen. Het segment BGM, zie voorbeeld hieronder, bestaat uit twee composite data elementen en twee stand-alone data elementen. Een composite data element is een samengesteld data element en bestaat uit een opeenvolging van data elementen.

beschrijving van de structuur
De structuur van een EDIFACT bericht voorziet in drie niveau's of group levels. Deze niveau's worden ook weleens enveloppes genoemd. Het begin en einde van een enveloppe wordt aangegeven door een service segment. Service segmenten zijn segmenten waarvan de segment tag start met de letters UN.

De drie niveau's waaruit een EDIFACT structuur kan worden opgebouwd zijn:
- Interchange Envelope (verplicht)
- Functional Group Envelope (optioneel)
- Message Envelope (verplicht)

De Interchange Envelope bestaat uit de segmenten UNA, UNB en UNZ. Het segment UNA Service String Advice is een optioneel segment en voorziet in de mogelijkheid om het gebruik van scheidingstekens die afwijken van de standaard tekenset te definiëren.

Het segment UNB Interchange Header identificeert de afzender en ontvanger van een bericht. Al de gegevens binnen de Interchange Envelope zijn bestemd voor eenzelfde ontvanger. Het segment UNZ Interchange Header sluit uiteindelijk de enveloppe.

Het elektronische document, het eigenlijke EDI bericht (Message), bestaat uit de segmenten UNH tot/met UNT. Een bericht begint altijd met een Message Header, het UNH segment, en eindigt met een Message Trailer, het UNT segment.

Het Segment UNH bevat het Composite Data Element UNH-S009 Message Identifier waarin het berichttype, het versienummer en de instantie of organisatie verantwoordelijk voor de berichtspecificatie is opgenomen. Het Data Element 0065 Message Type bevat het berichttype. Het berichttype wordt geïdentificeerd door een zes-letterwoord.

Verder kan het service segment UNS Section Separator eveneens voorkomen in het berichtdeel om een duidelijke scheiding tussen de header, detail en summary secties te identificeren. Voor de scheiding tussen header en detail secties bevat het segment de waarde D en tussen de detail en summary secties de waarde S.

De Functional Group Envelope wordt gedefinieerd door de segmenten UNG en UNE. Het gebruik van de functional group envelope zou verplicht zijn voor de communicatie van en naar Noord Amerika. Deze groep maakt het mogelijk om verschillende berichten van hetzelfde type op te nemen en te groeperen in een EDIFACT bericht maar wordt niet of nauwelijks gebruikt. Er kunnen meerdere functionele groepen worden opgenomen met elk een verzameling berichten van hetzelfde type.

positiebepaling, status en herhalende factor
Binnen de structuur van een EDIFACT bericht hebben zowel segment groepen, segmenten, compostie data elementen als data elementen een vaste positie weergeven door een positienummer. De positie van segmenten en segment groepen in een bericht kan per berichttype verschillen.

Via het veld Status (S) wordt aangegeven welke onderdelen in de structuur verplicht (Mandatory) of optioneel (Conditional) zijn. Als een segment verplicht is dan moet het segment minimaal eenmaal voorkomen.

Via het veld Repetition (R) wordt aangegeven hoe vaak een onderdeel in de structuur maximaal mag voorkomen of herhaald worden.

Een Data Element wordt als aanwezig beschouwd van zodra het data element een waarde bevat bestaande uit 1 karakter. Een composite data element is aanwezig als ten minste één van de data elementen beschikbaar is. Een segment is aanwezig wanneer de segment tag aanwezig is en een segment groep is aanwezig als het trigger segment aanwezig is.

compressieregels
Aangezien EDIFACT is ontstaan in het tijdperk dat bandbreedte een kostbaar goed was zijn een aantal compressieregels gedefinieerd die ervoor moeten zorgen dat berichten zo compact mogelijk worden opgesteld.

Deze compressieregels maken het werken met EDIFACT berichten complex zoals u dadelijk zult merken.

* uitsluiting van optionele segmenten door weglating
Optionele segmenten die geen waarde krijgen moeten volledig achterwege gelaten worden.

* uitsluiting van optionele data elementen binnen een segment door weglating (omission)
Als een optioneel data element geen waarde krijgt en gevolgd wordt door een ander data element dan moet de positie van het optioneel data element wordt aangegeven door het data element scheidingsteken.

* uitsluiting van optionele data elementen binnen een segment door inkorting (truncation)
Als één of meer optionele data elementen geen waarde krijgen en voorkomen aan het eind van een segment dan mogen deze achterwege gelaten worden. Het segment mag worden afgesloten met het segment einde teken - de segment terminator. Opeenvolgende achterliggende data element scheidingtekens moeten niet gecommuniceerd worden.

De laatste twee data elementen uit voorgaande voorbeeld worden weggelaten omdat deze geen waarde hebben gekregen.

In principe gelden de bovenstaande twee regels eveneens voor data elementen in een composite data element met dien verstande dat een ander scheidingsteken gebruikt wordt.

* uitsluiting van optionele data elementen binnen een composite data element door weglating (omission)
* uitsluiting van optionele data elementen binnen een composite data element door inkorting (truncation)

Het volledige overzicht van de UN/EDIFACT Syntax Regels kunt u terugvinden op de website van de UN/ECE onder de webpagina UN/EDIFACT Syntax Rules.

Tags van Technorati:

Last update: 26-11-2011

No comments:

Post a Comment