✒️ABAP La lógica de procesamiento en el PBO
ABAP La lógica de procesamiento en el PBO
Uniudad-2-Lección-4: Lógica de procesamiento en PBO
1) Creación de Módulos
En el flujo de la lógica de una dynpro utilizamos módulos para realizar el procesamiento. De lo anterior proviene el nombre de Module Pool.
Para llamar un módulo se utiliza la sentencia MODULE seguida del nombre del módulo que se desea llamar.
Si seleccionamos un módulo haciéndole doble-click, el sistema creara las instrucciones MODULE – ENDMODULE en el lugar donde le indiquemos.
Si creamos un módulo en el PBO, el código empezará con la sentencia MODULE OUTPUT.
SI lo hacemos en el PAI, las sentencia empezará con la sentencia MODULE INPUT.
2) Código ABAP en el PBO de una dynpro
Utilizaremos el evento PBO para seleccionar todos los datos y realizar las configuraciones que deseemos tomen efecto al momento en que se visualice la pantalla. Ejemplo de estas configuraciones pueden ser:
· 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.
A continuación veremos en detalle cada una de las acciones mencionadas.
3) Setear el Status GUI y los títulos
En el PBO es donde definiremos cual es el Status GUI y los títulos que se usarán en la dynpro. Para ello, dentro de la dynpro 0100 del programa ZPRUEBA_DIALOGO_FD38F_2 crearemos el módulo STATUS_0100 (la sentencia MODULE status_0100 ya viene comentada cuando creamos la dynpro).
Quitamos el comentario (*), hacemos doble-click en la sentencia y el sistema nos mostrará una pantalla preguntándonos si deseamos crear el módulo.
Contestamos que Sí y luego veremos la ventana donde elegiremos crear un include para almacenar el código PBO.
Tip: Tanto para los PBO como los PAI es recomendable crear un include para almacenar todos los módulos y subrutinas utilizadas para el PBO.
A continuación veremos el módulo con código comentado.
La sentencia SET PF-STATUS se utiliza para Setear el Status GUI y la sentencia SET TITLEBAR para Setear el título correspondiente a la dynpro 0100.
Nota (audio tip): Podemos armar un título usando variables. Estas pueden ser seteadas usando la sentencia SET TITLEBAR WITH. Se pueden usar hasta 9 variables en un título. Estas son sustituidas en el título de acuerdo a su numeración, o de no haberla, de izquierda a derecha, como si se tratara de un pase de parámetros a una subrutina. En tiempo de ejecución, el titulo se guardara en la variable del sistema SY-TITLE.
En ciertas ocasiones al momento de Setear un Status GUI no tiene sentido mostrar todos los botones del mismo.
Nota Recordatoria: Para utilizar las estructuras SLIS tenemos que agregar el TYPE-POOLS SLIS.
4) Modificación de los atributos de los campos de la pantalla
Los elementos que componen a una dynpro están almacenados en la estructura SCREEN. Esta es una palabra reservada de ABAP.
La estructura SCREEN es inicializada con los campos definidos en el Screen Painter, con sus atributos, cada vez que el módulo PBO es ejecutado.
Activamos o desactivamos los atributos de los campos de la estructura asignando 0 o 1. Para almacenar los valores asignados utilizamos la sentencia MODIFY SCREEN.
Si queremos hacer que un campo sea invisible, podemos utilizar el código siguiente:
LOOP AT SCREEN. IF screen-name = ‘WA_SCREEN_0100-DNI’. screen-invisible = 1. MODIFY-SCREEN. ENDIF. ENDLOOP.
|
OJO: Para que el campo sea visible, entonces INVISIBLE = 0.
Si queremos hacer que un campo sea obligatorio utilizamos el código:
LOOP AT SCREEN.
IF screen-name = ‘WA_SCREEN_0100-DNI’.
screen-required = 1.
MODIFY-SCREEN.
ENDIF.
ENDLOOP.
Si queremos hacer que un campo sea obligatorio utilizamos el código:
LOOP AT SCREEN.
IF screen-name = ‘WA_SCREEN_0100-DNI’.
screen-input = 0.
MODIFY-SCREEN.
ENDIF.
ENDLOOP.
Nota (Audio Tip): Si asignamos un uno al campo de la pantalla SCREEN-INTENSIFIED los contenidos de los campos de entrada de la pantalla se cambiarán de negro a rojo. El contenido de los campos de salida se cambiará de negro a azul. Mediante el atributo SCREEN-LENGHT podremos configurar la longitud de un campo de la pantalla con un valor menor a la longitud de salida del campo especificada de forma estática. Esto funciona para los campos de entrada-salida y solo salida. No se puede acortar otros elementos de la pantalla o alargar los elementos de la misma.
5) Cargar campos de una dynpro.
Para cargar un campo, una estructura o una tabla interna de 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 la pantalla.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez