✒️ABAP La lógica de procesamiento en el PBO
ABAP La lógica de procesamiento en el PBO
1 | La creación de módulos
En la flujo de la lógica de una dynpro utilizamos módulos para realizar el procesamiento. De aquí viene el hecho que a los programas de diálogo se los denomine 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 clic, el sistema creará las instrucciones MODULE - ENDMODULE en el lugar donde le indiquemos.
Si creamos un módulo en el PBO, el código del mismo empezará con la sentencia MODULE OUTPUT.
Si creamos un módulo en el PAI, el código del mismo comenzará con la sentencia MODULE INPUT.
2 | El 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 cualquiera de las siguientes acciones:
- 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 | El 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 utilizarán en la dynpro.
Para ello, dentro del PBO de la dynpro 0100 de nuestro programa ZPRUEBA_DIALOGO crearemos el módulo STATUS_0100.
Cuando creamos una dynpro ya viene creado pero comentado el módulo que se utilizará para configurar el status y el título de la dynpro.
Hacemos doble clic en el módulo y el sistema nos propondrá crearlo.
Contestaremos que sí y luego veremos 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 que el módulo tiene el siguiente código comentado.
Utilizaremos la sentencia SET PF-STATUS para setear el Status GUI y la sentencia SET TITLEBAR para setear el título correspondientes a la dynpro 0100.
AUDIO ACLARATIVO: Podemos armar un título utilizando variables, estas pueden ser especificadas mediante la sentencia SET TITTLEBAR WITH. Podemos usar hasta nueve 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-TITTLE.
En ciertas ocasiones al momento de setear un Status GUI podríamos no querer mostrar todos los botones del mismo. Por ejemplo, en el Status GUI que vemos a continuación, existen los botones BOTON1, BOTON2 y BOTON3.
Si solo quisiéramos 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.
Recordemos que para utilizar las estructuras SLIS tendremos que agregar el TYPE-POOLS SLIS.
4 | La 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. La palabra SCREEN es una palabra reservada en ABAP.
La estructura SCREEN es inicializada con los campos definidos en el Screen Painter y con sus atributos cada vez que el módulo PBO es ejecutado.
La estructura de SCREEN es la siguiente:
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-REQUIRED | Campo obligatorio |
SCREEN-INPUT | Campo de entrada |
SCREEN-OUTPUT | Campo de salida |
SCREEN-INTENSIFIED | Campo intensificado |
SCREEN-INVISIBLE | Campo visible o no visible |
SCREEN-LENGHT | 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.
AUDIO ACLARATIVO: Si asignamos un 1 al campo de la pantalla screening tensi fi. 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 scrin length. Podremos configurar la longitud de un campo de la pantalla con un valor menor a la longitud de salida del campo, especificada en 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 | ¿Cómo cargar campos de 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 la pantalla.
 
 
 
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte