✒️ABAP La creación del programa de extracción Z para IDocs de salida
ABAP La creación del programa de extracción Z para IDocs de salida
A continuación veremos un video donde analizamos los detalles de un programa Z de extracción para IDocs de salida.
Se creará un programa de extracción: Z_ENVIAR_IDOC_SALIDA
El cual enviará los datos de un usuario, de la tabla Z_TABLA_USUARIOS
El programa tiene una pantalla de selección donde se ingresa un número de DNI que será procesado.
Validaremos que el DNI ingresado no se encuentre vacío.
Luego en el evento START-OF-SELECTION creamos la subrutina EDIDC la cual carga el registro de control del IDoc.
Los datos mas importantes que se cargan son: Tipo de mensaje, Tipo Base, Número de Partner, Puerto de salida y la indicación de que utilizamos un Sistema Lógico.
También indicamos la dirección del IDoc en el campo Direct (ps_idoc_ctrl-direct = 1) con un "uno" que significa salida.
Luego en la subrutina data_idoc haremos dos cosas:
- Obtenemos la información de la tabla ZTABLA_USUARIOS a partir del parámetro ingresado por pantalla.
- Cargamos el segmento, con los resultados de la busqueda de la tabla ZTABLA_USUARIOS. Es ideal crear una subrutina por cada segmento a cargar en caso de existir mas de uno.
Luego en la subrutina outbound_usuarios.
Ejecutamos la función MASTER_IDOC_DISTRIBUTE que crea y procesa el IDoc.
Por último ejecutamos el programa estándar rseout00 que fuerza la salida del IDoc al exterior.
Luego probaremos, debemos utilizar uno de los DNI cargados y colocar el debugger (barra de comando h) y ejecutamos.
Ejecutando el debugger se puede ver que se carga correctamente los datos de la tabla ZTABLA_USUARIOS a ls_usuarios.
También vemos que se creo el IDoc al ejecutar la función MASTER_IDOC_DISTRIBUTE y se guardo el número en la variable pt_idoc_ctrl-docnum.
Finalmente ejecutamos el programa estándar rseout00 y vemos en pantalla el mensaje de creación de un IDoc.
Ahora vamos a la transacción BD87 para ejecutar el IDoc. Ya que como se vio anteriormente, el procesamiento de los IDocs es asincrónicos y si quisiéramos que sea sincrónico entonces debemos forzarlo.
Vemos que el status del IDoc es = 30. Seleccionaremos el IDoc y presionar el boton "Process".
Ahora vemos que el estado del IDoc paso del 30 al 03 con status OK.
Por último ejecutaremos la transacción WE05 para visualizar el IDoc que acabamos de crear.
Se pueden visualizar los registros de control, datos y status del IDoc junto con su contenido y toda la información refereida al mismo.
 
 
 
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte