Sei sulla pagina 1di 2

Smart forms: Llamar un formulario

desde un programa o transaccin


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/