cancel
Showing results for 
Search instead for 
Did you mean: 

Send RFC to SAP XI u0096 Asynchronous

Former Member
0 Kudos

Hi All,

I have a scenario RFC as a sender and webservice as a receiver where I need to do asychronously.

I have gone throught the weblog

/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous

I did the same way but I have a doubt in mapping. Please let me know which message of rfc need to be mapped. As we have RFC as a sender so we can direclty map the rfc responce as a source message to Webservie request.

Let me know whether i am correct or is there any other mapping we need to do.

Regards,

Dhil

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Dhil,

If it is asynchronous then there is no response at all in the interface. So map request RFC to the Webservice request. Since it is aysnchronous there will be response from the webservice.

---Satish

justin_santhanam
Active Contributor
0 Kudos

Dhil,

While you are intiating call , your RFC will send response/reques to SAP XI? As you said its Asynchronous, I think you will get only response, try to map the response with webservice call.

Please refer the doc

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f83deb90-0201-0010-189c-8d3ff875...

Or,else I'll suggest u onething, juz create Sender comm.channel ,sender agreement alone and execute the RFC from sender side and see what is the inbound message, based on that u can decide.

Best regards,

raj.

Former Member
0 Kudos

Hi Raj,

Thank you I tried mapping the RFC responce with Webservice request I got the below error in communical channel monitoring

Sender channel 'CCRFCSend' for party '', service 'SHRBS210' (internal name 'RfcServer[CCRFCSend]')

Server data: {jco.server.gwhost=hrsand.dx.dxxxx.com, jco.server.progid=SHRRFC_SXI, jco.server.gwserv=sapgw02, jco.server.unicode=0}

Repository data: {jco.client.lang=EN, jco.client.snc_mode=0, jco.client.client=210, jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=rryyyyy, jco.client.sysnr=02, jco.client.ashost=hrsand.dx.dxxxxx.com}

Current pool size: 1, maximum pool size : 1

Channel History

- Error: 2007-06-23 14:10:20 CDT: Message processed for interface ZRFC_XI_GET_PERSONAL_INFO: com.sap.aii.af.mp.module.ModuleException: call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE: caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE:

- Error: 2007-06-23 14:00:40 CDT: Message processed for interface ZRFC_XI_GET_PERSONAL_INFO: com.sap.aii.af.mp.module.ModuleException: call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE: caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_RECEIVER_CASE_BE:

I have see the doc which you but I hope it was synchronous call between RFC and XI.

Please let me know do we got any clue in the error message and let me know if you need more details.

Regards,

Dhil

justin_santhanam
Active Contributor
0 Kudos

Dhil,

Please see the satish's reply above. Thats y i told u before doing any config , juz create sender comm.channel and sender agreement and check the payload. Did u checked the payload wht is the structure is it request or response?

Best regards,

raj.

Former Member
0 Kudos

Hi Raj,

I recreated as Satish mentioned but I am getting the same error.

I got 2 error lines in SXMB_MONI status as System Error. Even though can see the payload where the value of the responce field is avalaible. But one more suprise is that when I checked the message type in sxmb_moni it shows as sysncronous message.

The details about the design is below

1. Imported the RFC

2. Created Message Interface Outbound Asynchronous with RFC request messge(MIRFCSend).

3. Created Message Interface Inbound Asynchronous with Webservice request messge(MIWebReceive)

4. Message Mapping is done between RFC req to Web req (MMRFC2Web).

5. Interface Mapping is done as (IMRFCToWeb)

Source Interface as : MIRFCSend

Target Interface as : MIWebReceive

Mapping Program : MMRFC2Web

In ID

Receiver Determination

Sender service : SHRBS210

Sender Interface : MIRFCSend

Receiver Serice : BSWEBSERVICE

Interface Determination

Sender service : SHRBS210

Sender Interface : MIRFCSend

Inbound Interface : MIWebReceive

Interface Mapping : IMRFCToWeb

And also as you I have deleted Receiver agreement and tested but still getting the same error.

Regards,

Dhil

Former Member
0 Kudos

Kumar,

Also you should create the sender and receiver agreements also. Just create this and give a shot.

---Satish

justin_santhanam
Active Contributor
0 Kudos

Dhil,

Its my mistake sorry.....

Best regards,

raj.

Message was edited by:

Raj

Former Member
0 Kudos

Hi Raj,

I couldn't find any parameter in rfc sender communiation channel where we can specify the QOS.

Hi Satish,

I have also created the Sender and receiver agreement as below

Sender agreement

Sender Service : SHRBS210

Sender interface : ZRFC_XI_GET_PERSONAL_INFO (RFC Name)

Namespace : urn:sap-com:document:sap:rfc:functions

Note : In sender agreement actually we are using MIRFCSend in IR but I have seen in forum where they asked to use the sender interface as RFC even though we specifed explicitly MIRFCSend(outbound asyn) - correct me if i am wrong

receiver agreement

Sender Service : SHRBS210

Receiver Service:BSWEB

Receiver Interface: MIWebReceive

After doing all this also I am getting the same error.

Regards,

Dhill

Former Member
0 Kudos

>>Note : In sender agreement actually we are using MIRFCSend in IR but I have seen in forum where they asked to use the sender interface as RFC even though we specifed explicitly MIRFCSend(outbound asyn) - correct me if i am wrong

why you need to create and use created interface on the sending side,you have to use imported RFC only on sending side.even you don't have to create sender interface(MIRFCSend).

Babu

Former Member
0 Kudos

Hi Babu,

Thank you, I understood but being this rfc as a sender I hope we need to create explicit Outbound Asynchronous interface. That's why I created the MIRFCSend).

correct me If i am wrong.

Regards,

Dhil

Former Member
0 Kudos

It doesn't matter whether RFC is on sending or recieving side.

you have to use imported RFC as your outbound interface.no need to create an interface for that.

Babu