✒️ABAP Las subrutinas y la grabación de datos de un BI
ABAP Las subrutinas y la grabación de datos de un BI
1. Utilizacion de subrutinas en un Batch Input
Para hacer más simple la creación de un batch input vamos a utilizar la subrutina bdc_field qué nos va a permitir modularizar los programas.
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. " bdc_field
Si cambiamos el código de la lección anterior, utilizando la subrutina BDC_FIELD, el mismo quedaría 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'.Nota: En el ejemplo anterior podemos ver lo importante que es la modularización de los programas batch input.
2. Cómo obtener los datos necesarios para la carga de la tabla bdcdata?
Vamos a explicar cómo obtener los valores que cargamos en la tabla interna BDCDATA. Para ello tomamos El ejemplo de la carga de la tabla BDCDATA, que vimos en la lección anterior.
Vamos a entrar a la transaccion sm30 y recuperar los datos correspondientes a la primera pantalla existen varias formas de obtener información de una pantalla ellas son:
- Parandanos sobre un campo de entrada de datos presionamos F1 y luego hacemos clic en información técnica y veremos una ventana de diálogo con información relevante para el armado de la tabla BDCDATA, como es el nombre del programa, el nombre de la dynpros y el nombre del campo.
- Parando no sobre un botón de la pantalla presionamos F1 y veremos una ventana de diálogo con el nombre del programa y el código de función correspondiente al botón.
- En todas las pantallas de ese SAP podemos visualizar en el extremo inferior derecho de la misma, diferente datos de la pantalla como el nombre del programa en ejecución, la transacción etcétera
3. Grabacion de un Batch Input.
otra forma más eficiente de obtener los datos para la carga de la tabla BDCDATA, consiste en realizar una grabación de los datos pasos que hacemos a la ejecución de las transacciones mediante la transacción SM35.
Nota: La transación estándar SM35 conocida como "la grabadora", es utilizada para realizar la grabación de las secciones del que nos será de Gran utilidad a la hora de desarrollar nuestros programas.
Para realizar la grabación presionamos el botón grabación, luego el botón grabación nueva, y en la siguiente ventana de diálogo:
- En grabación aquí asignamos un nombre a la grabación.
- En código de transacción aquí ingresamos el nombre de la transacción.
El resto de la opciones la dejamos como están y presionamos el botón iniciar grabación.
Luego seguimos la secuencia de pantalla hasta generar un registro en la tabla ZTABLA_USUARIOS, que finaliza presionando el botón grabar y saliendo de la transacción. Si nos fijamos la tabla con la columna que visualizamos en la grabación tiene la misma estructura que la tabla BDCDATA.
luego si presionamos el botón grabar, la grabación quedará almacenada en el sistema para consultarla mientras hacemos el Batch Input. También es posible exportar a un archivo o importará de un archivo de grabación
Por último si volvemos para atrás presionamos el botón Back de la pantalla, veremos la grabación que acabamos de crear con cierta información de la misma.
Podremos ejecutar la grabación cuántas veces queramos presionando el botón procesar y seleccionando la graduación de la pantalla también es posible modificar una grabación creada para volver a ejecutarla.
Nota Importante: Algunas consideraciones especiales a tener en cuenta de las grabaciones que realizamos con la transacciones SM35. Los eventos que se ejecutan al presionar F1 y F4 no son registrados en la grabación. Los errores y warning tampoco son registrados en la grabación, y en las pantallas los movimientos en la barra de desplazamiento no son registrados en la grabación.
 
 
 
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