✒️ABAP Las subrutinas y la grabación de datos de un BI
ABAP Las subrutinas y la grabación de datos de un BI
SUBRUTINAS Y GRABACION DE DATOS DE UN BI
1. UTILIZACION DE SUBRUTINAS EN UN BATCH INPUT.
Para hacer más simples la creación de un Batch Input, vamos a utilizar la subrutina BDC_FIELD, q nos va a permitir modularizar los programas.
Ej: La subrutina BDC_FIELD
* Form 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. "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:
Ej: Utilizamos la subrutina BDC_FIELD en nuestro código ABAP.
* Ingreso a la Primer pantalla y presiono botón de mantenimiento
PERFORM bdc_field USING 'X' 'SAPMSVMA' '0100'.
PERFORM bdc_field USING ' ' 'VIEWNAME' 'ZTABLA_USUARIOS' '0002'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=UPD'.
* Presiono boton de nuevas entradas
PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0002'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=NEWL'.
* Cargo datos del usuario
PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0002'.
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-F_NACIMIENTO' st_usuarios-f_nacimiento.
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
NOTA: En el ejemplo anterior, podemos ver lo importante q es la modularización en los programas Batch Input.
2. COMO OBTENER LOS DATOS NECESARIOS PARA LA CARGA DE LA TABLA BDCDAT
Vamos a explicar como obtener los valores q cargamos en la tabla interna BDCDATA. Para ella tomamos el ejemplo de la carga de la tabla BDCDATA, q vimos en la lección anterior.
Vamos a entrar a la transacción SM30, y recuperar los datos correspondientes a la primera pantalla. Existen varias formas de obtener información de una pantalla. Ellas son:
- Parándonos sobre un campo de entrada de datos, presionamos F1.
y luego hacemos click en el botón de información técnica. (dibujo martillo y otro)
Y veremos una ventana de dialógo con información relevante para el armado de la tabla BDCDATA, como es el nombre del programa, el nombre de la dynpro y el nombre del campo.
- Parándonos sobre un botón de la pantalla, en este caso Actual y presionamos F1 y veremos una ventana de dialógo con el nombre del programa y el código de función correspondiente al botón.
- 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 ejecución, la transacción, etc.
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 pasos q hacemos en la ejecución de las transacciones, mediante la transacción SM35.
Transacción SM35
La transacción SM35, conocida como "la grabadora", es utilizada para realizar la grabación de las sesiones de Batch Input q nos serán de gran utilidad a la hora de desarrollar nuestros programas.
Para realizar la grabación, presionamos el botón Grabación (Recording) en la pantalla Batch Input: Resumen de juegos de datos.
Luego el botón Grabación nueva (New Recording) en la pantalla Registro transacción: Resumen de grabación.
Y veremos la siguiente ventana de dialogo Crear grabación
- Grabación (Recording): aquí asignamos un nombre a la grabación.
- Código de Transacción (Transaction code): aquí ingresamos el nombre de la transacción.
El resto de las opciones, las dejamos como están y presionamos el botón Iniciar grabación (Start Recording).
Luego seguiremos la secuencia de pantallas hasta generar un registro en la tabla ZTABLA_USUARIOS, q finaliza presionando el botón grabar y saliendo de la transacción. Después de esto, veremos la siguiente pantalla ( Registro Transacción: Modificar grabación ZUSUARIOS1) con la grabación.
IMPORTANTE: Cuando estamos haciendo una grabación en la transacción SM35 y queremos ver el resultado de la misma, debemos presionar el botón grabar o el botón exit de la pantalla.
Si nos fijamos, la tabla con las columnas q visualizamos en la grabación tiene la misma estructura q 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 exportarla a un archivo o importar de un archivo una grabación.
Consideraciones especiales a tener en cuenta de las grabaciones q realizamos con la transacción SM35. Los eventos q se ejecuta al presionar F1 y F4 no son registrado en la grabación, los errores y warning tampoco son registrado en la grabación y en las pantallas los movimientos en el scrooll bar o barras de desplazamiento no son registrados en la grabación.
Por último, si volvemos para atrás, presionando el botón Back de la pantalla, veremos la grabación q acabamos de crear con cierta información de la misma en la pantalla Registro Transacción: Resumen de grabación.
Podremos ejecutar la grabación cuantas veces queramos, presionando el botón procesar y seleccionando la grabación de la pantalla. También es posible modificar una grabación creada para volver a ejecutarla.
 
 
 
Sobre el autor
Publicación académica de Mayra Maria Pino Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP.
Mayra Maria Pino Rodriguez
Profesión: Licenciada Cibernética Matemática - Republica Dominicana - Legajo: RA62Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Mayra Pino