✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
EL CONCEPTO DE BATCH INPUT
Podremos dar de alta, modificar o borrar grandes cantidades de datos en el sistema, de forma automática y utilizando las mismas transacciones, con sus respectivas validaciones, tal como si lo hiciermaos manualmente de a 1 sato por vez.
carga inicial de datos: proceso que consiste en el ingreso de losdatos necesarios para el funcionamiento de una aplicacion en un ambiente del sistema. Generalmente, la carga inicial de datos se realizará levantnado los datos de un archivo, como se vio en la unidad anterior.
-----------------------------------------------------------------------
TECNICAS DE BATCH INPUT
Existen dos tecnicas para realizar batch iput, una Online y la otra Batch.
CALL TRANSACTION: Se realiza online por lo que ejecuta las actualizaciones en el momento en que se ejecuta el programa del batch input. Se utiliza la sentencia estandar 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 (grabar sesiones). Consiste en la ejecución de una serie de funciones estandar para la apertura, ejecución y cierre del juego de datos.
Como alternativa a las tecnicas de batch input existe el direct input o entrda directa los modulos de funciones de sap ejecutan las pruebas de consistencia tiene ventajas importantes en cuanto al performance pero ahi pocos programas para realizar direct input y se utilizan si cumplen con el objetivo del requerimiento, actualizan las tablas de base de datos de sap de forma directa como sabemos esta prohibido ya que los datos estandar de sap no se pueden actualizar de forma directa por que se pierde la consistencia y la seguridad de los datos los programas de direct input son la excepcion a la regla por lo tanto no es posible escribir prgramas abap z de direct input sino que debemos utilizar los ya existentes, pero por supuesto que si se pueden escribir programas abap para actualizar las tablas base de datos z teniendo en cuenta la consistencia y seguridad de los datos, sap ha creado programass de direct input en un esfuerzo de querer mejorar los procedimientos de batch input cuya velocidad de procesamiento es muy inferior al direct input la tecnica de direct input es ideal para la transferencia de grandes cantidades de datos para mantener e iniciar estos programas se utiliza la transaccion BMV0 ejemplos de programas son:
MODULO FI : RFBIBL00
MODULO MM: RMDATIND
MODULO SD: RVAFSS00
MODULO AM: RAALTD11
MODULO CO: RKEVEXTO
-------------------------------------------------------------------------------------------------
PASOS PARA LA CREACION DE UN BATCH INPUT
Depende de la tecnica
CALL TRANSACTION
1. DECLARACION DE DATOS PROPIOS DEL BATCH INPUT
2. LECTURA DE DATOS DE ARCHIVO DE ENTRADA
3. CARGA DE LA TABLA BDCDATA
4. EJECUCION DE LA SENTENCIA CALL TRANSACTION
ESTRUCTURA BDCDATA
ESTA ESTRUCTURA ESTANDAR DEL SISTEMA ES MUY UTILIZADA EN LOS BATCH INPUTS YA QUE DEFINE EL TIPO DEDATOS DE LA TABLA INTERNA QUE ALMACENA LOS DATOS QUE SE CARGARAN EN EL BATCH INPUT.
JUEGO DE DATOS
1. DECLARACION DE DATOS PROPIOS DEL BATCH INPUT
2. LECTURA DE DATOS DE ARCHIVO DE ENTRADA
3, APERTURA DE LA SESION DEL JUEGO DE DATOS
4. CARGA DE LA TABLA BDCDATA
5. INSERCION DEL JUEGO DE DATOS
6. CIERRE DE LA SESION DEL JUEGO DE DATOS
7. EJECUCION DEL JUEGO DE DATOS A TRAVES DE LA TRANSACCION SM35 O A TRAVES DE LA CREACION DE UN JOB Y LA EJECUCION DEL PROGRAMA ESTANDAR RSBDCBTC (PERMITE REALIZAR LA EJECUCION ONLINE DE UN JUEGO DE DATOS).
-------------------------------------------------------------------------------------------------------
CARGA DE LA TABLA BDCDATA
Paso mas importante
La tabla BDCDATA sera una tabla interna (es un objeto de datos que permite guardar en memoria grandes cantidades de datos) que tendrá los mismos campos que la estructura BDCDATA. Los campos que foraman parte de esta estructura son:
PROGRAM CHAR(40) : CONTENDRA EL NOMBRE DEL PROGRAMA ABAP QUE SE EJECUTA
DYNPRO NUMC(4) : CONTENDRA EL NUMERO DE LA DYNPRO O PANTALLA EN EJECUCION
DYNBEGIN CHAR(1): CONTENDRA UNA X CUANDO SE COMIENCE UNA NUEVA PANTALLA
FNAM CHAR(132) : CONTENDRA EL NOMBRE DEL CAMPO QUE SE DESEA CARGAR. ESTE CAMPO ES SENSIBLE A MAYUSCULAS Y MINUSCULAS
FVAL CHAR(132) : CONTNEDRA EL VALOR QUE SE DESEA CARGAR EN FNAM
POR CADA VEZ QUE SE INGRESE A LA TABLA BDCDATA, UNA NUEVA PANTALLA, DEBE INGRESARSE UN BDC_OKCODE.
LOS NUMEROS DE LAS DYNPROS SIEMPRE DEBEN TENER 4 DIGITOS.
*&---------------------------------------------------------------------* *& Report ZPRUEBA_ABAP_7_1 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZPRUEBA_ABAP_7_1. * Tabla del BI con la estructura de BDCDATA DATA: BEGIN OF ti_bdc_data OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA: END OF ti_bdc_data. * Estructura del BI DATA: st_bdc_data TYPE bdcdata. * Tabla de usuarios DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios, st_usuarios LIKE LINE OF ti_usuarios. *--------------------------------------------------------------------* START-OF-SELECTION. *--------------------------------------------------------------------* * 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. * 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. 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. * 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.
 
 
 
2 Agradecimientos:
Han agradecido este aporte: William Lemus, Yeffer Sierra Saenz
Sobre el autor
Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Guillermo Rodriguez Villate
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WM49P
✒️Autor de: 103 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Oscar Rodriguez