✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
1. ¿Que son los Batch Input?
Es la técnica mediante la cual podremos realizar la carga de datos en el sistema utilizando las validaciones de las transacciones. Generalmente la carga inicial de datos se realizará levantando los datos de un archivo, tal como vimos en la unidad anterior.
2. técnicas de batch Input.
Existen dos técnicas para realizar un Batch input, una se realiza de forma Online y la otra en forma Batch. Ellas son:
CALL TRANSACTION: se realiza de forma online, por lo que ejecuta la actualización en el momento en que se ejecuta el programa del Batch Input. Se utiliza la sentencia CALL TRANSACTION.
JUEGO DE DATOS: se realiza de forma Batch (o de fondo) y queda almacenado en SAP para su posterior ejecución mediante la transacción SM35. Consiste en la ejecución de una serie de funciones estándar para la apertura, ejecución y cierre del juego de datos.
3. Pasos para la creación de un Batch Input
Los pasos para la generación de un Batch Input depende de la técnica utilizada. Veamos cuáles son los pasos a seguir para cada técnica:
CALL TRANSACTION
- Declaración de datos propios de Batch Input.
- Lectura de datos del archivo de entrada.
- Carga de la tabla BDCDATA.
- Ejecución de la sentencia CALL TRANSACTION.
Nota: Estructura BDCDATA es una estructura estándar del sistema es muy utilizada en los batch input ya que define el tipo de datos de la tabla interna que almacena los datos que se cardaran en el BATCH INPUT.
JUEGO DE DATOS
- Declaración de datos propios del Batch Input,
- Lectura de datos de archivo de entrada.
- Apertura de la sesión del Juego de Datos
- Carga de la tabla DBCDATA
- Inserción del Juego de Datos.
- Cierre de sesión del Juego de Datos.
- Ejecución del Juego de Datos a través de la transacción SM35 o a través de la creación de un Job y la ejecución del programa estándar RSBDCBTC.
Nota: Programa RSBDCBTC es un programa estándar del sistema nos permite realizar la ejecución online de un juego de datos.
4. Carga de la tabla DBCDATA.
El paso más importante en la ejecución de un Batch Input es ka carga de la tabla BDCDATA.
Tal como hacemos referencia, la tabla BDCDATA será una tabla interna que tendrá lo mismo campo de la estructura RDCDATA. Los campos que forma parte de esta estructura son:
Nombre campo Tipo Longitud Descripción
PROGRAM CHAR 40 Contendrá el nombre del programa ABAP que se ejecuta
DYNPRO NUMC 4 Contendra el No. de la dynpro o pantalla en ejecución.
DYNBEGIN CHAR 1 Contendra una "X" cuando se comience una nueva pantalla.
FNAM CHAR 132 Contendrá el nombre del campo que se desea cargar. Este campo
es sensible a mayúscula y minúscula.
FVAL CHAR 132 Contendrá el valor que se desea cargar al FNAM.
Veamos un ejemplo sencillo de como cargaríamos la tabla BDCDATA. Supongamos que queremos hacer un Batch Input, para cargar con un registro a una tabla de usuario ZTABLA_USUARIOS.
Si ejecutamos esta acción en forma manual, deberíamos hacer lo siguiente:
Ingresar a la transacción SM30, introducir el nombre de la tabla, presionar el botón de modificación, presionar el botón de nueva entrada, introducir el contenido del registro con todos sus campos, presionar el botón para grabar y salir de la transacción.
Si representamos el código el procedimiento anteriormente descrito escribiríamos:
Para ingresar a la primera pantalla y presionar le boton mantenimiento.
* Primer pantalla
CLEAR st_bdc_data.
st_bdc_data-program = 'SAPMSVMA'.
st_bdc_data-dynpro = '0100'.
st_bdc_data-dynbegin = 'X'.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'VIEWNAME'.
st_bdc_data-fval = 'ZTABLA_USUARIOS'.
APPEND st_bdc_data TO ti_bdc_data.
* Presiono boton de mantenimiento
CLEAR st_bdc_data.
st_bdc_data-fnam = 'BDC_OKCODE'.
st_bdc_data-fval = '=UPD'.
APPEND st_bdc_data TO ti_bdc_data.
Nota: Por cada vez que se ingrese en la tabla BDCDATA, una nueva pantalla, debe ingresarse en BDC_OKCODE.
Luego presionamos el boton de Nuevas entradas.
* Presiono boton de nuevas entradas
CLEAR st_bdc_data.
st_bdc_data-program = 'SAPLZTABLA_USUARIOS'.
st_bdc_data-dynpro = '0001'.
st_bdc_data-dynbegin = 'X'.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'BDC_OKCODE'.
st_bdc_data-fval = '=NEWL'.
APPEND st_bdc_data TO ti_bdc_data.
Nota: Los numero de la dynpros siemore deben tener 4 digitos.
Después ingreso el registro del usuario.
CLEAR st_bdc_data.
st_bdc_data-program = 'SAPLZTABLA_USUARIOS'.
st_bdc_data-dynpro = '0001'.
st_bdc_data-dynbegin = 'X'.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-DNI'.
st_bdc_data-fval = st_usuarios-dni.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-NOMBRE_APE'.
st_bdc_data-fval = st_usuarios-nombre_ape.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-ESTADO_USU'.
st_bdc_data-fval = st_usuarios-estado_usu.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-DIRECCION'.
st_bdc_data-fval = st_usuarios-direccion.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-CODIGO_POSTAL'.
st_bdc_data-fval = st_usuarios-codigo_postal.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-FECHA_NAC'.
st_bdc_data-fval = st_usuarios-f_nacimiento.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'ZTABLA_USUARIOS-ESTADO_CIVIL'.
st_bdc_data-fval = st_usuarios-estado_civil.
APPEND st_bdc_data TO ti_bdc_data.
Nota: El código anterior está diseñado para dar de alta a un solo registro en la tabla de usuarios. Si quisieras ingresar más de un registro, vamos a tener que manejar un índice.
Por último grabamos y salimos de ambas pantallas.
* Grabo los Registros
CLEAR st_bdc_data.
st_bdc_data-fnam = 'BDC_OKCODE'.
st_bdc_data-fval = '=SAVE'.
APPEND st_bdc_data TO ti_bdc_data.
* Cierro la segunda pantalla
CLEAR st_bdc_data.
st_bdc_data-program = 'SAPLZTABLA_USUARIOS'.
st_bdc_data-dynpro = '0001'.
st_bdc_data-dynbegin = 'X'.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'BDC_OKCODE'.
st_bdc_data-fval = '=ENDE'.
APPEND st_bdc_data TO ti_bdc_data.
* Cierro la primer pantalla
CLEAR st_bdc_data.
st_bdc_data-program = 'SAPMSVMA'.
st_bdc_data-dynpro = '0100'.
st_bdc_data-dynbegin = 'X'.
APPEND st_bdc_data TO ti_bdc_data.
CLEAR st_bdc_data.
st_bdc_data-fnam = 'BDC_OKCODE'.
st_bdc_data-fval = '/EENDE'.
APPEND st_bdc_data TO ti_bdc_data.
 
 
 
Sobre el autor
Publicación académica de Edward Henry Rosario Piezal, en su ámbito de estudios para la Carrera Consultor ABAP.
Edward Henry Rosario Piezal
Profesión: Ingeniero en Sistema - Republica Dominicana - Legajo: FM99R
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Edward Rosario