Hasta ahora hemos aprendido a crear formularios, cambiar el formato de los textos, trabajar con variables de entradas y mostrar datos en formato de tablas. Ahora veremos como llamar a nuestros formularios desde un programa o por medio de una transaccin Z. Al crear un smartforms SAP crea una funcin, la cual debemos llamar para imprimir el formulario, el problema es que la funcin se genera con un nombre que no conocemos, pero este problema se soluciona con la funcin de SAP SSF_FUNCTION_MODULE_NAME, la cual recibe como parmetro el nombre del formulario y retorna el nombre de la funcin asociada al formulario. Primero debemos crear un formulario o utilizar uno ya hecho, luego creamos un programa en la transaccin SE38 donde utilicemos la funcin SSF_FUNCTION_MODULE_NAME, para obtener el nombre del modulo de funcin que SAP cree para nuestro formulario y posteriormente llamemos a esa funcin para imprimir el smartform. El cdigo debera de ser similar a este: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 "Declaramos una variable para capturar el nombre de la funcion del smartform DATA: nombre_modulo_funcion TYPE rs38l_fnam.
"Declaramos la variables que el formulario necesita como entradas DATA: it_actividades TYPE TABLE OF zactividades WITH HEADER LINE.
"Obtenemos el nombre de la funcion para nuestro formulario CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_HOLA_MUNDO' IMPORTING fm_name = nombre_modulo_funcion EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
"Llamamos al modulo de funcion 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 "recordar enviar todos los parametros y tablas que nuestro formulario "necesite CALL FUNCTION nombre_modulo_funcion EXPORTING nombre = 'Luis Cruz' TABLES actividades = it_actividades EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. Para usarlo con nuestros formularios debemos de realizar los siguientes campos: 1. Sustituir la linea 5, por las variables que nuestro formulario requiere como entradas. 2. Cambiar en la linea 10 la palabra Z_HOLA_MUNDO por el nombre de tu formulario. 3. Sustituir la linea 29, por los parmetros de entrada de tu formulario, en caso de que tu formulario no tenga parmetros de entrada, debes eliminar las lineas 28 y 29. 4. Sustituir la linea 31, por las tablas que utiliza tu formulario, en caso de que tu formulario reciba tablas como parmetros, debes eliminar las lineas 30 y 31. Ahora al ejecutar tu programa se imprimir el formulario, si necesitas se realice por medio de una transaccin puedes crear una y asociarle tu programa. Artculos sugeridos: 1. Smart forms: Mtodos para ingresar cdigo ABAP en formularios 2. Smart forms: Trabajar con parmetros de entrada. 3. Smart Forms: Agregar imgenes en los formularios (logo) 4. Introduccin a los Smart Forms de SAP http://abap.facilparami.com/2014/01/llamar-un-formulario-de-smartform-en-un-programa-o- transaccion/