✒️ABAP Las subrutinas y la grabación de datos de un BI
ABAP Las subrutinas y la grabación de datos de un BI
La utilización 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, que nos van 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' 'ZCVS_USUARIOS'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=UPD'.
* Presiono boton de nuevas entradas
PERFORM bdc_field USING 'X' 'SAPLZCVS_USUARIOS' '0001'.
PERFORM bdc_field USING ' ' 'BDC_OKCODE' '=NEWL'.
* Cargo datos del usuario
PERFORM bdc_field USING 'X' 'SAPLZCVS_USUARIOS' '0001'.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-DNI' st_usuarios-dni.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-NOMBRE_APE' st_usuarios-nombre_ape.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-ESTADO_USU' st_usuarios-estado_usu.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-DIRECCION' st_usuarios-direccion.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-CODIGO_POSTAL' st_usuarios-codigo_postal.
PERFORM bdc_field USING ' ' 'ZCVS_USUARIOS-FECHA_NAC' st_usuarios-fecha_nac.
PERFORM bdc_field USING ' ' 'ZCVS_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' 'SAPLZCVS_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 modularización en los programas Batch Input.
¿Cómo obtener los datos necesarios para la carga de la tabla BDCDATA?
Vamos a explicar como 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 transacción SM30, y recuperar los datos correspondientes a la primer pantalla.
Existen varias formas de obtener información de una pantalla. Ellas son:
Presionamos F1 en el campo Tabla/Vista
Y luego hacemos clic en el botón de Información técnica [boton con las herramientas]
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 dynpro y el nombre del campo.
Visualizamos la información técnica de la dynpro
Parándonos sobre un botón de la pantalla presionamos F1:
Presionamos F1 sobre el botón Actualizar
Y veremos una ventana de diálogo con el nombre del programa y el código de función correspondiente al botón.
Visualizamos la información técnica del 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.
Información presente en todas pantallas de SAP
La grabación 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 que hacemos en la ejecución de las transacciones, mediante la transacción SM35.
Transacción SM35 (Administracion Batch Input)
La transacción estándar SM35, conocida como "la grabadora", es utilizada para realizar la grabación de las sesiones de
Batch Input que 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):
Luego el botón Grabación nueva (New Recording):
Y veremos la siguiente ventana de diálogo:
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,
que finaliza presionando el botón grabar y saliendo de la transacción. Después de esto, veremos la siguiente pantalla con la grabación.
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 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 exportarla a un archivo o importar de un archivo una grabación.
Por último, si volvemos para atrás, presionando 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 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 Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial