✒️ABAP La configuración de un IDoc
ABAP La configuración de un IDoc
1 | La estructura de un Idoc
La estructura de un IDoc consiste de varios segmentos, y los segmentos consisten de una secuencia de campos.
La estructura de un tipo de IDoc define la sintaxis de los datos al especificar la organización de los segmentos,
atributos de los segmentos y formatos de cada uno de sus campos.
Imagen 1.1 - Los registros de control, datos y estado
Un IDoc consiste de la siguiente secuencia de tres tipos de registros:
Registro de Control
Contiene toda la información administrativa del IDoc, como el origen y el destinatario, y qué tipo de IDoc es.
Sería algo así como el sobre que acompaña a cualquier carta.
Este registro es muy importante ya que es necesario para saber, entro otras cosas, cuál será el destinatario del IDoc.
La tabla SAP donde se guardan es la EDIDC.
Tabla EDIDC (Registros de Control de un IDoc)
La tabla transparente estándar EDIDC almacena los registros de control de un IDoc.
La clave de la tabla es el Número del IDOC (campo DOCNUM).
La estructura del registro de control es idéntica para todos los IDocs y está definida por SAP.
Son automáticamente creados e insertados por el sistema en tiempo de ejecución.
La estructura del registro de control está definida por la estructura del diccionario EDI_DC40:
Imagen 1.2 - La estructura estándar de los registros de control
Registro de Datos
Los registros de datos se guardan en la tabla EDID4 en un campo de 1000 caracteres. Para saber interpretar esa cadena,
el registro cuenta con un campo que informa cuál es la estructura con la que se deben interpretar los datos.
Tabla EDID4 (Registros de datos de un IDoc)
La tabla cluster estándar EDID4 almacena los registros de datos de un IDoc.
La clave de la tabla esta formada por: el Número del IDOC (campo DOCNUM),
el Contador en la tabla de cluster (campo COUNTER) y el Número del segmento SAP (campo SEGNUM).
Un IDoc puede contener múltiples registros de datos, según haya sido definida la estructura del Tipo de IDoc.
La estructura de los registros de datos está definida por la estructura del diccionario EDI_DD40:
Imagen 1.3 - La estructura estándar de los registros de datos
Registro de Status
Este segmento informa los diferentes status por los que va pasando el mensaje en cuestión,
hasta que finalmente es procesado correctamente.
Si el receptor reporta un error de comunicaciones, se dispara el manejo de excepciones mediante un Workflow,
donde será informado el responsable del IDoc. Este paso es opcional.
Los registros de status contienen información de estado, tal como código de estado,
fecha y hora en que el punto de control es alcanzado.
Estos registros de estado existen solamente en SAP y no son almacenados en el archivo de salida.
La estructura de los registros de estado está definida por la estructura del diccionario EDI_DS40. Se almacenan en la tabla EDIDS.
Tabla EDIDS (Registros de estado de un Idoc)
La tabla transparente estándar EDIDS almacena los registros de estado de un IDoc.
La clave de la tabla esta formada por: el Número del IDOC (campo DOCNUM), la Fecha de la información de status (campo LOGDAT),
la Hora de la información de status (campo LOGTIM) y el Contador de status IDOC (campo COUNTR).
Imagen 1.4 - La estructura estándar de los registros de estado
Cada IDoc consiste en un único registro de control y varios registros de datos y status.
El sistema automáticamente asigna registros de estado durante todo el proceso, a medida que el IDoc va alcanzando diversos puntos de control.
2 | Los segmentos de datos
Como mencionamos anteriormente un registro de datos o segmento de datos define el formato de los datos que se enviarán
o recibirán a través de un IDoc. Un IDoc puede tener definidos uno o más segmentos de datos.
Un segmento de datos es en sí una estructura.
Por lo que cuando creemos un segmento, luego podremos visualizarlo a través de la transacción SE11.
La estructura de los segmentos de datos es la siguiente:
Imagen 2.1 - Los idocs jerárquicos y los idocs no jerárquicos
IDocs jerárquicos:
los segmentos hijos están ubicados debajo de sus padres. Deben respetar la secuencia en la que se ingresan al mensaje.
La información de la jerarquía esta guardada en los campos de control del segmento.
IDocs no jerárquicos:
los segmentos deben ubicarse por tipos, no por jerarquía de padres e hijos. Se relacionan por medio de un valor del segmento de datos.
En ambos tipos, la información debe ser enviada siguiendo el orden de los segmentos ya que sino fallará el IDoc.
3 | El tipo base
Tipo base
También llamado Tipo IDoc, define la estructura de los datos de aplicación del IDoc.
Es la estructura de los datos que se transfieren entre sistemas.
Imagen 3.1 - Estructura general de los datos a transferir entre sistemas
Desde la transacción WE30 se puede ver el formato de los Tipo Base.
Imagen 3.2 - La transacción estándar WE30
Transacción WE30 (Administración de los Tipos base de IDoc)
Utilizaremos la transacción estándar WE30 para la creación de los Tipos base de IDocs.
Una Extensión de un Tipo Base es un concepto muy similar al de las estructura append con las tablas estándar de SAP.
Se utilizan para agregar dentro de un segmento estándar campos Z.
Distintos Tipo Base pueden utilizar los mismos segmentos.
4 | El tipo de mensaje
Es una vista del Tipo IDoc (Tipo Base). Representa al objeto de negocio.
Imagen 4.1 - Relación entre los tipos base y los tipos de mensaje
El Tipo de Mensaje (muchas veces se habla de IDoc refiriéndose al Tipo de mensaje) puede estar compuesto por diferentes Tipos Base.
Esto se debe a que el mismo objeto de negocios, puede ser enviado a diferentes sistemas, con diferente estructura.
Incluso, diferentes versiones de SAP R/3 generaron diferentes Tipos de IDocs.
Transacción WE81 (Administración de un Tipo de mensaje).
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial