Cambiar la estructura del mensaje
En cada archivo <Message>.Config la estructura de un elemento Message viene determinada por el esquema XML del estándar EDI que esté personalizando. Para más detalles consulte Configuración de esquemas EDI. Para cambiar la estructura del mensaje, tendrá que consultar la documentación tanto de su estándar EDI personalizado como del esquema XML. En este apartado explicamos cómo agregar segmentos, elementos de datos y compuestos, cómo crear grupos y bucles, indicar el tipo y la longitud de los elementos de datos y definir elementos obligatorios y opcionales.
Agregar segmentos, elementos de datos y compuestos
Para añadir elementos de datos, segmentos, compuestos y subcompuestos, cree elementos <Data>, <Segment>, <Composite> y <SubComposite> como sigue:
•El archivo .Segment debe contener la lista de todos los segmentos y elementos de datos reutilizables definidos globalmente.
•El archivo .Config que corresponde a cada tipo de mensaje (o transacción) debe contener la estructura de ese mensaje (la jerarquía de los segmentos, compuestos y elementos de datos).
Esto hace posible que se pueda definir un elemento de datos una vez (en el archivo .Segment) y reutilizarlo en múltiples mensajes (en archivos .Config).
Ejemplo 1: agregar elemento de entrada
El extracto de código que aparece a continuación muestra cómo se ha definido el elemento de datos F100 en el archivo X12.Segment de la colección HIPAA X12:
<Data name="F100" type="string" maxLength="3" minLength="3" info="Currency Code" />
El siguiente fragmento de código muestra cómo el segmento CUR de la transacción Health Care: Professional (837-Q1) hace referencia al elemento de datos F100:
<Include href="X12.Segment" />
<...>
<Segment name="CUR" minOccurs="0" info="Foreign Currency Information">
<Data ref="F100" info="Currency Code" />
</Segment>
El extracto anterior también contiene una referencia al archivo X12.Segment externo (<Include href="X12.Segment" />) en el que se definió el elemento de datos F100.
Ejemplo 2: agregar segmentos
En esta subsección explicamos cómo añadir un segmento TA1 opcional. Este segmento se usa en segmentos X12 e HIPAA para confirmar la recepción del intercambio y que la sintaxis de sus segmentos de sobre es correcta. Para incluir el segmento TA1 en un componente EDI siga las instrucciones a continuación.
1.Cree una colección EDI personalizada usando como modelo la colección X12 Así evitaremos que los cambios afecten a la configuración predeterminada original.
2.Abra el archivo Envelope.Config de la colección EDI personal.
3.Pegue el texto <Segment ref="TA1" minOccurs="0" maxOccurs="unbounded"/> como se ve más abajo:
<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../EDIConfig.xsd" Version="3">
<Meta>
<Release>6020</Release>
<Agency>X12</Agency>
</Meta>
<Format standard="X12"/>
<Include href="X12.Segment"/>
<Include href="X12.Codelist"/>
<Include collection="EDI.Collection"/>
<Group name="Envelope">
<Group name="Interchange" maxOccurs="unbounded">
<Segment ref="ISA" minOccurs="0"/>
<Segment ref="TA1" minOccurs="0" maxOccurs="unbounded"/>
<Group name="Group" maxOccurs="unbounded">
...
</Group>
<Segment ref="IEA" minOccurs="0"/>
</Group>
</Group>
</Config>
4.Guarde el archivo para terminar.
La línea que aparece resaltada en amarillo añade una referencia al segmento TA1 definido en el archivo X12.Segment. Ahora puede ver la estructura del segmento TA1 en MapForce: Inserte un componente EDI, seleccione una colección personalizada y un tipo mensaje. Para este ejemplo hemos elegido el mensaje 850. El segmento TA1 ahora está incluido en el componente 850 (en un rectángulo rojo más abajo).
![mf_edi_ta1](./images/mf_edi_ta1.png)
Cómo crear grupos y bucles
Cuando se crean o cambian estructuras EDI, a menudo es necesario crear un grupo de segmentos o elementos de datos. Incluso el mensaje del componente EDI también se considera un grupo, ya que agrupa los segmentos en que consiste el mensaje. Los grupos pueden contener grupos secundarios. Los grupos pueden repetirse varias veces, en cuyo caso se convierten en bucles. Para crear grupos y bucles debe añadir el elemento <Group>. Use el atributo maxOccurs para indicar el número máximo de ocurrencias permitidas en un bucle. Por ejemplo, el siguiente código muestra un bucle que puede ocurrir hasta 25 veces, es opcional y consiste en dos segmentos:
<Group name="LoopSAC" maxOccurs="25" minOccurs="0">
<Segment ref="SAC"/>
<Segment ref="CUR" minOccurs="0"/>
</Group>
Indicar el tipo y la longitud de los elementos de datos
Use el atributo type de un elemento de datos para especificar de qué tipo es. Los posibles tipos de datos suelen ser cualquiera de los tipos de esquemas XML que se usan en los archivos de configuración predeterminados. Estos tipos simples no se pueden usar: anyType, ENTITIES y QName.
Use los atributos minLength y maxLength de un elemento de datos para especificar su longitud mínima y máxima.
Indicar los elementos de datos obligatorios/opcionales
En el caso de los elementos de datos obligatorios, el valor predeterminado del atributo minOccurs es 1. Para indicar que un elemento de datos es opcional, cambie su atributo minOccurs a 0. Por ejemplo, en el siguiente fragmento de código puede ver dos elementos de datos obligatorios (F1331 y F1332) y uno opcional (F1325). La ausencia de atributos minOccurs en los primeros dos elementos de datos indica que F1331 y F1332 toman el valor predeterminado 1.
<Composite name="C023" info="Health Care Service Location Information">
<Data ref="F1331"/>
<Data ref="F1332"/>
<Data ref="F1325" minOccurs="0"/>
</Composite>