![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️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
![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](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/292.jpg)
Logica de procesamiento en PAI: Ejecucion de las acciones
1. Ejecución condicionada de módulos
Si especificamos la cláusula ON INPUT después de MODULE en una instrucción FIELD, el módulo es ejecutado solamente si el campo en cuestión contiene un valor diferente al valor inicial.
En la sentencia CHAINENDCHAIN se debe usar la instrucción ON CHAININPUT. Entonces, el módulo es procesado solamente si al menos uno de los campos de la pantalla en la sentencia CHAINENDCHAIN contiene un valor diferente al valor inicial.
Nota: Se puede usar la adición ON INPUT solamente si la instrucción MODULE es especificada dentro de una instrucción FIELD.
Si se especifica la cláusula ON REQUEST después de MODULE en una instrucción FIELD, el módulo es ejecutado únicamente si el campo tiene una nueva entrada.
En la sentencia CHAINENDCHAIN, se debe usar la instrucción ON CHAINREQUEST. Entonces, el módulo concerniente es procesado solamente si al menos uno de los campos de pantalla de la sentencia CHAINENDCHAIN tiene una nueva entrada.
Nota: Se puede usar la adición ON REQUEST solamente si la instrucción MODULE es especificada dentro de una instrucción FIELD.
3. Secuencias dinamica de las pantallas.
En un programa de diálogo o también llamado transacción de diálogo podemos controlar la secuencia de ejecución de cada una de las dynpros que componen a la transacción.
Existen dos instrucciones que nos permitirán pasar a otra dynpro existente dentro del mismo programa. La primera de ellas es la instrucción SET SCREEN que tiene la siguiente sintaxis: SET SCREEN <nro_pantalla>.
La instruccion SET CCREEN reescribe temporalmente la siguiente pantalla a procesar. La pantalla siguiinte debe ser una pantalla del mismo Module Pool.
La pantalla siguiente es procesada después de procesar la pantalla actual o al menos que se termina la ejecución de la pantalla actual con la instrucción LEAVE SCREEN. Al encontrar esta instrucción, se ejecuta la pantalla siguiente en forma inmediata.
Si se desea terminar el procesamiento de la pantalla actual e ir directamente a la pantalla siguiente en una sola instrucción, se puede usar la sentencia LEAVE TO SCREEN tal como vemos a continuación.
LEAVE TO SCREEN <nro_pantalla>.
LA instruccion CALL SCREEN interrumpe el procesamiento de la pantalla actual para procesar la pantalla X y las pantallas subsecuentes. CALL SCREEN 0200.
Cualquiera de las instrucciones: SET SCREEN 0, LEAVE SCREEN, LEAVE TO SCREEN 0, regresa el control al lugar donde fue ejecutada la instrucción CALL SCREEN.
Si se usa cualquiera de las instrucciones anteriores cuando no se esta en el modo de llamada, es decir cuando no se cedió el control a otra dynpro del programa, entonces el programa termina.
Usando las cláusulas STARTING AT y ENDING AT en la instrucción CALL SCREEN, se puede especificar la posición y el tamaño de la pantalla a llamar. Veamos el siguiente ejemplo:
CALL SCREEN 0200 STARTING AT 5 1 ENDING AT 130 25.
 
 
 
Sobre el autor
Publicación académica de Edward Henry Rosario Piezal, en su ámbito de estudios para la Carrera Consultor ABAP.
Edward Henry Rosario Piezal
Profesión: Ingeniero en Sistema - Republica Dominicana - Legajo: FM99R
✒️Autor de: 68 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime