cancel
Showing results for 
Search instead for 
Did you mean: 

XI to RFC Scenario: Runtime error during RFC Call

gautam_poddar2
Participant
0 Kudos

Hi,

I am testing a XI-to-RFC scenario involving BPM. The RFC works perfectly from SE37; but I get 'ICM_HTTP_TIMEOUT, Error code 402' when I invoke it from XI. On digging through the problem, it appeared that the calling program produced a short dump at the ABAP end. The code is as follows:

<b>module %_rfcdia_start output.

"Do not display screen !

call 'DY_INVISIBLE_SCREEN'.

perform remote_function_diastart.

endmodule.

module %_rfcdia_call output.

"Do not display screen !

call 'DY_INVISIBLE_SCREEN'.

perform remote_function_diacall.

endmodule.

module %_cpic_start.

if sy-xprog(4) = '%RFC'.

perform remote_function_call using rfctype_external_cpic.

else.

call 'APPC_HD' id 'HEADER' field header id 'CONVID' field convid.

perform cpic_call using convid.

endif.

endmodule.

form cpic_call using convid type c.

communication send id convid buffer header.

if sy-subrc eq 0.

perform (sy-xform) in program (sy-xprog).

else.

message a800.

endif.

endform.

form remote_function_call using value(type).

data rc type i value 0.

do.

********This is the line where error occurs************

<i>call 'RfcImport' id 'Type' field type.</i>

*************************************************************

if sy-xprog = 'JAVA'.

system-call plugin

id 'JAVA' value 'FORW_JAVA'

id 'RC' value rc.

  • if there is no rollout on the JAVA side which

  • rolls both, JAVA and ABAP, we return to the

  • C-Stack and reach this point

  • in case there was an rollout, the ABAP-C stack is lost

  • and we jump direkt to this point

  • here we trigger the rollout on this Abap side with

  • the following statement

system-call plugin

id 'JAVA' value 'ROLL_OUT'

id 'RC' value rc.

else.

perform (sy-xform) in program (sy-xprog).

rsyn >scont sysc 00011111 0.

endif.</b>

Anybody has any idea why it is happening? Is it a network issue? The dump in ST22 says that 'The program "SAPMSYS1" was terminated manually'. How it is possible to manually abort an automatic call?

Awaiting reply.

Regards.

Accepted Solutions (1)

Accepted Solutions (1)

moorthy
Active Contributor
0 Kudos

Hi,

Probably because of timeout, it is unable to execute the request ..so it is aborted.

btw, is it a synchronous call ? what is the message size ? the given data to RFC is correct and valid structure ? check the mapping .for this use the data from SXMB_MONI and test it

Check this blog for timeout errors-

/people/michal.krawczyk2/blog/2006/06/08/xi-timeouts-timeouts-timeouts

Regards,

moorthy

gautam_poddar2
Participant
0 Kudos

Thank you,Moorthy, for your kind reply. Yes, it is a synchronous call. And what is astonishing is the fact that despite the red flags I am getting in SXMB_MONI, the data is actually being posted by RFC! On further searching and use of your referred blog, I found out that the problem is occuring while getting the response back from RFC. Your referred blog points to that problem, too! Thank you very much...You get the crown!

Regards

Answers (0)