En el post de hoy os mostraremos cómo realizar debugging de un smartform en ABAP.
En primer lugar, vamos a daros algo de información acerca de lo que es un smartform. Usaremos información de la web http://www.cvosoft.com/
Qué es un smartform?
Los Formularios son objetos de SAP que se utilizan para crear documentos que necesitan ser impresos, visualizados por pantalla o enviados por correo electrónico.
Ejemplos de formularios son Facturas, Remitos, Órdenes de compra, Solicitudes de pedido o cualquier otro documento que queramos crear como formulario SAP.
SAP posee varias tecnologías especialmente diseñadas para la creación de formularios. Ellas son:
- SAPScripts: es la primera herramienta que creo SAP para el desarrollo de formularios. No es muy amigable y tampoco muy flexible pero todavía se continúan utilizando en muchos entornos de trabajo, principalmente donde encontramos las versiones más antiguas de SAP.
- SmartForms: reemplazaron a los SAPScripts a partir de la versión 4.7 de SAP. Son los más amigables al desarrollador y los más flexibles a la hora de realizar cambios. Poseen muchas ventajas con respecto a sus antecesores.
- AdobeForms: es la última tecnología de SAP en cuanto a formularios. Es producto de la alianza entre SAP y Adobe.
Para hacer debugging de un smartform deberemos seguir los siguientes pasos:
- Vamos a la transacción SMARTFORMS.
- Entramos en nuestros smartform. (ZFICHA_ANALISIS en nuestro caso).
- Arriba hacemos click en Entorno/Nombre del módulo de funciones.
- En nuestro caso nos devuelve este valor: /1BCDWB/SF00000029
- Pues para hacer debug del smartform, vamos a la SE38.
- Insertamos el nombre de nuestro módulo de funciones (/1BCDWB/SF00000029), pero le añadimos una L delante de la S y un F01 al final. (/1BCDWB/LSF00000029F01).
- Accederemos al código. Ya podemos poner un breakpoint en el código del smartform.
Otra forma, algo más rústica, sería la de incluir la sentencia BREAK-POINT en el código y así obligará al debug a parar en esa línea.
Tienes más tips de ABAP en el siguiente enlace.