Truco 123. Encontrar la ayuda de búsqueda asociada a un campo en cualquier transacción. Buscar cadenas en el código abap.


Hoy os voy a compartir un par de trucos más técnicos, que seguramente puedan ser de utilidad a la gente que hace desarrollos, aunque también a los consultores funcionales que estan preparando especificaciones para desarrollos a medida o ampliaciones del estandar.

Encontrar la ayuda de búsqueda asociada a cualquier transacción.

Empecemos con las ayudas de búsqueda. Como sabeís, en el estandar tenemos multitud de ayudas de búsqueda o matchcodes, que nos permiten buscar los valores de datos maestros, organizativos o de documentos cuando estamos realizando algún proceso funcional. Cuando nos posicionamos en un campo, pulsando F4 o el icono de acceso a la ayuda, el sistema nos muestra un dialogo con una o varias ayudas de búsqueda (ayuda compuesta), la cual nos permite filtrar en el elemento, localizar los valores y llevarnos uno o varios de ellos a la transacción en la que nos encontremos.

En muchas ocasiones, estas ayudas estandar no son suficientes y necesitamos ampliarlas con nuestras propias ayudas. En un post anterior en el blog, hablamos de como realizar esta tarea de ampliación. Ahi explicamos todos los pasos para hacerlo.

El principal problema con el que nos solemos encontrar para ampliar una ayuda de búsqueda estandar es localizar su nombre y encontrar el sitio donde «colocar» nuestra ayuda Z. En muchas ocasiones, es muy sencillo, y basta con pulsar F1 en el campo y mirar los opciones técnicas en el campo en cuestión.

Pero en la mayoria de ocasiones, esto no funciona y no es tan sencillo localizar la ayuda, para luego poder ampliarla a través de la SE11. Para esto, vamos a usar un truco realizando DEBUG, que hemos conocido gracias Arghadip Kar, un gran compartidor de conocimiento Sap.

El truco consiste en poner un punto de break-point en el módulo de función DD_SHLP_CALL_FROM_DYNP (transacción SE37). En mi ejemplo, he accedido a la transacción ME21N (creación de pedidos) y he realizado una búsqueda por el campo material.

El break-point lo he situado tras el perform DETERMINE_SHLP_OF_FIELD, en el modulo de función indicado. Y en ese lugar, en la variable SHLP_TOP-SHLPNAME tengo identificado el nombre de la ayuda de búsqueda.

En mi ejemplo, la ayuda se llama MAT1. Ya podré acceder a la transcción SE11 y realizar los pasos para ampliar la ayuda de búsqueda estandar. Normalmente, en las ayudas de búsqueda habrá ayudas de busqueda compuestas, y en una de ellas podremos añadir nuestras propias ayudas de búsqueda Z.

En mi ejemplo, he añadido una nueva de búsqueda para localizar materiales por tipo de material, excluyendo los materiales borrados o con un status general de centro (MSTAE) distinto de blanco.

La ayuda la creado a partir de la ayuda MAT1T_E y la he incluido en la ayuda compuesta MAT1T, que es la definida para hacer búsquedas por tipo de material.

Este procedimiento debería funcionar casi siempre, en caso contrario, ya os recomiendo solicitar ayuda a un Abaper para localizarla.

Buscar cadenas en el codigo abap. Transacción EWK1 y otras alternativas.

Para terminar, un truco muy rápido y útil que nos permite localizar en cualquier programa abap una determinada cadena, y que hemos conocido gracias a Enrique Higuero. Para ellos podemos usar la transacción EWK1.

Con una interfaz muy sencilla, indicaremos los programas en donde buscar (se pueden indicar caracteres comodin como el *), la cadenas que queremos encontrar y algunos parametros para ajustar la búsqueda. En la opción Ambito de búsqueda se pueden añadir mas lugares donde buscar.

Al ejecutar el programa, el sistema nos devolverá la lista de programas donde se localize la cadena. En mi ejemplo, estaba buscando «Hardcode» en el código para sustituirlo para una tabla de parametros y realizar una buena práctica de desarrollo.

Esta opción es similar a la que podemos realizar desde la SE38, una vez estamos dentro del código, con la opción Buscar.

Como curiosidad, indicar que la transacción EWK1 fue desarrollada por Sap como una herramienta para la migración al Euro. Ya ha llovido un poco desde eso, unos 20 años!!!!

Además, tenemos otras alternativas a esta transacción, que os detallo (pueden variar según la versión de Sap en la que nos encontremos):

  • Report RKCTSEAR.
  • Transacción CODE_SCANNER: es esta podemos hacer búsquedas trabajando tambien con los paquetes en los criterios de selección, tal y como veis en la imagen siguiente. Además nos permite excluir de la búsqueda a las lineas de comentarios o visualizar programas en los que no se encuentra el patron de búsqueda.
  • Report RPR_ABAP_SOURCE_SCAN: es uno de los más completos para realizar búsquedas, y el que os recomiendo si quereis hacer búsquedas más complejas.

Bibliografía.

https://blogs.sap.com/2020/08/25/how-to-find-a-search-help-behind-a-transaction-code-in-sap/

Different ways to find any string or hard coded values in sap abap code.

Esta entrada fue publicada en Abap, Formacion y etiquetada , , , , . Guarda el enlace permanente.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.