United Nations/Electronic Data Interchange For Administration, Commerce and Transport (UN / EDIFACT) – międzynarodowa norma dotycząca elektronicznej wymiany danych, opracowana w ramach Organizacji Narodów Zjednoczonych. Prace w zakresie utrzymania i dalszego rozwoju tego standardu są dokonywane przez UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) w ramach Komisji Gospodarczej ONZ dla Europy. W 1987 roku EDIFACT został przyjęty przez Międzynarodową Organizację Normalizacyjną (ISO) jako norma ISO 9735.
Norma EDIFACT uwzględnia:
System EDIFACT umożliwia sporządzenie standardowych form dla każdej z przesyłanych informacji, tak aby każdy użytkownik mógł ją odebrać w standardzie zgodnym z jego systemem informatycznym. Wykorzystuje zespół formatów powszechnie wykorzystywanych do elektronicznej komunikacji pomiędzy przedsiębiorstwami, m.in. do zlecania zakupów, dokonywania przelewów elektronicznych środków finansowych czy też dostarczania informacji klientom[2].
Komunikat EDIFACT ma budowę hierarchiczną, w którym najwyższy poziom jest nazywany z angielska „interchange” (zbiór przesyłanych dokumentów), a niższe poziomy mogą zawierać jeden lub wiele dokumentów, składających się z kolei z segmentów, komponentów (ang. „composites”) i elementów danych (ang. „data elements”)[3]. Dany segment (lub grupa segmentów) może być obowiązkowy (M – mandatory) lub warunkowy (C – conditional). == Pojedynczy „interchange” składa się z segmentu UNA (definicja znaków-separatorów, rozdzielających elementy składowe komunikatów) oraz hierarchicznych segmentów serwisowych występujących w parach na kolejnych poziomach zagłębienia (tzw. „koperty”): UNB-UNZ, UNG-UNE, UNH-UNT w podanej niżej kolejności:
Znaki serwisowe UNA Warunkowy _____ Nagłówek Interchange UNB Obowiązkowy | ___ Nagłówek grupy funkcyjnej UNG Warunkowy | | _ Nagłówek komunikatu UNH Obowiązkowy | | | Ogólne segmenty z danymi Zależnie od rodzaju komunikatu | | |_ Zamknięcie komunikatu UNT Obowiązkowy | |___ Zamknięcie grupy funkcyjnej UNE Warunkowy |_____ Zamknięcie Interchange UNZ Obowiązkowy
W uzupełnieniu do powyższych segmentów, czasami może być użyty dodatkowy segment serwisowy UNS, rozdzielający komunikat na sekcje. Pomiędzy segmentami serwisowymi UNH i UNT znajduje się właściwy komunikat, zbudowany z ogólnych segmentów zawierających dane biznesowe, takich jak np.:
Pojedynczy segment składa się z trzyliterowego symbolu, komponentów rozdzielonych separatorami komponentów (domyślnie znak plus "+"), elementów danych rozdzielonych separatorami danych (domyślnie znak dwukropka ":") oraz terminatora segmentu (domyślnie znak apostrofu "'"). Przykładowo, w celu zakodowania daty 24 kwietnia 2019 roku jako daty dokumentu, należy użyć segmentu[4]:
DTM+137:20190424:102'
gdzie:
Poniżej jest zamieszczony przykład komunikatu EDIFACT ORDERS będącego zamówieniem towaru, zawierające m.in.: numer i data zamówienia, identyfikator kupującego i miejsca dostawy, data najwcześniejszej i najpóźniejszej dostawy, dwa wiersze zamówienia z ilościami i cenami zakupu, wartość całego zamówienia:
UNA:+.? ' UNB+UNOC:3+8888888888888:14+9999999999999:14+190424:1745+212938' UNH+1+ORDERS:D:96A:UN:EAN008' BGM+220+112233+9' DTM+137:20190608:102' DTM+63:20190715:102' DTM+64:20190718:102' NAD+BY+8888888888888::9' NAD+DP+7777777777777::9' CUX+2:EUR:9' LIN+1++6666666666666:EN' QTY+21:10:PCE' PRI+AAA:299.00' LIN+2++5555555555555:EN' QTY+21:15:PCE' PRI+AAA:59.00' UNS+S' MOA+86:3875.00' UNT+17+1' UNZ+1+212938'
Kolejny przykład to komunikat EDIFACT będący odpowiedzią na zapytanie o wolne miejsca w locie na trasie FRA-JFK-MIA:
UNA:+.? ' UNB+IATB:1+6XPPC:ZZ+LHPPC:ZZ+940101:0950+1' UNH+1+PAORES:93:1:IA' MSG+1:45' IFT+3+XYZCOMPANY AVAILABILITY' ERC+A7V:1:AMD' IFT+3+NO MORE FLIGHTS' ODI' TVL+240493:1000::1220+FRA+JFK+DL+400+C' PDI++C:3+Y::3+F::1' APD+74C:0:::6++++++6X' TVL+240493:1740::2030+JFK+MIA+DL+081+C' PDI++C:4' APD+EM2:0:1630::6+++++++DA' UNT+13+1' UNZ+1+1'