✒️ABAP La lógica de procesamiento en el PBO
ABAP La lógica de procesamiento en el 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 ahí que a los programas de diálogo se les 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 tal como vemos a continuación
- PBO: MODULE <"nombre del módulo"> OUTPUT - ENDMODULE.
- PAI: MODULE <"nombre del módulo"> INPUT - ENDMODULE.
2. Código ABAP en el PBO de una dynpro
Utilizamos 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 entrar otras cosas cualquieras 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.
Definición de estos ítems:
3. Seteo del Status y de los títulos
En el PBO es donde definiremos cual es el Status GUI y los Títulos que utilizaremos en la dynpro.
Para ello, dentro del PBO de la dynpro 0100 de nuestro programa ZPREUBA_DIALOGO creamos el módulo STATUS_0100 tal como vemos a continuación.
Sabías que: Cuando creamos una dynpro ya viene creado pero comentamos 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 dialogo en donde elegiremos crear un Include para almacenar el código del PBO.
Recuerda: Es ampliamente recomendable crear un Include para almacenar todos los módulos y subrutinas que utilizamos en la lógica de procesamiento del PBO, PAI y todas las declaraciones de datos que utilicemos en un programa de diálogo.
Luego veremos que 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 titulo correspondiente a la dynpro 0100 tal como vemos a continuación
Audio tips: Podemos utilizar un título utilizando variables, estas pueden ser especificadas SET TITLEBAR – WITH podemos usar hasta 9 variables en un título estas son substituidas en el título de acuerdo con su numeración o simplemente de izquierda a derecha de NO existir dicha numeración, como si se tratara de un paso de parámetros a una subrutina, en tiempos de ejecución el título del menú se guardará en la variable del sistema SY-TITLE
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 de la siguiente manera.
Recordemos que para utilizar las estructuras SLIS tendremos que agregar el TYPE-POOLS SLIS.
4. Modificación de los atributos de los campos de la pantalla.
Los elementos que componen una dynpro están en la estructura SCREEN, esta es una palabra reservada en ABAP
Esta estructura SCREEN es inicializada con los campos definidos en el Screen Painter u con atributos cada vez que el módulo PBO es ejecutado.
La estructura SCREEN es:
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-INTENSIFIED Campo Intensificado.
SCREEN-INVISIBLE Campo invisible o no invisible.
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 almacenas los campos realizados a los atributos la sentencia MODIFY SCREEN.
Veamos algunos Ejemplos:
Si tenemos una dynpro con el campo de entrada/salida WA_SCREEN_0100_DNI con el siguiente:
Y queremos hacer no visible el campo, crearíamos un módulo en el PBO con el siguiente código:
Vale mencionar que para que el campo sea visible el atributo INVISIBLE debe ser cero.
Si quisiéramos no permitir la entrada de datos en el campo WA_USUARIOS_0100_DNI, es decir convertirlo en un campo de salida, crearíamos un módulo en PBO con el siguiente código.
Vale mencionar que para el campo sea de entrada el atributo INPUT debe ser 1.
Si queremos que el campo WA_USUARIOS_DNI sea obligatorio, crearíamos un módulo en el PBO con el siguiente código:
· Audio Tips: Si agregamos un 1 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 y Mediante el atributo screen-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 entrada-salida y salid, no se pueden acortar o alargar otros elementos de la misma.
5. 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 Jhon Deibys Cano Pineda, en su ámbito de estudios para la Carrera Consultor ABAP.
Jhon Deibys Cano Pineda
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WZ11E
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jhon Cano Pineda