✒️ABAP La lógica de procesamiento en el PBO
ABAP La lógica de procesamiento en el PBO
Lògica de procesamiento en PBO.
1.- Creaciòn de Mòdulos: Se utilizan mòdulos para realizar el procesamiento de la lògica de una dynpro. Por ese motivo a los programas de diàlogo se los denomina Module Pool.
Para llamar a un mòdulo utilizaremos la sentencia MODULE seguida del nombre del mòdulo.
MODULE cargar_campos_0100.
Si seleccionamos un mòdulo con doble click, el sistema crearà las instrucciones MODULE ENDMODULE en el lugar donde le indiquemos. Si creamos el mòdulo en el PBO, el còdigo del mismo empezarà con la sentencia MODULE cargar_campos_0100 OUTPUT.
ENDMODULE.
Si creamos un mòdulo en el PAI, el còdigo del mismo comenzarà con la sentencia:
MODULE user_comand_0100 INPUT.
ENDMODULE.
2.- Còdigo abap en el PBO de una dynpro.
Utilizaremos el evento PBO para seleccionar todos los datos y realizar las configuraciones que queremos que tomen efecto al momento en que se visualice la pantalla. Esto puede incluir entre otras cosas:
- Setear el Status GUI y los tìtulos de la dynpro
- Modificar los atributos de los campos de la dynpro
- Inicializar o cargar campos de la pantalla con determinados valores.
3.- Seteo del Status GUI y de los Tìtulos.
En el PBO es donde definiremos cual es el Status GUI y los tìtulos que se utilizaran en la dynpro.
Para ello, dentro del PBO de la dynpro 0100 del programa ZPRUEBA_DIALOGO_TF64C se crearà el mòdulo STATUS_0100.
PROCESS BEFORE OUTPUT.
MODULE status_0100.
"Cuando creamos una dynpro ya viene creado pero comentado el mòdulo que se visualizarà para configurar el status y el tìtulo de la dynpro"., al hacer doble click, el sistema nos propondrà crearlo; contestamos que sì y se despliega la ventana de diàlogo en donde elegiremos crear un include para almacenar el còdigo del PBO.
"Es ampliamente recomendable crear un include para almacenar todos los mòdulos y subrutinas que utilizamos en la lògica de procesamiento del PBO
Este mismo razonamiento aplica para el PAI y todas las declaraciones de datos que utilicemos en un programa de diàlogo".
Luego veremos el siguiente còdigo:
module STATUS_0100 output.
* SET PF-STATUS 'XXXXXX'.
* SET TITLEBAR 'xxx'.
endmodule.
Utilizamos la sentencia SET PF-STATUS para setear el Status GUI y la sentencia SET TITLEBAR par setear el tìtulo correspondiente a la dynpro 0100.
module STATUS_0100 output.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
endmodule.
Podemos armar un tìtulo utilizando variables estas pueden ser especificadas mediante las sentencias SET TITLEBAR WITH, podemos usar hasta 9 variables en un tìtulo estas son sustituidas en el tìtulo de acuerdo con su numeraciòn o de no haberla, de izquierda a derecha como si se tratara de un paso de paràmetros a una subrutina, en tiempo de ejecuciòn el tìtulo del menù se guardarà en la variable del sistema sy-title.
En ocasiones al momento de setear un Status GUI podrìamos no querer mostrar todos los botones del mismo. Por ejemplo, en el Status GUI tenemos los botones BOTON1 BOTON2 BOTON3. Si solo quisièrmos mostrar el BOTON1, tendrìamos que agregar los còdigos de los botones que no queremos mostrar a una tabla interna del tipo SLIS_T_EXTAB y luego al momento de ejecutar la sentencia SET PF-STATUS incluir esta tabla interna de la siguiente manera.
CLEAR ti:botones.
REFRESH ti_botones.
APPEND 'BOTON2' TO ti_botones.
APPEND 'BOTON3' TO ti_botones.
SET PF-STATUS '0100' EXCLUDING ti_botones.
Para utlizar las estructuras SLIS se debe agregar el TYPE-POOLS_SLIS.
4.- Modificaciòn de los atributos de los campos de pantalla.
Los elementos que componen una dynpro estàn almacenados en la estructura SCREEN. La palabra SCREEN es una palabra reservada en ABAP.
La estructura de SCREEN es la siguiente.
Campo Descripciòn
SCREEN-NAME Nombre del campo
SCREEN-GROUP1 Grupo de modificaciòn 1
SCREEN.GROUP2 Grupo de modificaciòn 2
SCREEN-GROUP3 Grupo de modificaciòn 3
SCREEN.GROUP4 Grupo de modificaciòn 4
SCREEN-REQUERID Campo obligatorio
SCREEN-INPUT Campo de entrada
SCREEN-OUTPUT Campo de salida
SCREEN-INTENSIFIED Campo intensificado
SCREEN-INVISIBLE Campo visible o no visible
SCREEN-LENGTH Longitud del campo
SCREEN-ACTIVE Campo activo
SCREEN-DISPLAY_3D Campo en 3D
SCREEN-VALUE_HELP Campo con ayuda de bùsqueda
SCREEN-REQUEST Campo reservado para uso interno del sistema.
Activaremos o desactivaremos los atributos de los campos de la estructura SCREEN asignando valores 0 o 1. Para almacenar los cambios realizados a los atributos, utilizaremos la sentencia MODIFY SCREEN
si se tiene una dynpro con el campo de entrada/salida WA_SCREEN_0100-DNI.
Si queremos hacer no visible al campo, crearìamos un mòdulo en el PBO con el siguiente còdigo:
MODULE definir_atributos_0100 OUTPUT.
LOOP AT SCREEN.
IF screen-name EQ 'WA_SCREEN_0100-DNI'.
screen.invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
Vale mencionar que para que e campo sea visible el atributo INVISIBLE debe ser cero.
Si quisièramos no permitir la entrad de datos en el campo WA_USUARIOS_100-DNI, es decir convertirlo en un campo de salida, Crearìamos un mòdulo en el PBO con el siguiente còdigo.
MODULE definir_atributos_0100 OUTPUT.
LOOP AT SCREEN.
IF screen-name EQ 'WA_SCREEN_0100-DNI'.
screen.input = 1.
screen-requerid = 1 " para que el campo sea obligatorio
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
5.- Cargar campos en una dynpro.
Para cargar un campo, estructura o tabla interna con datos y luego mostrar dichos datos en una dynpro, simplemente tendremos que asignar los datos a los campos de la dynpro en el PBO para que luego los mismos se vean reflejados en a pantalla.
MODULE cargar_valores_0100 OUTPUT.
wa-screen_0100-dni = 23456789.
ENDMODULE.
 
 
 
Sobre el autor
Publicación académica de Miguel Angel Acosta Acosta, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Angel Acosta Acosta
Profesión: Ingeniero de Sistemas - Ecuador - Legajo: TF64C
✒️Autor de: 238 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial
- Máster ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Profesional de ingeniería de sistemas en computación e informática, con experiencia en la implantación y soporte de proyectos informáticos para empresas del sector industrial y financiero.
Certificación Académica de Miguel Acosta