✒️ABAP Las subrutinas y la grabación de datos de un BI
ABAP Las subrutinas y la grabación de datos de un BI
UTILIZACION DE SUBRUTINAS EN UN BATCH INPUT
Para hacer mas simple la creacion de un Batch Input, vamos a utilizar la subrutina BDC_FIELD, que nos va pemitir modularizar(se llama asi a la accion de pasar el codigo de un programa a subrutinas, para mejorar la lectura y mantenimiento futuro del mismo) los programas.
Ejemplo>
Forma bdc_field
-----------------------------------------
FORM bdc_field USING dyn_begin TYPE c
campo1.
campo2.
CLEAR st_bdc_data.
IF dyn_begin = 'X'.
st_bdc_data-program = campo1.
st_bdc_data-dynpro = campo2.
st_bdc_data-dynbegin = dyn_begin.
ELSE.
st_bdc_data-fnam= campo1.
st_bdc_data-fval = campo2.
ENDIF.
APPEND st_bdc_data TO ti_bdc_data.
ENDFORM.
LASUBRUTINA BDC_FIELD----------------------------------------------
si cambiamos el codigo de la leccion anterior, utilizando la subrutina BDC_FIELD, el mismo quedaria de la siguiente manera.
* Ingreso a la Primer pantalla y presiono boton de mantenimiento PERFORM bdc_field USING 'X' 'SAPMSVMA' '0100'. PERFORM bdc_field USING ' ' 'VIEWNAME' 'ZTABLA_USUARIOS'. PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=UPD'. * Presiono boton de nuevas entradas PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'. PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=NEWL'. * Cargo datos del usuario PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-DNI' st_usuarios-dni. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-NOMBRE_APE' st_usuarios-nombre_ape. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-ESTADO_USU' st_usuarios-estado_usu. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-DIRECCION' st_usuarios-direccion. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-CODIGO_POSTAL' st_usuarios-codigo_postal. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-FECHA_NAC' st_usuarios-fecha_nac. PERFORM bdc_field USING ' ' 'ZTABLA_USUARIOS-ESTADO_CIVIL' st_usuarios-estado_civil. * Grabo los Registros PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=SAVE'. * Cierro la segunda pantalla PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'. PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=ENDE'. * Cierro la primer pantalla PERFORM bdc_field USING 'X' 'SAPMSVMA' '0100'. PERFORM bdc_field USING ' ' 'BDC_OKCODE' '/EENDE'.En el ejemplo anterior, podemos ver lo importante que es la modularizacion en los programas Batch Input. COMO OBTENER LOS DATOS NECESARIOS PARA LA CARGA DE LA TABLA BDCDATA BDCDATA.Estructura estandar SAP que se utiliza para la carga de datos en un Batch Input. SM30.Actualizacion de vistas de tabla. Transaccion para la actualizacion de los registros de una tabla base de datos. Para poder actualizar una tabla , esta debe tener creada una superficie de actualizacion. Existen varias formas de obtener informacion de una pantalla , ellas son: -Parandonos sobre un campo de entrada de datos, presionamos F1 -Luego hacemos clic en el boton de informacion tecnica. -Veremos una ventana de dialogo con informacion relevante para el armado de la tabla BDCDATA, como es el nombre del programa, el nombre de la dynpro(es el sinonimo de pantalla dentro de SAP.Tiene asignado un numero compuesto por 4 digitos numericos) y el nombre del campo -Parandonos sobre un boton de la pantalla presionamos F1 -veremos una ventana de dialogo con el nombre del programa y el codigo de funcion correspondiente al boton. -en todas las pantallas de SAP, podemos visualizar en el extremo inferior derecho de las mismas, diferentes datos de la pantalla como ser el nombre del programa en ejecucion, transaccion,etc. GRABACION DE UN BATCH INPUT Otra forma mas eficiente de obtener los datos para la carga de la tabla BCDDATA, consiste en realizar una grabacion de los pasos que hacemos en la ejecucion de las transacciones, mediante la transaccion SM35(Transaccion estandar SAP que se utiliza para la grabacion de sesiones de datos de Batch Inputs,conocida como la grabadora,sera de gran utilidad a la hora de desarrollar nuestros programas) Para realizar la grabacion, presionamos el boton Grabacion (recording): Luego el boton grabacion nueva (New Recording): Grabacion(recording).aqui asignamos un nombre a la grabacion. Codigo de transaccion(transaction code). aqui ingresamos el nombre de la transaccion. El resto de las opciones, las dejamos como estan y presionamos el boton Iniciar grabacion(start recording) Luego seguiremos la secuencia de las pantallas hasta generar un registro en la tabla ZTABLA_USUARIOS, que finaliza presionando el boton grabar y saliendo de la transaccion. Cuando estamos haciendo una grabacion en la transaccion SM35 y queremos ver el resultado de la misma, debemos presionar el boton grabar o el boton exit de la pantalla. Podremos ejecutar la grabacion cuantas veces queramos , presionando el boton procesar y seleccionando la grabacion de pantalla, tambien es posible modificar una grabacion creada para volver a ejecutarla. Los eventos que se ejecutan al presionar F1 Y F4 no son registrados en la grabacion, los errores y warnings tampoco son registrados, los movimientos de scrollbar no son registrados en la grabacion.
 
 
 
Sobre el autor
Publicación académica de Marco Antonio Vazquez Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Marco Antonio Vazquez Gonzalez
Mexico - Legajo: RB98L
✒️Autor de: 60 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Marco Vazquez