✒️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
Unidad 2: La programación de diálogo
Lección 6: La lógica de procesamiento en el PAI y la ejecución de las acciones
Ejecución condicionada de módulos:
Si ponemos la cláusula ON INPUT luego del MODULE en la instrucción FIELD, el mód es ejecutado solo si el campo en cuestión contiene un valor diferente al inicial.
Se puede usar ON INPUT solo si la instrucción MODULE es especificada dentro de una instrucción FIELD.
En la sentencia CHAIN-ENDCHAIN se usa la instrucción ON CHAIN-INPUT. Entonces el mód es procesado solo si al menos uno de los campos de la pantalla de la sentencia CHAIN tiene un valor diferente al inicial.
Si se especifica la cláusula ON REQUEST luego de MODULE en la instrucción FIELD, el mód. se ejecuta solo si el campo tiene una nueva entrada.
Solo se puede usar ON REQUEST si el MODULE está dentro de FIELD.
En CHAIN-ENDCHAIN, se usa la instrucción ON CHAIN-REQUEST. El mód. concerniente es procesado solo si al menos uno de los campos de pantalla de la sentencia CHAIN tiene una nueva entrada:
Puede pasar que el usuario quiera salir de las validaciones automáticas usando las funciones estandar BACK. EXIT o CANCEL. Eneste caso usamos la cláusula AT-EXIT-COMMAND de la instrucción MODULE.
Su sintaxis es:
Para poder usar un AT EXIT-COMMAND, en un botón de campo, es necesario asignar el valor E en el atributo de campo Tipo función del editor de pantallas-.
En el mód. que llamamos incluiremos las instrucciones necesarias para poder salir de la trans. o pantalla en proceso.
Tratamiento de los códigos de función:
Cuando el usuario de una trans. de diálogo pulse una tecla de func. pushbotton, icon o ENTER, los datos puestos se pasan a los mód. definidos en el PAI para ser procesados junto a un cód. de unc. que indicará que func. solicitó el usu.
Siempre que definamos una dynpro creamos el campo del tipo cód. de función denominado OK_CODE.
En la lógica de procesamiento de cada dynpro. tenemos que hacer el tratamiento del OK_CODE. Para ello, usaremos el mód. USER_COMMAND que deberá ser el último del evento PAI, es decir, se ejecutará una vez que todos los datos de entrada han sido validados.
Módulo USER_COMMAND:
Cuando ya se procesó el mód. de func. borramos el contenido del OK_CODE, inicializándolo para la prox. dynpro.
Podemos guardar el contenido del OK_CODE en una variable intermedia e inicializarlo inmediatamente.
El tipo de variable V_UCOMM es:
Diferencia entre SY-YCOMM y el OK_CODE en un programa de diálogo:
- SY-UCOMM se usa principalmente en los menús y contiene la última ejecución hecha por un usuario.
- El OK_CODE, se declara en los programas que es del tipo SY-UCOMM y se usa generalmente en las pantallas.
- El OK_CODE, actúa solamente como una variable temporal que almacena el valor del SY-UCOMM.
- En los programas que hagamos, tenemos que trabajar con el OK_CODE, no con el SY-UCOMM porque:
El programa tiene el control total sobre los campos declarados en el.
Nunca cambiar el valor de una variable del sistema.
Secuencia dinámica de las pantallas:
En un programa de diálogo/transacción de diálogo, podemos controlar la secuencia de ejecución de cada dynpro que compone la trans.
Existen dos instrucciones que permitirán pasar a otra dynpro existente dentro del mismo programa:
La instrucción SET SCREEN "SET SCREEN <nro_pantalla>."
- Ésta reescribe temporalmente la sig. pantalla a procesar. La prox. pantalla debe ser una del mismo Module Pool.
- La sig. pantalla es procesada luego 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 ejecutar esta instrucción, se ejecuta la pantalla sig. inmediatamente.
- Si se quiere terminar el procesamiento de la pantalla actual e ir directamente a la sig. pantalla en una sola instrucción, usamos la sentencia LEAVE TO SCREEN "LEAVE TO SCREEN <nro_pantalla>."
La instrucción CALL SCREEN:
- Interrumpe el procesamiento de la pantalla actual para procesar la pantalla X y las pantallas subsecuentes.
- Su sintaxis "CALL SCREEN 0200"
- La pantalla que se llama con esta instrucción, debe pertenecer al mismo Module Pool.
- 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, entonces el programa termina.
- Usando las cláusulas STARTING AT y ENDING AT, se puede especificar la posición y el tamaño de la pantalla a llamar. Por ej:
- Si la pantalla aparece incompleta, se incluye en la misma una barra de desplazamiento
 
 
 
Sobre el autor
Publicación académica de Candela Estefan?a Calzada, en su ámbito de estudios para la Carrera Consultor ABAP.
Candela Estefan?a Calzada
Profesión: T?cnica Electr?nica - Argentina - Legajo: JW91W
✒️Autor de: 160 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me encuentro estudiando la ingenier?a en sistemas de informaci?n. poseo amplia experiencia en edici?n de videos. tengo bases entorno a la programaci?n que quiero continuar consolidando.
Certificación Académica de Candela Calzada