ГОСТ 6.20.1-90 Электронный обмен данными в управлении, торговле и на транспорте (ЭДИФАКТ). Синтаксические правила

ГОСТ 6.20.1-90 Электронный обмен данными в управлении, торговле и на транспорте (ЭДИФАКТ). Синтаксические правила

Текст ГОСТ 6.20.1-90 Электронный обмен данными в управлении, торговле и на транспорте (ЭДИФАКТ). Синтаксические правила

35 коп. БЗ 6—80/423

ЭЛЕКТРОННЫЙ ОБМЕН ДАННЫМИ В УПРАВЛЕНИИ, ТОРГОВЛЕ И НА ТРАНСПОРТЕ (ЭДИФАКТ)

ГОСТ 6.20Л —90 (ИСО 9735—88)

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО УПРАВЛЕНИЮ КАЧЕСТВОМ ПРОДУКЦИИ Й СТАНДАРТАМ

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЭЛЕКТРОННЫЙ ОБМЕН ДАННЫМИ В УПРАВЛЕНИИ, ТОРГОВЛЕ И НА ТРАНСПОРТЕ (ЭДИФАКТ)

EDI for administration, commerce and transport (EDIFACT) Syntax rules

Дата введения 01.01.92

Настоящий стандарт устанавливает синтаксические правил? построения сообщений, используемых в обмене информацией между партнерами.

Стандарт распространяется на различные сферы народного хозяйства, в том числе применяется в управлении, внешней торговле и на транспорте.

Стандарт обязателен для предприятий, организаций и учреждений, осуществляющих обмен данными в открытых системах.

Термины, используемые в настоящем стандарте, приведены в приложении 1.

1. УРОВНИ СИНТАКСИСА

1.1. В настоящем стандарте устанавливаются синтаксические уровни А и В, функции которых идентичны, за исключением используемых наборов знаков. По мере возникновения потребностей в дополнительных синтаксических функциях могут быть определены другие уровни.

Уровень А использует набор знаков, указанный в п. 2.2.1.

Уровень В использует набор знаков, указанный в п. 2.2.2.

1.2. Служебный сегмент UNA (согласованный набор ограничителей, см. приложение 2) устанавливает набор знаков (разделители и другие служебные знаки), которые используются при обмене. Если набор используемых служебных знаков отличается от наборов знаков уровней А и В, то эти знаки должны быть установлены партнерами по обмену на многосторонней или двусторонней основе и определены в сегменте UNA.

Перепечатка воспрещена © Издательство стандартов, 1990

2. НАБОРЫ ЗНАКОВ

2.1. В передаваемой информации должны применяться \ста-новленные в настоящем разделе наборы знаков.

2.2. Для представления знаков в указанных ниже наборах должны использоваться 7-битные коды ГОСТ 27463 (ИСО 646) или соответствующие 8-битные коды ИСО 6937/2 и ГОСТ 19738 (ИСО 8859).

2.2.1. Набор знаков синтаксического уровня А содержит следующие знаки:

прописные буквы верхнего регистра латинского алфавита —А—Z цифры — 0—9

дефис или знак минуса --

левая скобка (открыть

правая скобка (закрыть

апостроф знак плюс

Знаки, предназначенные для использования в качестве:

— ’ указателя конца сегмента

--Ь указателя начала сегмента и разделителя элементов данных

— : разделителя компонентных элемен

тов данных в составном элементе данных

ПРИМЕЧАНИЕ Вопросительный знак, непосредственно предшествующий одному из следующих знаков: апостроф (’), плюс ( + ), вопросительный знак (?)—восстанавливает их обычное значение Например, 10?+10—20означает 10+10=20. Вопросительный знак в собственном значени л обозначается—??♦

Следующие знаки являются частью набора знаков уровня А, однако они не должны использоваться в передаче сообщений по телексной связи.

амперсенд (знак, обозначающий союз «и»)

точка с запятой

знак меньше, чем — <

знак больше, чем — >

2.2.2. Набор знаков синтаксического уровня В содержит следующие знаки:

прописные буквы верхнего

регистра латинского алфавита — А—Z

строчные буквы нижнего

регистра латинского алфавита — a—z

дефис или знак минуса ---

левая скобка (открыть скобку) — ( правая скобка (закрыть скобку) — ) наклонная черта апостроф знак плюс двоеточие знак равенства вопросительный знак восклицательный знак кавычки знак процента амперсенд звездочка точка с запятой знак меньше, чем знак больше, чем

разделитель информации — IS4 указателя конца сегмента разделитель информации — IS3 указателя начала сегмента и

разделителя элементов данных

разделитель информации — IS1 разделителя компонентных

ПРИМЕЧАНИЕ Данный набор знаков не предназначен для передачи сообщений по телексной связи.

3. СТРУКТУРА ОБМЕНА

3.1. Элементы данных пользователей содержатся только в информационных сегментах. Служебные сегменты содержат служебные элементы данных, которые формируют структуру протокола обмена. Содержание служебных сегментов приведено в приложении 2,

Знаки, предназначенные для использования в качестве:

Иерархическая структура обмена

Зи2, Сегмент UNA и служебные сегменты UNB — UNZ включаются в обмен в установленном порядке. В рамках одного обмена допускается передача нескольких функциональных групп или сообщений. В рамках одной функциональной группы допускается передача нескольких сообщений. Сообщение состоит из сегментов. Структура сегментов и их элементов данных описана в пп. 3.6 и 3.7.

3.3. Обмен должен иметь следующую структуру: согласованный набор ограничителей — UNA (условный);

заголовок обмена —UNB (обязательный);

заголовок функциональной группы — UNG (условный);

заголовок сообщения — L'NH (обязательный);

сегменты данных пользователя— (если требуются);

окончание сообщения —UNT (обязательный);

окончание функциональной группы — UNE (условный);

окончание обмена —UNZ (обязательный)'.

ПРИМЕЧАНИЕ Кроме перечисленных служебных сегментов, при необходимости, допускается использование служебного сегмента UNS для разделения зон сообщения

3.4. В рамках каждого обмена существует иерархическая структура, которая позволяет осуществить контроль за данными и их идентификацию. Эта структура приведена на схеме.

3.4.1. СОЕДИНЕНИЕ содержит один или несколько обменов* Технические протоколы, обслуживающие запуск,, поддержание и окончание связи, а также другие операции, не являются предметом рассмотрения настоящего стандарта.

3.4.2. ОБМЕН включает:

служебный сегмент UNA — согласованный набор ограничителей, который, если используется, определяет используемые в обмене синтаксические разделители и другие контрольные знаки;

служебный сегмент UNB — заголовок обмена; функциональные группы, если они используются, или одно или несколько сообщений; служебный сегмент UNZ — окончание обмена.

3.4.3. ФУНКЦИОНАЛЬНАЯ ГРУППА включает: служебный сегмент UNG — заголовок функциональной группы;

одно или несколько сообщений одного и того же тнгта; служебный сегмент UNE — окончание функциональной группы.

3.4.4. СООБЩЕНИЕ включает:

служебный сегмент UNH — заголовок сообщения; один или несколько сегментов данных пользователя; служебный сегмент UNT — окончание сообщения.

3.4.5. СЕГМЕНТ ДАННЫХ ПОЛЬЗОВАТЕЛЯ включает: идентификатор (метку) сегмента;

простые элементы данных или

составные элементы данных в зависимости от использования.

3.1.6. ИДЕНТИФИКАТОР (МЕТКА) СЕГМЕНТА содержит: код сегмента, если он указывается;

значение (я) повторения и вложения.

3.4.7. ПРОСТОЙ ЭЛЕМЕНТ ДАННЫХ содержит значение одного элемента данных.

3.4.8. СОСТАВНОЙ ЭЛЕМЕНТ ДАННЫХ содержит значения двух или более простых взаимосвязанных элементов данных, которые называются компонентными элементами данных.

3.4.9. Ниже приводятся примеры, описывающие обмен в виде последовательности сегментов:

а) функциональная группа включает только одно сообщение:

UNA UNB UNG UNH . . . Сегменты данных пользователя

б) передача одного сообщения без функциональной группы:

UNA UNB UNH . . . Сегменты данных пользователя

в) передача одного сообщения без функциональной группы и без сигмента UNA:

UNB UNH . Сегменты данных пользователя . LNT UNZ

3.5. Пример, описывающий структуру сообщения, последовательность сегментов и групп сегментов в сообщении в соответствии с настоящими синтаксическими правилами, приведен в приложении 3.

3.6. Каждый сегмент данных пользователя должен иметь следующую структуру

идентификатор (метку) сегмента, который является обязательным и состоит из:

кода сегмента, являющегося обязательным, разделителя компонентных элементов данных, являющегося условным,

указания повторения или вложения, являющегося ус*

разделитель элементов данных, являющийся обязательным;

простые или составные элементы данных;

знак окончания сегмента, являющийся обязательным.

3.7. Элемент данных в рамках сегмента данных пользователя должен иметь следующую структуру:

простой элемент данных или

составной элемент данных, обязательный или условный в зависимости от указаний в соответствующем справочнике сегментов и включающий:

простые взаимосвязанные (компонентные) элементы данных, разделители компонентных элементов данных, являющиеся обязательными (при ограничении, указанном в примечании).

ПРИМЕЧАНИЕ Разделитель компонентного элемента данных не должен ставиться после последнего простого элемента данных, входящего в составной элемент данных Разделитель элемента данных не должен ставиться после последнего элемента данных в сегменте

4. УПЛОТНЕНИЕ ДАННЫХ

4.1. При обмене в элементах данных, имеющих переменную длину, незначащие символы должны опускаться. Это правило распространяется в первую очередь на нули, предшествующие цифровому значению, и конечные пробелы.

4.2. Правило не распространяется на нуль, стоящий перед десятичной запятой (точкой), и на случай значащих нулей — например в обозначении температуры, если это указано в описании данных.

4.3. При уплотнении данных в сообщениях должны соблюдаться правила, приведенные в пп. 4.3.1—4.3.5.

Примечание. В приведенных далее примерах «Tag» означает идентификатор (метку) начала сегмента, «DE» — элемент данных и «СЕ» — составной элемент данных. В примерах используются разделители уровня А.

4.3.1. Условные сегменты, не содержащие данных, исключаются, в том числе исключаются и идентификаторы начала сегмента.

4.3.2. Порядок элементов данных в сегменте должен быть задан в определенной последовательности. Если условный элемент данных опускается в начале или середине сегмента, то его позиция обозначается путем сохранения разделителя данного элемента данных.

Два элемента данных опущенм

4.3.3. Если один или несколько условных элементов данных опущены в конце сегмента, то данный сегмент может быть сокращен с помощью указателя конца сегмента, т. е. разделители пропущенных элементов данных не должны передаваться.

В примере, приведенном ■ п. 4.3.2, последние два элемента данных опущены, а сегмент сокращен.

4.3.4. Простые компонентные элементы данных идентифицируются по их последовательности в составном элементе данных. Если опускается условный компонентный элемент данных, то его позиция обозначается путем сохранения знака разделения компонентных элементов данных.

Пример. Tjgi-DE+CE.CE+CE" СЕ’

В последнем составном элементе данных опущены два компонентных элемента данных.

4.3.5. Если один или несколько условных компонентных элементов данных в конце составного элемента данных опускаются, то это отсечение указывается с помощью разделителя элементов данных, или, если эти элементы находятся в конце сегмента, с помощью указателя конца сегмента.

В примере, приведенном в п. 4.3.4, последний компонентный элемент данных в первом составном э.тементе данных опущен. Также опущены три компонентных элемента данных в последнем составном элементе данных.

В обоих случаях составные элементы данных сокращены, в первом случае это показано разделителем элементов данных, а во втором—указателем конца сегмента.

5. ПОВТОРЕНИЕ СЕГМЕНТОВ

5.1. Для сообщений определенного типа должен быть использован один из двух методов указания на повторение сегментов, а именно: прямое указание на повторение или косвенное указание на повторение.

Выбор конкретного метода осуществляется при составлении сообщения. В одном и том же сообщении не допускается использовать одновременно оба метода.

5.2. Указание на повторение может быть прямым, если оно присутствует в идентификаторе (метке) сегмента в виде компонентного элемента данных, или косвенным на основе последовательности сегментов, указанной в соответствующем определении сообщения.

5.3. Сегменты уровня 0 (приложение 3) не должны повторяться и их идентификаторы не содержат указания на повторение.

5.4. Служебные сегменты (приложение 2), за исключением сегмента TXT, не должны повторяться и их идентификаторы не содержат указания на повторение.

5.5. При использовании метода прямого указания на повторение в идентификаторе сегмента первый компонентный элемент

данных должен быть кодом сегмента, а последний из следующих компонентных элементов данных должен указывать номер повторения сегмента в сообщении.

5.6. При использовании метода косвенного указания на повторение сегменты должны появляться в сообщении в порядке, указанном в описании типа сообщения.

6. ПОВТОРЕНИЕ ЭЛЕМЕНТОВ ДАННЫХ

6.1. Элементы данных (DE) не должны повторяться в сегменте большее число раз, чем это предусмотрено в справочнике сегментов. Если они повторяются меньшее число раз, то применяются правила, содержащиеся в пп. 4.3.2—4.3.5.

Пример. Tag+. +DEl+DEl+++. ’ Опущены два из четырех

|k|i возможных повторении

‘ " элемента данных DE1.

6.2. Допускается представлять повторяющиеся элементы в виде компонентных элементов данных (СЕ) в сосгавных элементах, что позволяет проводить сокращение с помощью разделителей элементов данных.

Это правило применяется также к определенным повторяющимся последовательностям элементов данных, например, в отношении последовательности СЕ1:СЕ2:СЕЗ.

Tag*.. .+СЕ1 .СЕ2:СЕЗ:СЕ1 :СЕ2.СЕЗ+

Сокращение с помощью разделителя элементов данных после дв> х после. и.»тель-ност'М

7. ПОСЛЕДОВАТЕЛЬНОЕ РАЗМЕЩЕНИЕ СЕГМЕНТОВ В СООБЩЕНИИ

7.1. В структуре сообщения сегмент может зависеть от другого сегмента, находящегося на более высоком иерархическом уровне и, следовательно, будет вложен в этот сегмент. Для сообщений такого типа используются методы прямого и косвенного указания о вложении. Выбор конкретного метода осуществляется при составлении сообщения. В одном и том же сообщении не допускается использовать одновременно оба метода.

7.2. Указание о вложении может быть прямым, если оно присутствует в идентификаторе (метке) сегмента в виде компонентного элемента данных, или косвенным на основе последовательности сегментов, указанной в соответствующем определении сообщения.

7.3. Служебные сегменты (приложение 2) и другие сегменты уровня 0 (приложение 3) не должны вкладываться, при этом их идентификаторы не должны содержать указания о вложении.

7.4. При использовании метода прямого указания о вложении в идентификаторе сегмента первый компонентный элемент данных должен быть кодом сегмента, а следующие за ним условные компонентные элементы данных должны указывать на уровень иерархии и на номер повторения сегмента в рамках сегмента более высокого уровня.

7.5. Число компонентных элементов данных, используемых для этой дели, зависит от иерархического уровня, на котором находится сегмент в схеме структуры сообщения (приложение 3). Следующий после кода сегмента компонентный элемент данных, предназначенный для первого контрольного счета, должен использоваться, если сегмент находится на первом уровне; второй компонентный элемент данных должен использоваться, если сегмент находится на втором уровне; третий — если сегмент находится на третьем уровне и т. д.

7.6. Если условный сегмент более высокого уровня не используется в конкретном случае, то при указании уровня иерархии должны присутствовать разделители компонентных элементов данных для неиспользуемых уровней, а данный сегмент должен находиться перед сегментами, включающими указание на этот уровень.

7.7. В приведенных ниже примерах сообщений используются прямое указание на повторение и вложение, а также разделители уровня А. Подробное объяснение схемы приведено в приложении 3.

📎📎📎📎📎📎📎📎📎📎