I know that this issue has been asked on the forum already but I have not found any specific resolution.
In my subroutine-pool I have this form:
FORM Z_CALCULATE_EXRATE_FORM USING p_date p_exrate p_local_amt p_local_curr CHAGING p_foreign_amt. ENDFORM.
In my SAPScript, I call this form with:
/: DEFINE &Z_FOREIGN_AMT& = '0' /: PERFORM Z_CALCULATE_EXRATE_FORM IN PROGRAM Z_CALCULATE_EXRATE /: USING &VBDKA-AUDAT& /: USING &KOMK-WAERK& /: USING &KOMK-FKWRT& /: USING &KOMK-HWAER& /: CHANGING &Z_FOREIGN_AMT& /: ENDPERFORM
BUT. I get this short dump:
An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_DYN_CALL_PARAM_MISSING'
caught nor passed along using a RAISING clause, in the procedure
Since the caller of the procedure could not have expected this exception
to occur, the running program was terminated.
The reason for the exception is:
A PERFORM was used to call the routine "CO_ENDPERFORM" of the program
The current call contains 4 actual parameter(s), but the routine
expects 5 parameters.
I have debugged through this and have seen all five params being passed to the SAPLSTXC. I have also tried to only pass in 4 parameters and for some reason, that will not give me a dump.
I would not think there would be any limitations on number of params you can pass?
I know that this topic has been asked before, and someone has 'solved' it but did not explain how it was solved.
If anyone could help me out, that would be great.
I thank you in advance...
Edited by: Yurika Seko on Mar 12, 2010 7:17 PM
Z_CALCULATE_EXRATE_FORM IN PROGRAM Z_CALCULATE_EXRATE
The form should have only two paramters: in_par type itcsy, out_par type itcsy. The input will be in a table of type ITCSY, in a field called 'value' as I recall., the output you will put into row one of the out_par.
Is that what you are doing?