✒️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 utilizamos la sentencia MODULE seguida del nombre del módulo.
- SINTAXIS: MODULE <"nombre del módulo"> MODULE cargar_campos_0100.
Al crear un módulo el sistema automáticamente agregará un bloque de instrucción MODULE - ENDMODULE y dependiendo de donde se haya creado el módulo tendrá como instrucción, ejemplo:
- PBO : MODULE <"nombre del módulo"> OUTPUT - ENDMODULE.
- PAI: MODULE <"nombre del módulo"> INPUT - ENDMODULE.
2.- Código ABAP en el PBO (Process Before Output) de una dynpro.
Usamos el evento PBO para seleccionar todos los datos y realizar las configuraciones que queremos que se muestren en pantalla. Entre otras acciones podemos usar.
- 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 Titulos.
En el PBO Process Before Output es donde vamos a definir: el Status GUI y los Titulos que utilizaremos en la dynpro.
- Para nuestro programa ZPRUEBA_DIALOGO_TA38Q dentro del PBO de la dynpro 0100, crearemos el módulo STATUS_0100.
- Damos doble clic sobre el módulo a crear, se abrirá una ventana donde preguntará si de seamos crearla, damos "SI", una vez que se elije el SI, se abrirá otra ventana de diálogo donde elegiremos crear un include para almacenar el código del PBO.
- SET PF-STATUS: Lo utilizamos para la declaración de un STATUS GUI dentro de un programa
- SET TITLEBAR: Lo utilizamos para setear el título en un programa en nuestro caso corresponde a la dynpro 0100.
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.
Sabías que: Cuando creamos una dynpro ya viene creado pero comentado el módulo que se utilizará para configurar el estatus gui y el título de la dynpro.
TIP: Podemos armar un título utilizando variables, estas pueden ser especificadas mediante la sentencia SET TITLEBAR <titlecode> WITH <var1> <var2>... <varN>., se pueden 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 titulo 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. Para lograr que no se muestren todos los botones, tenemos que agregar los nùmeros de códigos de los botones que no queremos mostrar a una tabla interna del tipo SLIS_T_EXTAB y al momento de ejecutar la sentencia SET PF-STATUS incluir esta tabla interna, como el siguiente ejemplo:
CLEAR ti_botones. REFRES ti_botones. APPEND 'BOTON2' TO ti_botones. APPEND 'BOTON3' TO ti_botones. SET PF-STATUS '0100' EXCLUDING ti_botones.
SLIS_T_EXTAB: Estructura estándar de SAP que se utiliza para la creaciòn de Titulos en los programas de diálogo.
SET PF-STATUS: Sentencia que se utiliza para la declaración de un STATUS GUI dentro de un programa.
Recordemos que para utilizar SLIS tendremos que agregar el TYPE-POOLS
SLIS: Grupo de tipos que contienen la declaracon de todas las estructuras y tablas estándar necesarias para crear un reporte ALV.
4.- Modificación de los atributos de los campos de la pantalla.
SCREEN: Palabra reservada que representa a la tabla interna que almacena los elementos que componen a una dynpro.
Screen Painter: Herramienta que se utiliza para la creaciòn de dynpros que se utilizarán en los programas de diálogo. Se accede a este herramienta mediante la transacciòn SE51 o desde la SE80.
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.
Estructura de SCREEN:
- 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.
Estos atributos de los campos de la estructura SCREEN se activan o desactivan asignandoles un 1 o un 0. Para almacenar los cambios realizados a los atributos utilizaremos la sentencia MODIFY SCREEN.
MODIFY SCREEN: Sentencia que se utiliza para modificar el contenido de la tabla SCREEN que almacenan los campos que componen a una dynpro de un programa.
Si queremos hacer un campo NO VISIBLE creamos un MODULO de la siguiente manera:
MODULE definir_atributos_0100 OUTPUT.
LOOP AT SCREEN.
IF screen-name EQ 'WA_SCREEN_0100-DNI'.
screen-invisble = 1. /* Hace el campo no visible*/
screen-input = 0. /*Hace el campo de solo salida*/
screen-required = 1 /*Hace al campo mandatorio u obligatorio*/
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
Audio TIP:
- SCREEN-INTENSIFIED: 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
- SCREEN-LENGTH: 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 estatica esto funciona para los campos entrada-salida y salida ,NO se pueden acortar o alargar otros elementos de la pantalla.
5.- Cargar campos de una dynpro
Para cargar un campo, estructura o tabla interna con datos y posteriormente mostrar estos datos en una dynpro, simplemente asignamos los datos a los campos de la dynpro en el PBO para que estos se vean reflejados en la pantalla.Ejemplo:
MODULE cargar_valores_0100 OUTPUT
wa_screen_0100-dni = 27865898
ENDMODULE.
 
 
 
Sobre el autor
Publicación académica de Gustavo Alberto Ramirez Franco, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Alberto Ramirez Franco
Profesión: Ingeniero en Sistemas Computacionales - Mexico - Legajo: TA38Q
✒️Autor de: 38 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Gustavo Ramirez