Un programa de diálogo está compuesto por dynpros. La lógica de procesamiento de cada dynpro cumple con una metodología muy particular que consiste en la ejecución de dos eventos:
El PAI es el evento que se ejecuta luego de introducidos los datos en la dynpro y realizada alguna acción sobre ella, como puede ser presionar un botón.
Aquí lo que haremos será validar los datos ingresados en la pantalla y luego tomar alguna acción en base a nuestras validaciones que puede ser emitir un mensaje de error por pantalla o seguir el flujo del procesamiento hacia otra dynpro.
Es la cláusula ABAP que se utiliza para en la sentencia CHAIN-ENDCHAIN para procesar un módulo si alguno de los campos de la pantalla dentro de la sentencia CHAIN-ENDCHAIN contiene un valor distinto del inicial.
Veamos un ejemplo de su utilización:
CHAIN.
FIELD: v_campo1,v_campo2,v_campo3 MODULE ejecutar ON CHAIN-INPUT.
MODULE ejecutar2.
ENDCHAIN.
En el ejemplo anterior la ejecución del MODULE ejecutar, estará condicionada a que alguna de los campos v_campo1 o v_campo2 o v_campo3 cambian su valor.
En cambio el MODULE ejecutar2 se ejecutará siempre, sin ninguna condición.
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 CHAIN-ENDCHAIN se debe usar la instrucción ON CHAIN-INPUT. Entonces, el módulo es procesado solamente si al menos uno de los campos de la pantalla en la sentencia CHAIN-ENDCHAIN contiene un valor diferente al valor inicial.
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 CHAIN-ENDCHAIN, se debe usar la instrucción ON CHAIN-REQUEST. Entonces, el módulo concerniente es procesado solamente si al menos uno de los campos de pantalla de la sentencia CHAIN-ENDCHAIN tiene una nueva entrada.