✒️ABAP La lógica de procesamiento en el PAI y la ejecución de las acciones
ABAP La lógica de procesamiento en el PAI y la ejecución de las acciones
- LÓGICA DE PROCESAMIENTO PAI: EJECUCIÓN DE LAS ACCIONES
- EJECUCIÓN CONDICIONADA DE MÓDULOS
ON INPUT: Con la validación FIELD vCampo MODULE vFuncion ON INPUT, el módulo es ejecutado sólo si el campo en cuestión contiene un valor diferente al inicial. También con CHAIN así CHAIN. FIELD vCampo1,...vCampon. MODULE <módulo> ON CHAIN-INPUT. ENDCHAIN.
ON REQUEST: El módulo es ejecutado sólo si el campo contiene una nueva entrada. La sintaxis es igual que ON INPUT, cambiando INPUT por REQUEST. La diferencia con ON INPUT es que si el usuario sobreescribe el campo e indica el valor inicial también es ejecutado ya que se trataría de una nueva entrada.
AT EXIT-COMMAND: Para que el usuario pueda salir de la pantalla sin necesidad de pasar las validaciones automáticas, por ejemplo con los botones back, exit y cancel de la barra de herramientas. Esto lo meteremos en la instrucción MODULE. MODULE <módulo_ABAP> AT EXIT-COMMAND. Para poder usar AT EXIT-COMMAND en una botón de campo, será necesario asignar el valor E en el atributo de campo "Tipo función" del editor de pantallas. en el módulo que llamamos tenemos que añadir las sentencias para salir de la transacción o de la pantalla. Por ej/ LEAVE TO SCREEN 0
- TRATAMIENTOS DE LOS CÓDIGOS DE FUNCIÓN
Al pulsar un botón, tecla de función, punto de menú, pushbutton, icono o la tecla enter, los datos introducidos se pasan a los módulos definidos en el evento PAI para ser procesados junto con el código de función asociado a cada elemento.
Para realizar el tratamiento de la función OK_CODE que viene en todas las Module Pool usaremos el módulo USER_COMMAND que deberá ser el último del evento PAI, se procesará una vez validado correctamente toda la pantalla y borrará el contenido del OK_CODE, iniciando la dynpro para la próxima ejecución.
Diferencias SY-UCOMM y OK_CODE
SY-UCOMM: Variable del sistema usada principalmente en los menús y que contiene la última acción ejecutada por el usuario.
OK_CODE: Es una variable que se declara en los programas ABAP, es del tipo SY-UCOMM y que se usa en las pantallas. Actúa como una variable temporal que almacena el valor de sy-ucomm.
Cuando el usuario interactua con los elementos de la pantalla el código de función asignada a estos se almacena en el SY-UCOMM que a su vez se refleja en el OK_CODE. En nuestros programas ABAP debemos usar el OK_CODE, ya que OK_CODE lo podemos inicializar y SY-UCOMM al ser una variable de sistema no la podemos tocar.
- SECUENCIA DINÁMICA DE LAS PANTALLAS
Podemos controlar la secuencia de ejecución de las diferentes dynpros de un Module pool tenemos las instrucciones:
- SET SCREEN <núm. dynpro>, para pasar a la dynpro indicada cuando se termine de procesar la dynpro actual.
- LEAVE SCREEN, al encontrar esta instrucción termina la ejecución de la pantalla actual. Se ejecuta inmediatamente la siguiente pantalla.
- LEAVE TO SCREEN <Núm. dynpro>, termina procesamiento de la pantalla actual y ejecuta la pantalla indicada.
- CALL SCREEN NúmDynpro, interrumpe el procesamiento de la pantalla actual y procesa la indicada y sus subsecuentes.
- LEAVE PROGRAM, para salir de todo el programa.
SET SCREEN 0, LEAVE SCREEN, LEAVE TO SCREEN 0 vuelven el control al lugar donde se hizo CALL SCREEN. Si estas se usan en la primera dynpro, el programa termina.
Con CALL SCREEN vNúmDynpro STARTING AT vPos1 vPos2 ENDING AT vPos3 vPos4. especificamos posición y tamaño
 
 
 
Sobre el autor
Publicación académica de Ignacio Mart?n Bolumar, en su ámbito de estudios para la Carrera Consultor ABAP.
Ignacio Mart?n Bolumar
Profesión: Ingeniero Inform?tico - Espa?a - Legajo: ZL84Z
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Ignacio Mart?n