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 transacción Z.

Al crear un smartforms SAP crea una función, la cual debemos llamar para imprimir el formulario, el problema es que la función se genera con un nombre que no conocemos, pero este problema se soluciona con la función de SAP SSF_FUNCTION_MODULE_NAME, la cual recibe como parámetro el nombre del formulario y retorna el nombre de la función asociada al formulario.  Primero debemos crear un formulario o utilizar uno ya hecho, luego creamos un programa en la transacción SE38 donde utilicemos la función SSF_FUNCTION_MODULE_NAME, para obtener el nombre del modulo de función que SAP cree para nuestro formulario y posteriormente llamemos a esa función para imprimir el smartform.

El código debería de ser similar a este:

"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
"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 parámetros de entrada de tu formulario, en caso de que tu formulario no tenga parámetros 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 parámetros, debes eliminar las lineas 30 y 31.

Ahora al ejecutar tu programa se imprimirá el formulario, si necesitas se realice por medio de una transacción puedes crear una y asociarle tu programa.