Skip to Content
Author's profile photo DAIRO LEONARDO LOZANO RODRIGUEZ

Como agregar botones en transacciones estándar sin SCREEN EXITS


Recientemente tuve la solicitud de agregar un botón en una transacción estándar para lanzar un programa Z desde ella.   Lo lógico es buscar un USER EXIT o BADI que permita hacer la modificación, pero hay ocasiones en que la transacción no proporciona ninguna de las dos opciones.

Afortunadamente, el ENHANCEMENT FRAMEWORK ofrece una alternativa para casos como este. El ejemplo siguiente describe el procedimiento:

Supongamos que nos piden agregar un botón en la DYNPRO inicial de la transacción VL02N para desplegar un reporte Z y decidimos hacerlo mediante la implementación de un ENHANCEMENT.

En primer lugar identificamos el programa y la Dynpro que queremos modificar.  Para esto vamos al menú sistema y elegimos la opción status

En esta pantalla podemos ver que el programa correspondiente a la transacción es SAPMV50A con la Dynpro 4004 usando el Status GUI E0.

A continuación creamos una copia del status GUI E0 en un programa Z y le ponemos el nombre ZE0.  Una forma de hacerlo es mediante la transacción SE41:

En el nuevo status creamos el botón adicional.  Para el ejemplo lo llamamos BOTON_TEST

El paso siguiente es crear la ampliación ENHANCEMENT en la dynpro 4004.  Para ello buscamos el texto “pf-satus” en el programa SAPMV50A.

Vamos a la línea numerada con el 52 que es donde se asigna el status GUI por defecto E0 y creamos un enhancement en este objeto, teniendo cuidado de poner restricciones para que solo se active en el programa, la dynpro y bajo las condiciones que deseamos que se active:

Una vez activado el objeto de ampliación ejecutamos la transacción VL02N y veremos cómo se ejecuta la ampliación presentando en STATUS GUI personalizado en lugar del estándar incluyendo el nuevo botón.

Muchas gracias por su atención.  Espero que les sea de ayuda.

Assigned Tags

      9 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Carlos Lopez
      Carlos Lopez

      Dairo,

      Excelente post, muy util y muy bien explicado y simple sobretodo. Gracias por compartir.

      Saludos,

      Carlos López

      Author's profile photo DAIRO LEONARDO LOZANO RODRIGUEZ
      DAIRO LEONARDO LOZANO RODRIGUEZ
      Blog Post Author

      Gracias Carlos, espero que te sea útil.

      Author's profile photo Pablo Casamayor
      Pablo Casamayor

      Gracias por compartir este blog Dairo!

      Author's profile photo DAIRO LEONARDO LOZANO RODRIGUEZ
      DAIRO LEONARDO LOZANO RODRIGUEZ
      Blog Post Author

      Con mucho gusto Pablo.

      Author's profile photo J Francisco Fernandes
      J Francisco Fernandes

      Magnífico aporte Dairo, muchas gracias!

      Author's profile photo Luis Gijón
      Luis Gijón

      Muy buen documento. Gracias por compartirlo!!!!

      Saludos!!!!

      Author's profile photo Mayelis Rivero
      Mayelis Rivero

      Excelente blog, solamente un tema, como hago para ejecutar código luego de presionar el botón ?

      Saludos y gracias por la info.

      Author's profile photo Irving Alexis
      Irving Alexis

      Hello good afternoon.
      did you know how to execute the code?
      I'm stuck at the part of the search that gives the string 'pf-satus'.
      Could you help me please?

      Author's profile photo Irving Alexis
      Irving Alexis

      Hello, this type of information is excellent, I thank you very much.
      I have a question:
      With which transaction do I search for the string 'pf-satus'?
      From the search button I can't find it.