Hi
Espero que te ayude.
LLAMADA A TRANSACCIÓN
Acerca de la LLAMADA A TRANSACCIÓN
Una técnica similar al método de SESIÓN, mientras que la entrada en lote es un procedimiento de dos pasos, la Llamada a Transacción realiza ambos pasos en línea, uno después del otro. En este método, llamas a una transacción desde tu programa mediante
Llamar a la transacción <tcode> usando <BDCTAB>
Modo <A/N/E>
Actualización <S/A>
Mensajes en <MSGTAB>.
Parámetro 1 es el código de transacción.
Parámetro 2 es el nombre de la tabla BDCTAB.
Parámetro 3 aquí estás especificando el modo en el que ejecutas la transacción
A es modo de pantalla completa. Se muestran todas las pantallas de la transacción.
N es modo sin pantalla. No se muestra ninguna pantalla al ejecutar la transacción.
E es pantalla de error. Solo se muestran las pantallas en las que tienes un registro de error.
Parámetro 4 aquí estás especificando el tipo de actualización con el que se actualiza la tabla de la base de datos.
S es para actualización sincrónica en la que si cambias datos de una tabla, todas las tablas relacionadas se actualizan. Y se devuelve sy-subrc, es decir, sy-subrc se devuelve una vez y para todos.
A es para actualización asincrónica. Cuando cambias datos de una tabla, se devuelve sy-subrc. Y luego se lleva a cabo la actualización de otras tablas afectadas. Por lo tanto, si el sistema no puede actualizar otras tablas, aún se devuelve sy-subrc como 0 (es decir, cuando se actualiza la primera tabla).
Parámetro 5 cuando actualizas la tabla de la base de datos, la operación es exitosa o fallida, o la operación es exitosa con alguna advertencia. Estos mensajes se almacenan en una tabla interna, que especificas junto con la declaración de MENSAJE. Esta tabla interna debe declararse como BDCMSGCOLL, una estructura disponible en ABAP/4. Contiene los siguientes campos:
1. Tcode: Código de transacción
2. Dyname: Nombre del módulo de punto de lote
3. Dynumb: Número de Dyn de entrada en lote
4. Msgtyp: Tipo de mensaje de entrada en lote (A/E/W/I/S)
5. Msgspra: Idioma de entrada en lote, id de mensaje
6. Msgid: Id de mensaje
7. MsgvN: Variables de mensaje (N = 1 - 4)
Para cada entrada actualizada en la tabla de la base de datos, el mensaje está disponible en BDCMSGCOLL. Como BDCMSGCOLL es una estructura, debes declarar una tabla interna que pueda contener múltiples registros (a diferencia de una estructura).
Pasos para el método de LLAMADA A TRANSACCIÓN
1. Tabla interna para los datos (estructura similar a tu archivo local)
2. BDCTAB como BDCDATA
3. Función UPLOAD o WS_UPLOAD para cargar los datos desde el archivo local a la tabla interna. (Considerando que el archivo es local)
4. Loop en la tabla interna.
Poblar la tabla BDCTAB.
Llamar a la transacción <tcode> usando <BDCTAB>
Modo <A/N/E>
Actualización <S/A>.
Refrescar BDCTAB.
Endloop.