‎2016 Feb 23 3:45 AM
Hi everyone,
I am having a problem during receiving the results related to a RFC call from one system(X10) to other system(Y10).
When i just run RFC with ;
CALL FUNCTION 'RFC_FUNC1' DESTINATION 'Y10'.
Everything works fine, however when i try to run this one in parallel mode and trigger, i can see calculations are correct but system gives error on that line
RECEIVE RESULTS FROM FUNCTION 'RFC_FUNC1'
This line raises an error with the following detail;
Function module "RFC_FUNC1'" has been called as an asynchronous RFC with
reply.
The reply was programmed inconsistently to the call however, meaning
that class-based exceptions were to be used in position one but not in
the other.
Error in the ABAP application program.
The current ABAP program "RFC_FUNC1'" had to be interrupted because
it contains
a statement that cannot be executed.
Later i created an another function module in my system X10 just to trigger RFC_FUNC1 in system Y10. Now i changed my logic just to trigger RFC_FUNC2 in my system X10. (RFC_FUNC1 is triggered inside the FUNC2 ) I can see results are received from the RFC_FUNC1 but still i get same error when i run
RECEIVE RESULTS FROM FUNCTION 'RFC_FUNC2'.
What can be the problem ? First time i got error like this.
‎2016 Feb 23 5:36 AM
Ok i fixed like this; (just to remind, my program is running on system X10 with a parallel logic)
1) Creata a RFC_FUNC2 in X10
2) Call RFC_FUNC1 which exists in Y10 from X10 by using RFC_FUNC2
3)Catch system failure exceptions in RFC_FUNC2 by using EXCEPTIONS parameters (result of FUNC1 in Y10 )
4)Return exceptions coming from FUNC1 by EXPORTING parameter from X10.
‎2016 Feb 23 5:10 AM
Hi,
If exceptions are present in the FM, try adding the "EXCEPTIONS except1 = rc1 ... exceptn = rcn" addition also.
Regards,
Renjith Michael
‎2016 Feb 23 5:27 AM
I am just using standard exceptions like system failure and comm failure. I also tried removing exceptions same problem. i tried try-catch also same problem. alternate is i will control the flow by using some customization tables but i want to do in proper way.
Below function is working if i don't use parallel logic with just CALL Function statement.
RECEIVE RESULTS FROM FUNCTION 'RFC_FUNC1'
IMPORTING
et_log = lt_log
EXCEPTIONS
system_failure = 1
communication_failure = 2.
‎2016 Feb 23 5:36 AM
Ok i fixed like this; (just to remind, my program is running on system X10 with a parallel logic)
1) Creata a RFC_FUNC2 in X10
2) Call RFC_FUNC1 which exists in Y10 from X10 by using RFC_FUNC2
3)Catch system failure exceptions in RFC_FUNC2 by using EXCEPTIONS parameters (result of FUNC1 in Y10 )
4)Return exceptions coming from FUNC1 by EXPORTING parameter from X10.