Compartir a través de


Elemento estructural de segmento EDI

El segmento consta de uno o más elementos de datos y es una unidad intermedia de información en el mensaje. Cada segmento comienza con un identificador de segmento de datos de tres caracteres y finaliza con un terminador de segmentos (de forma predeterminada el apostrofo (')). Los elementos de datos dentro del segmento se separan mediante separadores de elementos de datos. El separador de elementos de datos es, de forma predeterminada, el signo más (+). Un segmento se clasifica como Obligatorio u Opcional. Los separadores para intercambios salientes se pueden establecer en los acuerdos entre dos socios comerciales o como parte del acuerdo del socio comercial de reserva.

Anidamiento

Los segmentos se pueden agrupar en una relación jerárquica denominada anidamiento. Hay dos tipos distintos de anidamiento: explícito e implícito. Dentro de cualquier intercambio, sólo puede utilizarse un tipo de anidamiento.

  • El anidamiento explícito utiliza una indicación explícita de que se anida el bucle. Al utilizar el anidamiento explícito, el primer elemento de datos de componentes en la etiqueta de segmento será el código de segmento. Le seguirán los elementos de datos de componentes condicionales que indican los dos niveles y la incidencia de repetición del segmento. El número de elementos de datos de componentes utilizado para este propósito depende del nivel jerárquico en el que aparece el segmento en la estructura de mensaje. Si el segmento va a aparecer en el nivel uno, se utilizará el elemento de datos de componentes inmediatamente posterior al código de segmento. Si el segmento va a aparecer en el nivel dos, se utilizarán el elemento de datos de componentes inmediatamente posterior al código de segmento y el siguiente elemento de datos de componentes. Si el segmento va a aparecer en el nivel tres, se utilizarán los tres elementos de datos de componentes inmediatamente posteriores al código de segmento. Las canalizaciones no pueden realizar la comprobación de estructural de comparación de datos con la jerarquía.

  • En la anidación implícita, se sigue el orden de los segmentos especificado en la estructura de mensaje de forma estricta. La relación de anidación entre los segmentos es evidente de forma implícita y no es necesaria ninguna otra indicación para el procesamiento.

Bucles

Uno o varios segmentos pueden repetirse como un bucle dentro de un conjunto de transacciones. Hay dos tipos distintos de bucles: sin enlazar y delimitados.

Bucles sin enlazar

Un bucle sin enlazar no tiene un único segmento de identificación para marcar el principio y el final del bucle. Se repite un bucle sin enlazar de acuerdo con un recuento. Si el recuento no dispone de un valor, el bucle se repetirá dos veces. Los segmentos en el bucle sólo pueden producirse una vez en un orden establecido.

El inicio de un bucle sin enlazar se establece mediante un primer elemento de datos que es único. El primer elemento puede aparecer una vez y sólo una vez en cada repetición. Los bucles sin enlazar pueden anidarse dentro de los bucles. Si es así, el bucle interno sin enlazar no puede iniciarse en la misma posición ordinal que el bucle externo ni iniciarse con el mismo Id. de segmento que el bucle externo. El bucle anidado no puede contener un segmento que sea también el segmento del principio de cada bucle exterior en la misma estructura de anidación.

Bucles enlazados

Un bucle enlazado comienza con el segmento LS predefinido (Inicio de bucle) y finaliza con un segmento LE predefinido (Fin de bucle). La opcionalidad del segmento LS debe coincidir con la del primer segmento en el bucle. Un bucle enlazado puede contener otro bucle enlazado.

Nota

Un bucle enlazado en X12 y un bucle explícito en EDIFACT son equivalentes.

Se utiliza el enlace en un bucle con el fin de resolver la ambigüedad. El designador de requisitos en los segmentos LS/LE coincide con el designador de requisitos del primer segmento del bucle. Los enlaces reducen las restricciones estructurales impuestas acerca del uso de ciertos segmentos de repetición habituales. Los segmentos enlazados no tienen restricciones con respecto al comienzo del Id. de segmento. Esto activa el mismo segmento para iniciar el bucle enlazado y puede utilizarse fuera del bucle, como en el ejemplo siguiente:

AA  
LS  
BB  
CC  
LE  
BB  

Se permiten bucles subordinados (bucles dentro de bucles). Si los bucles subordinados se anidan dentro de bucles, el bucle interior no puede iniciarse en la misma posición ordinal que el bucle exterior. El bucle enlazado interior debe finalizar antes del bucle exterior inmediato.

Cada bucle delimitado dentro de un conjunto de transacciones debe tener un valor de loop_id> definido <de forma única de una a cuatro letras mayúsculas o dígitos numéricos. Se recomienda que los segmentos LS y LE correspondientes contengan el mismo valor único <loop_id> . El <elemento de datos loop_id> se procesará como un elemento de datos "normal" y se validará para el tipo de datos, longitud mínima/máxima, opcionalidad, etc. No se realizará la validación entre segmentos cruzados (entre LS y LE). BizTalk Server comprobará la resolución de ambigüedad a través de la presencia del segmento LS y LE y nada más. En el caso de que se produzca una infracción de la regla de elemento de datos, el conjunto de transacciones se acepta con errores y BizTalk Server devuelve AK501=E y la valoración adecuada en AK2/AK3 en la confirmación.

También es necesario que se apliquen un par de segmentos LS/LE. En el caso de que se produzca una falta de coincidencia, se denegará el conjunto de transacciones debido a un problema relacionado con la resolución de ambigüedad y AK501 = E y AK502 = 5 se devuelven en el Visor de eventos y la confirmación 997. Cuando faltan o ambos segmentos LS/LE, pero el conjunto de transacciones no es ambiguo, el conjunto de transacciones se aceptará con errores y AK501=E y AK502 = 5 devueltos.

Un par LS/LE puede ser opcional u obligatorio. Sin embargo, a menos que el par se incluya en un bucle primario que sea repetible, éste nunca podrá ser de este tipo. En cualquier caso, tanto MaxOccurs para un par LS/LE puede ser 1, pero no inferior a 1. Esto es obligatorio en la validación de esquemas.

El desensamblador EDI y el ensamblador EDI controlan los segmentos LS y LE. Durante el análisis, el desensamblador crea nodos XML para los segmentos LS y LE, y valida los segmentos. Durante el proceso de serialización, el ensamblador crea los segmentos LS y LE a partir de nodos XML y los valida. Si falta un segmento LS o LE esperado, el conjunto de transacciones se suspende o rechaza con un AK501 = E y AK502 = 5. Si los segmentos LS/LE están presentes sin el elemento de datos correspondiente y la validación EDI está habilitada, el conjunto de transacciones se acepta con errores y AK501 = E y AK502 = 5 se notifican en el Visor de eventos y la ACK 997.