- •Электронный обмен документов (edi). Часть 1 Введение
- •История
- •Терминология Документ (document или transaction set)
- •Функциональная группа (Functional Group)
- •Конверт (Envelope)
- •Сегмент
- •Опциональность сегментов
- •Порядок следования сегментов
- •Повторение сегментов
- •Элемент
- •Типы данных
- •Опциональность элементов
- •Структура edi документа
- •Конверты (envelopes)
- •Header (заголовок), Details (детали) и Summary (итог)
- •Использование edi в реальном документообороте
- •Edi/xml – часть 2
Конверт (Envelope)
Чтобы нагляднее представить структуру EDI документа, можно провести аналогию между ним и обычными бумажными документами, которые запечатаны в конверты (envelopes).
Самый верхний конверт (ISA/IEA Envelope) содержит внутри себя один или более конвертов (GS/GE Envelopes), в которых содержатся непосредственно сами документы, каждый в отдельном конверте (ST/SE Envelopes).
На конверте ISA/IEA «написаны» адреса компании-получателя и компании-отправителя.
На конверте GS/GE «написан» тип документов, которые в нем находятся. В таком конверте содержатся только документы одного типа – ордера, инвойсы и т.д. Так же на этом конверте может быть «написано», в какое подразделение компании-получателя направлены конечные документы.
Наконец самые последние конверты содержат непосредственно конечные документы – например, ордера заказа номер 000000123 и 000000124.
Можно изобразить структуру EDI-документа для наглядности так:
ISA <<< «верхний» конверт GS <<< «внутренний» конверт, содержит документы одного типа ST <<< конверт с документом <документ 1> <<< непосредственно сам документ SE ... ST <документ X> SE GE ... GS ST <документ 1> SE ... ST <документ Y> SE GE IEA
Наш пример:
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~ ... CTT*6~ SE*33*50001~ GE*1*5~ IEA*1*000000005~
Сегмент
Сегмент (segment) – комбинация связанных элементов или составных данных, которые сгруппированы для предоставления полезной информации. Например, сегмент может содержать информацию о товаре, его цвете, весе, размере, объеме и т.д. Сегмент может присутствовать в документе единожды, или встречаться несколько раз.
рис 2.
В X12 на первом месте всегда идет уникальный идентификатор сегмента (tag), состоящий (как правило) из 2-3 букв/цифр.
Пример сегмента:
PO1*002003004*20*EA*20**BP*123456817~
Сегмент состоит из идентификатора (tag) и элементов, разделенных специальными символами (element separator) – в нашем примере это «звездочка» (asterisk) – «*». Заканчиваются сегменты другим символом (segment terminator) – в нашем примере тильдой «~». Следует отметить, что разделители элементов и сегментов могут отличаться от данного примера.
рис 3.
Стандарт определяет, в каком порядке идут элементы в сегменте.
В примере выше представлен сегмент стандарта X12 с именем PO1, который имеет значение Baseline Item Data (Базовые данные товара). Рассмотрим его подробнее.
В начале идет идентификатор сегмента (PO1), затем идут элементы сегмента:
-
Assigned Identificator (002003004, присвоенный идентификатор)
-
Quantity Ordered (20, количество заказанных экземпляров товара)
-
Unit/Basis Measurement Code (EA = Each, единица измерения количества товара)
-
Unit Price (20, стоимость товара)
-
элемент пропущен (!) (пропущен Basis Unit Price Code – код, идентифицирующий тип цены единицы товара)
-
Product/Service Id Qualifier (BP = Buyer's Part Number, тип идентификатора товара/услуги)
-
Product/Service Id (123456817, идентификатор товара/услуги)
Итак, данный сегмент «говорит» получателю – «в позиции 002003004 в нашем ордере заказа мы запрашиваем 20 единиц товара, который в нашей базе находится под идентификатором 123456817, по 20 долларов за единицу».