Документооборот - статьи


Типы данных


В стандарте X12 определяются такие типы данных, которые может содержать элемент:

AN (Alpha-Numeric) - строка, которая может содержать буквы, цифры, знаки препинания. Это может быть произвольная строка, например имя товара или название улицы на которую нужно доставить товар, и т.д. Примеры: «БАТОН НАРЕЗНОЙ, 1-ГО СОРТА», «САНКТ-ПЕТЕРБУРГ».

Для этого типа данных так же накладывается ограничение на длину строки, например 1/20 – от 1 до 20 символов, 2/2 – ровно 2 символа и т.д.

R (Real) - дробное число. Данный тип данных используется для информации о цене, весе продукта, расстоянии, размере скидки и т.д. Примеры: 1.23; 75.99. Начиная с версии 4010 поддерживается экспоненциальная нотация.

N[X] (Number) – специальный формат числа. [X] определяет, сколько знаков справа надо «отступить» чтобы поставить запятую. Например, для типа данных N2 для обозначения числа 1,23 значением элемента будет 123, а для 10,5 – 1050 (тоесть чтобы получить нужное значение мы берем значение элемента и делим его на 102). N0 соответствует целому числу, тоесть его значение остается как есть.

ID (Identity) – идентификатор. Об этом типе данных следует рассказать подробнее. Простейший пример идентификаторов из реальной жизни – это единицы измерения, например «ММ» (миллиметр), «СМ» (сантиметр), «РУБ» (рубль) и т.д. В X12 все идентификаторы собраны в логические группы (классификаторы), и этим группам присвоены уникальные идентификаторы – номера. Классификатор состоит из нескольких значений, и каждое значение имеет свое уникальное имя (обычно, 2-3 буквы и цифры) и расшифровку (определение).



Примеры классификаторов – единицы веса, типы валют, коды стран.

Рассмотрим, например, классификатор (группу идентификаторов) номер 90

90 Measurement Unit Qualifier
Единицы Измерения
TYPE=ID MIN=1 MAX=1
Тип – идентификатор, длина имени MIN = 1, MAX = 1
Code specifying the linear dimensional unit
Код, определяющий единицу линейного размера
CODE DEFINITION & EXPLANATION
C Centimeters
E Feet
N Inches
X Meters

Становится понятно, что если элемент сегмента у нас имеет тип ID из классификатора 90, то речь идет о длине.
И если значение этого элемента, например, «N», то длина определяется в дюймах (inches).

Особо отмечу, что если элемент имеет тип данных ID, то его значение может принадлежать только одному классификатору, определенному стандартом для этого элемента в данном сегменте. Иначе говоря, не может быть ситуации, когда элемент типа ID может быть единицей измерения массы (например, классификатор 188 Weight Unit Code) и в то же время – единицей измерения длины (например, классификатор 90 Measurement Unit Qualifier).

Так же часто в классификаторе существует специальное значение – «Z», «ZZ» или «ZZZ» в зависимости от ограничений по длине значения идентификатора. Это имя имеет расшифровку (определение) «Mutually Defined» (взаимно определенное), и используется для обозначения единиц, отсутствующих в стандарте для данного классификатора, о которых участники документооборота договорились заранее. Компании, которые обмениваются документами, когда встречают подобное значение идентификатора, в большинстве случаев знают, о чем идет речь – это могут быть «(33) попугая» или «(10) спичечных коробков».

Для этого типа данных так же накладывается ограничение на длину строки, например 3/3 – от 3 до 3 символов, или (проще говоря) 3 символа ровно. Данное ограничение исходит не от стандарта сегмента документа, а от типа используемого классификатора (если классификатор 90 определяет ограничение на длину значения как 1/1, то элемент-идентификатор который использует этот классификатор, так же будет иметь ограничение на длину 1/1).

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

DT (Date) – дата. Этот тип данных предназначен для хранения значения даты и имеет формат YYMMDD (начиная с версии 4010 – CCYYMMDD). Примеры: 20060625 (25 Июня 2006).

TM (Time) – время. Этот тип данных предназначен для хранения значения времени и имеет формат HHMM. Примеры: 1259 (12:59).Так же может включать секунды (опционально).

B (Binary) – бинарные данные, последовательность 8-ми битных байтов.

<composite> - композитный элемент. Это элемент, который содержит сразу несколько значений, разделенных специальным символом (этот символ указывается в сегменте ISA, элемент ISA-16). Примеры: 12345.67>12.55 (в данном примере разделителем является “>”). Элементы, из которых состоит композитный элемент, называются так же компонентами (component data element) или суб-элементами (sub-element).


Содержание раздела