✒️ABAP Los IDocs de salida
ABAP Los IDocs de salida
1 | Introducción a las interfaces de salida
Los IDocs de salida se pueden generar mediante:
· Output types
· Punteros de modificación
· Programa de extracción estándar
· Programa de extracción Z
Imagen 1.1 - Mapa de técnicas existentes para la generación de IDocs de salida
Los Output Types se utilizan cuando la información a enviar se trata de documentos de negocio o mejor llamados transaccionales
como por ejemplo un pedido o una factura. Para ello, la aplicación debe ser EDI/Ale Enable.
Los Punteros de modificación y los Programas extractores, se utilizan para replicar datos maestros, o modificaciones de los mismos.
A continuación analizaremos en detalle cada uno de ellos.
2 | Los Output Types
Es un método de generación de IDocs de salida que se utiliza para datos transaccionales.
Imagen 2.1 - Esquema general de IDocs de salida mediante output types
El manejo del lado funcional es el mismo utilizado para impresión de formularios:
Se define un Output Message (mensaje de salida), configurado como salida ALE/EDI.
Se asocia dicho mensaje al documento que desea enviarse.
Se debe configurar además, el mensaje de logística en la herramienta ALE (en el Acuerdo de interlocutores ).
Los pasos para configurar un mensaje vía Output type son:
Identificamos el tipo de mensaje IDoc a enviar:
Definimos el código de proceso de salida:
Definimos el puerto de salida y la forma de envío.
Definimos (en el caso en que sea necesario) la función de la puerta ABAP.
3 | El código de proceso de salida
También llamado Process Code de salida, es el que indica como se debe procesar el IDoc de salida.
A diferencia de los códigos de proceso de entrada, que realmente procesan el IDoc para crear o modificar información en
documentos de negocio, los códigos de proceso de salida, no graban información en el documento o en el objeto,
sino que obtienen la información del mismo, y la transforman a formato IDoc para poder ser enviada.
Se definen códigos de proceso para cada tipos de Mensaje (Tipos de IDocs),
y cada código de proceso está asociado a un módulo de función, que es el encargado de ejecutarlo.
En la mayoría de los procesos de salida, se utilizan códigos de proceso estándar para la generación de IDocs,
ya que la información a enviar proviene, por lo general, de documentos de negocio.
Igualmente, todos los módulos de función estándar asociados a códigos de proceso, cuentan con una serie de ampliaciones,
donde puede agregarse código Z, en caso que el Tipo Base vaya asociado a una ampliación Z.
Para definir códigos de procesos de salida Z, se utiliza la transacción WE41.
Imagen 3.1 - Definición de códigos de procesos de salida mediante la transacción estándar WE41
Transacción WE41 (Administración de códigos de proceso de salida de IDoc)
Utilizaremos la transacción estándar WE41 para la creación de los códigos de proceso de salida.
4 | Los punteros de modificación
Se utilizan para enviar o duplicar datos maestros en sistemas externos, cuando estos datos son creados o modificados.
Para realizar la activación de punteros de modificación en forma global utilizaremos la transacción BD61 tal como vemos a continuación.
Imagen 4.1 - Activación de los punteros de modificación
Luego realizaremos la activación de los punteros de modificación por Tipo de mensaje a través de la transacción BD50.
Imagen 4.2 - Activación de los punteros de modificación por tipo de mensaje
Transacciones BD61 y BD50 (Activación de los punteros de módificación de IDoc)
Utilizaremos las transacciones estándar BD61 y BD50 para la activación de los punteros de módificación.
Aquí debemos agregar una entrada para el mensaje deseado y marcarla como activa.
Imagen 4.3 - Tildamos como activa a la nueva entrada que acabamos de generar
Ahora debemos definir las tablas y campos relevantes para la generación de punteros de modificación mediante la transacción BD52.
Primero introducimos el Tipo de mensaje.
Imagen 4.4 - Ingresamos el tipo de mensaje y continuamos adelante
Transacción BD52 (Generación de los punteros de módificación de un IDoc)
Utilizaremos la transacción estándar BD52 para la generación de los punteros de módificación.
Luego se ingresará el objeto de modificación, la tabla y el campo.
Imagen 4.5 - Generamos una nueva entrada completando las tres columnas
Ahora debemos crear la relación entre el Tipo de mensaje y el módulo de función a través de la transacción BD60.
Imagen 4.7 - Generamos una nueva entrada en la transacción BD60
Transacción BD60 (Relación entre Tipo de mensaje y el módulo de funciones de un IDoc)
Para crear la relación entre el Tipo de mensaje y el modulo de función, previamente deberemos crear el módulo de función.
Este módulo de función será el que ingresemos en la transacción BD60.
Para crear el módulo de funciones Z, tomaremos el encabezado de un módulo estándar y agregaremos nuestro código.
La lógica del módulo de función contendrá los siguientes pasos:
Leer los punteros de modificación generados usando la función CHANGE_POINTERS_READ.
Analizar los punteros de modificación para determinar cuáles documentos son válidos.
Determinar la clave del documento de aplicación del paso anterior.
Seleccionar datos de aplicación de la base de datos, usando la clave de objeto identificada.
Completar la información del registro de control del IDoc.
Completar una tabla interna de estructura EDIDD con registros de datos para todos los segmentos.
Llamar al servicio MASTER_IDOC_DISTRIBUTE para crear los datos en la base de datos.
Actualizar el estado de los punteros de modificación.
Ejecutar un COMMIT WORK.
Finalmente ejecutaremos el programa RBDMIDOC para ejecutar el IDoc, introduciendo el tipo de mensaje.
Imagen 4.8 - Ejecución del programa estándar RBDMIDOC
Programa RBDMIDOC (Crear IDoc)
El programa estándar RBDMIDOC se utiliza para crear IDocs a través de punteros de modificación para un tipo de mensaje específico.
Luego de creados, los envia al sistema receptor y marca a los punteros de modificación como procesados en el respectivo tipo de mensaje.
5 | Los programas de extracción estándar
Existen programas estándar para la creación de IDocs. Estos programas se utilizan para enviar a los sistemas receptores,
datos maestros en forma masiva, para cargas iniciales, por ejemplo,
donde se desea replicar gran parte de los datos maestros del sistema central a los subsistemas del ambiente.
Imagen 5.1 - Esquema general de los programas de extracción estándar
Algunos programas extractores estándar son:
BD10 – Maestro de Materiales
BD12 – Maestro de Clientes
BD14 – Maestro de Proveedores
Además, podemos programar los propios programas extractores generadores de IDocs. Estos programas,
utilizan el módulo de función MASTER_IDOC_DISTRIBUTE para distribuir la información generada a los sistemas receptores.
Se debe actualizar el Acuerdo de interlocutores y el Modelo de distribución, para definir cuales serán los sistemas receptores.
6 | Los programas de extracción Z
Los pasos a seguir para la creación de un IDoc de salida desde un programa ABAP son los siguientes:
Seleccionar la información de la base de datos de acuerdo a los parámetros de selección ingresados.
Completar la información correspondiente al registro de control.
Completar una tabla interna de tipo EDIDD con los registros de datos de los segmentos correspondientes.
Llamar al servicio de la capa ALE MASTER_IDOC_DISTRIBUTE para crear los IDocs en la base de datos.
Ejecutar un COMMIT WORK.
Enviar el IDoc a su destinatario invocando al programa RSEOUT00.
Una vez completados estos pasos, queda creado el Idoc. El mismo se guarda físicamente en las tablas EDIDC y EDID4.
Se lo puede ver desde la transacción WE05.
Imagen 5.2 - Pantalla de selección de la transacción estándar WE05
Transacción WE05 (Listado de IDoc)
Utilizaremos la transacción estándar WE05 para visualzar un listado con los IDocs existentes en el sistema.
En la zona de descargas de la lección podremos bajar un ejemplo del pseudo código que podemos utilizar.
 
 
 
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