Close

febrero 27, 2014

Manejo de eventos en dynpros, Parte I

En este tema veremos como activar la barra de herramientas estándar de SAP y como procesar los eventos que se disparan cuando se hace clic sobre la barra de herramientas.

Primero necesitamos algún programa con algún dynpro y en el include Top vamos a declarar dos variables:

Ahora hacemos doble clic sobre el dynpro y en la pestaña Atrib.gral. encontraremos el elemento OK que es generado automáticamente en cada dynpro, a este le vamos a asociar la variable ok_code que declaramos previamente.

dynpro-variable-ok

Luego en la pestaña Log.proceso vamos a eliminar los comentarios de las lineas 3 y 6 y luego damos doble clic sobre cada una para crear los módulos STATUS_0001 y STATUS_0001, al hacerlo se nos preguntará en que Include crearlo, como regla general vamos a crear los módulos STATUS_xxxx en los include xxxx_o01 y los modulos USER_COMMAND_xxxx en los include xxxxx_i01

dynpro-module

Al crear el modulo STATUS_0001 debemos definir su PF-STATUS (barra de herramientas, y menú) y su TITLEBAR (barra de titulo)

dynpro-pf-status

Ahora al dar doble clic sobre el texto TITULO_01 podemos crear un objeto que contenga el titulo del dynpro. Para crear la barra de herramientas hacemos doble clic sobre el texto BARRA_HERRAMIENTAS.

Expandimos la sección Teclas de función y activamos el tercer botón asignándole un código, en este caso  ATRAS

dynpro-pf-status-activar

Luego en la pestaña Atrib.gral vamos a asociar la variable que declaramos como ok_code en el elemento OK, con esto haremos que cuando alguien de un clic sobre el botón de la barra de herramientas, SAP va a almacenar su código (ATRAS) en esta variable.

dynpro-ok

Ahora debemos ingresar un poco de codigo en el modulo que procesa las entradas del usuario, para esto hacemos doble clic sobre el nombre del modulo dentro del dynpro

dynpro-user-command

E ingresamos un poco de código en el modulo de forma que quede asi:

Lo primero que hacemos es guardar el valor de ok_code en una variable temporal y luego limpiarla para quedarnos trabajando con la variable temporal. Dentro de una sentencia CASE preguntamos si el valor que corresponde a la entrada del usuario es ATRAS entonces aplicamos el comando set screen ‘0’, que finaliza el programa.

Ahora podemos correr el programa y ver que el icono de la barra de herramientas se ha activado y podemos usarlo para cerrar nuestra aplicación.