Lo más sencillo es obtener el codigo para llamar a la SMARTFORM. El código lo sacas en el SMARFORM:
Enviroment > Function Module Name.
Te devolverá algo como: /1BDCBWB/SF00000341.
Luego en el programa que lo llama, vas a Patron y metes eso, como si metieras en nombre de una función normal y listo.
Otra opción te permite obtener el código del Smart Form automaticamente usando la funcion 'SSF_FUNCTION_MODULE_NAME'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZNOMBRE_SMARTFORM'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = nombre_formulario
* 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.
Para ello define antes:
data: nombre_formulario type RS38L_FNAM.
Ahora ya tendrias el codigo en la variable nombre_formulario y haces lo mismo que cuando metias directamente el codigo.
Un saludo.
|