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.
Dairo,
Excelente post, muy util y muy bien explicado y simple sobretodo. Gracias por compartir.
Saludos,
Carlos López
Gracias Carlos, espero que te sea útil.
Gracias por compartir este blog Dairo!
Con mucho gusto Pablo.
Magnífico aporte Dairo, muchas gracias!
Muy buen documento. Gracias por compartirlo!!!!
Saludos!!!!
Excelente blog, solamente un tema, como hago para ejecutar código luego de presionar el botón ?
Saludos y gracias por la info.
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?
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.