Interchange
Interchange это структурированный (согласно правилам, определяемым стандартом X12) набор данных, которым обмениваются партнеры по (электронному) документообороту.
Interchange – это больше, чем просто документ, скорее это пакет групп документов (хотя interchange может содержать всего одну группу с одним документом).
В дальнейшем я буду использовать термин «EDI документ» если речь идет об Interchange и просто «документ» если речь идет об отдельном документе (transaction set) из этого Interchange.
Можно изобразить структуру Interchange таким образом (позже мы разберем составляющие части и структуру более подробно):
рис 1.
Interchange начинается сегментом ISA и заканчивается сегментом IEA (ISA/IEA Envelope). ISA сегмент используется в том числе для маршрутизации документа между партнерами, участвующими в документообороте.
X12 определяет каждый EDI документ как набор сегментов и элементов, которые определяют этот документ, утверждает порядок следования сегментов в документе, порядок следования элементов в сегменте и отношения между сегментами и/или элементами.
В X12 каждому специфичному документу, например инвойсу (invoice), ордеру заказа (PO, purchase order) соответствует специальное имя – трехзначный номер-идентификатор. Например, invoice это 880, PO – 850, Ship Notice/Manifest – 856 и т.д. С полным набором можно ознакомиться, например, по адресу
Как выглядит EDI документ (пример):
ISA*00* *00* *ZZ*A1STORES *ZZ*LEXINGTON *020115*0900*U*00400*000000005*0*T*>~ GS*PO*A1STORES*LEXINGTON*20020110*0900*5*X*004010~ ST*850*50001~ BEG*00*SA*ASNTESTORD**20060615~ PER*BD*DON SMITH~ PER*DC**TE*(123) 456-7890~ FOB*PP~ DTM*002*20060625~ DTM*010*20060618~ N1*ST*A1 STORES*93*0655~ N3*142 WAGON DRIVE~ N4*MIDDLETOWN*AR*72222~ N1*BT*A1 STORES*93*0655~ N3*75 CROSS ROAD~ N4*MIDDLETOWN*AR*72222~ PO1*001002003*10*EA*15**BP*123456411~ PID*A****ADIDAS BLUE T-SHIRT~ ITA*A***CC***1000~ PO1*002003004*20*EA*20**BP*123456817~ PID*A****NIKE RED T-SHIRT~ ITA*A***CC***1500~ PO1*003004005*10*EA*10**BP*123456908~ PID*A****PUMA WHITE T-SHIRT~ ITA*A***CC***1200~ PO1*004005006*10*EA*15**BP*123456321~ PID*A****REEBOK T-SHIRT~ ITA*C***CB***1400~ PO1*005006007*10*EA*20**BP*123456287~ PID*A****UMBRO UEFA CUP T-SHIRT~ ITA*A***CC***1600~ PO1*006007008*20*EA*1**BP*123456413~ PID*A****DEMIX BLUE T-SHIRT~ ITA*A***CC***1800~ CTT*6~ SE*33*50001~ GE*1*5~ IEA*1*000000005~
Следует отметить, что в данном примере переносы строк между сегментами поставлены специально, чтобы можно было легче "увидеть" структуру данных.
На самом деле, переносы строк не используются (либо игнорируются) и данный EDI документ в оригинале должен был бы выглядять так, в виде "одной строки":
ISA*00**00* *ZZ*A1STORES *ZZ*LEXINGTON 020115*0900*U*00400*000000005*0*T*>~GS*PO*A1STORES*LEXINGTON*20020110*0900*5*X*004010~ST*850*50001~BEG*00*SA*ASNTESTORD**20060615~PER*BD*DON SMITH~PER*DC**TE*(123) 456-7890~FOB*PP~DTM*002*20060625~DTM*010*20060618~N1*ST*A1 STORES*93*0655~N3*142 WAGON DRIVE~N4*MIDDLETOWN*AR*72222~N1*BT*A1 STORES*93*0655~N3*75 CROSS ROAD~N4*MIDDLETOWN*AR*72222~PO1*001002003*10*EA*15**BP*123456411~PID*A****ADIDAS BLUE T-SHIRT~ITA*A***CC***1000~PO1*002003004*20*EA*20**BP*123456817~PID*A****NIKE RED T-SHIRT~ITA*A***CC***1500~PO1*003004005*10*EA*10**BP*123456908~PID*A****PUMA WHITE T-SHIRT~ITA*A***CC***1200~PO1*004005006*10*EA*15**BP*123456321~PID*A****REEBOK T-SHIRT~ITA*C***CB***1400~PO1*005006007*10*EA*20**BP*123456287~PID*A****UMBRO UEFA CUP T-SHIRT~ITA*A***CC***1600~PO1*006007008*20*EA*1**BP*123456413~PID*A****DEMIX BLUE T-SHIRT~ITA*A***CC***1800~CTT*6~SE*33*50001~GE*1*5~IEA*1*000000005~
Однако в дальнейшем для удобства я буду отделять сегменты друг от друга переносом строки.
Вернемся к примеру EDI документа. По сегменту GS, который идет вторым, можно определить, что это EDI документ стандарта X12 (X), версия 4010 (004010). По сегменту ST можно сказать, что это 850 документ, или Purchase Order (ордер заказа). По остальному содержанию можно определить, что речь идет о заказе футболок различных фирм, узнать их цену и количество. О том, как читать документы будет рассказано дальше, но пока вы можете сами попытаться «понять» данный пример.