cancel
Showing results for 
Search instead for 
Did you mean: 

RFC -> XI -> SOAP -> XI -> IDOC

Former Member
0 Kudos

Hi All

I have to implement an XI system that uses SOAP to call a webservice every 5 to 10 minutes (if possible we would prefer every minute). Data returned from the webservice then needs to be sent to SAP R/3 as an IDoc.

Since the SOAP adapter cannot be set to poll at regular intervals I have opted for setting up an RFC in R/3 that is scheduled every 5 to 10 minutes . My plan is that this can then be used to trigger the XI interface that will use the SOAP adapter to poll the webservice. However, I don't know how to get the response to be returned as an IDoc. I don't see that I can use a synchronous interface because then the response will be returned to R/3 via the RFC adapter. However, I can't see that an asynch. interface will work because then there won't be a response.

Is my only option to use BPM? I'm nervous about using BPM because I'm not familiar with it and I understand it has considerable overhead - particularly as it will be called so frequently.

Can anybody provide any ideas or assistance on this? If I have no option but the BPM route then any links to blogs/'how to...' etc would be appreciated.

Thanks

Andrew

I forgot to mention that we are on R/3 4.6C and XI 3.00

Message was edited by:

Andrew Wright

Accepted Solutions (1)

Accepted Solutions (1)

prateek
Active Contributor
0 Kudos

BPM would always be a good option in terms of design but not in terms of performance.

Workaround: Use RFC - XI - IDoc

Do SOAP call from a UDF. See this

/people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function

Regards,

Prateek

Former Member
0 Kudos

Thanks for your replies - I have spent the day using your information to try and solve my problem!

I'm not sure that doing the SOAP call in aUDF is going to work in my particular case. To elaborate:

1. Somehow I need to trigger the web service call (BPM infinte loop polling a file or scheduled RFC call appear the most likely)

2. The webservice does not require an input. Its response basically provides infomation necessary to create <b>multiple</b> sales orders.

3. This information then needs to be mapped to and sent to R/3 through the IDoc adapter

4. R/3 processes the IDocs to create the sales orders

Is it going to be possible to use the SOAP lookup to extract this kind of information? Presumably when the UDF is used in the message mapping it will have to be called for each 'item'. The basic lookup shown in the Blog is at the limits of my Java skills!

In terms of BPM, having not used it before I'm still trying to get to grips with how it works. I guess I need to do the following:

1. Set an Async Receiver (either for RFC or File depending on approach)

2. Transform the recieved message

2. Set a Sync Sender for the SOAP webservice

3. Transform the response

4. Pass the output of this to an Async Sender (for the IDoc)

Does this sound correct? I can't believe I'm the only person to have hit this particular problem but I'm struggling to fins a specific solution for it!

Thanks again

Andrew

Former Member
0 Kudos

Andrew,

One small basic question...

What is your sending system? Can they call webservice?

Nilesh

Former Member
0 Kudos

Hi Nilesh

Its R/3 4.6C so no I don't believe it can call a webservice directly.

Thanks

Andrew

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Andrew

refer these

/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i

/people/riyaz.sayyad/blog/2006/05/08/consuming-xi-web-services-using-web-dynpro-150-part-ii

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a068cf2f-0401-0010-2aa9-f5ae4b20...

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f272165e-0401-0010-b4a1-e7eb8903...

/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1

/people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2

/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi - Invoke Webservices using SAPXI

/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services

/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step

https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2131 [original link is broken] [original link is broken] [original link is broken]

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/336365d3-0401-0010-9884-a651295a...

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/336365d3-0401-0010-9884-a651295a...

Hope it will help u !!

refer this thread for time scheduling

Thanks!

former_member184543
Active Participant
0 Kudos

Hi Andrew,

Use a file to be polled and call the SOAP web service, catch the response and trigger an IDOC...

Use a BPM with an asynchroous receive for file, sync send for SOAP and finally an async send for IDOC...