‎2005 Apr 01 1:57 PM
Hi,
The situation is:
I have created a smartform in our Dev application server and tested it to achieve the view I needed. The Dev system generates FM with automatic name /1BCDWB/SF00000005. I have successfuly transported it to our test system and checked with data. After some short time I found an error in smartform and made a fix in a Dev. system. When trying to test it I found that the system modifies the FM name to /1BCDWB/SF00000006. This leads to modification in my source code, from where I call this FM with actual parameters (not test).
The problem occures when I transported both the smartform and report from where I call it to the test system again. I obtained a shortdump with message like:
'...FM /1BCDWB/SF00000006 does not exist...'
After short investigation I have found, that in our Test system this smartform still generates *** and corresponds to *** the FM with name /1BCDWB/SF00000005.
Next, I'm unable to transport FuGr /1BCDWB/SF00000006 from Dev. to Test because it does not have Dev.Class assosiated and asks for Licence Key (furthermore, I'm not sure this should be done in this way).
Now in our Dev system FM named /1BCDWB/SF00000005 corresponds to another smartform (made by me more than year ago).
And, what is pitty, If I try to release a transport with report which calls FM named /1BCDWB/SF00000005 from Dev, I have about 17 extended program errors (during extended program check) saying that 'there is no such FM'...
For me this is missing of some consistency. What should I do to get consistency between our systems back? (means to have corresponding smartform relation to the same FM name in all the systems)
Any help whould be highly appreciated.
Many thanks in advance.
Regards,
Ivaylo Mutafchiev
SAP BC Consumtant
‎2005 Apr 01 2:21 PM
Hi Ivaylo
Smartforms Name are system dependant !
They are dynamically generated.
You have to use :
data : function_name type rs38l_fnam.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZFORM_NAME' "Smartform name
direct_call = 'X'
importing
fm_name = function_name
exceptions
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
erreur.
endif.
and then, you call your smartform with :
call function function_name
exporting
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = st_ssfctrlop
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = st_ssfcompop
user_settings = ' '
....
Good luck,
Regards,
Erwan.
Message was edited by: Erwan LE BRUN
‎2005 Apr 01 2:21 PM
Hi Ivaylo
Smartforms Name are system dependant !
They are dynamically generated.
You have to use :
data : function_name type rs38l_fnam.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZFORM_NAME' "Smartform name
direct_call = 'X'
importing
fm_name = function_name
exceptions
no_form = 1
no_function_module = 2
others = 3.
if sy-subrc <> 0.
erreur.
endif.
and then, you call your smartform with :
call function function_name
exporting
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = st_ssfctrlop
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = st_ssfcompop
user_settings = ' '
....
Good luck,
Regards,
Erwan.
Message was edited by: Erwan LE BRUN
‎2005 Apr 04 6:37 AM
Thanks a lot.
What a shame - how can I forgot such a basic rule? And even forgot to check my earlier code where I have implemented smartform call...
Perhaps a year or so is too much to remember for me...
Thanks again.
Regards,
Ivaylo