cancel
Showing results for 
Search instead for 
Did you mean: 

Async sync bridge

Former Member
0 Kudos

hello

i have a requirement file to webservice and webservice response to proxy.

i Belive it can be designed through request response bean

but i have mapping in both the scenarios file to soap and soap response to proxy also

so i need to create sync service interface right .

one for file and response proxy

another for webservice request response

but proxy should be created against a service interface .

actually proxy is async ..

how to do it?

regards

Sandeep

Accepted Solutions (1)

Accepted Solutions (1)

nitindeshpande
Active Contributor
0 Kudos

Hi Sandeep,

I have worked on the exactly same requirement -

For outbound scenario (File to SOAP)

1. Create one outbound asynchnronous interface say AsyncOUT_SI

2. Create one Inbound Sync interface say SyncINB_SI

In file receiver channel, have the request response bean (RRB). All these above things will be

For Inbound scenario (SOAP to proxy)

1. Above created inbound interface will bring back the response from web service

2. There must be another Outbound Aysnc interface must be created to take the response from 1st ICo to 2nd ICo

3. Lastly you need to create the Async Inbound interface, which will be your proxy interface and you can develop proxy code for this interface.

The interfaces mentioned in point 2 and 3 will be used in 2nd ICO.

Please refer to the below document for more info on this and let me know if you need any more help on this.

http://saprainbow.com/wordpress/wp-content/uploads/2015/06/AsyncSync_and_SyncAsync_Bridge_without_BP...

Regards,

Nitin

Former Member
0 Kudos

Hi Nitin

My doubt is how mapping is handled async to sync and sync response mapping to proxy.i am aware about request response bean

nitindeshpande
Active Contributor
0 Kudos

Hi Sandeep,

As there are two ICOs, you can use two mappings. One mapping consisting the source structure from File and target structure, that of web-service request.

You must not create Sync interface for File. It must be async outbound SI. Only sync interface is for web-service.

The second mapping would have source structure as web-service response as source structure and ABAP proxy as your target structure. This mapping must be used in 2nd ICO. This ICO must have one Async Outbound interface having the structure of web-service response and another Async Inbound interface having the proxy structure.

I hope i am clear now.

Regards,

Nitin

Former Member
0 Kudos

Hi Nithin

The first mapping will be async(file) to sync(webservice) right but system will not allow to do it .

but as per Will there is a trick

1.  In Oper Mapping, assign source to the RFC sync inbound and target to the async inbound interface you want.

2.  During the assignment of mapping, you should only see the request mapping assignment because the target is async.  When selecting the mapping to use, for the source message, click on the assigned/default msg type and changed it to -Any-.  You should now see all the mappings to the target msg type.  Select the one you want.

3.  At this point, if you activate the Oper Mapping, you will get an error indicating that the source and target interfaces do not match.  You will not be able to activate it.

4.  Go to the aysnc inbound interface used in #1.  Change it to sync interface and assign any msg type to the response; you can just use the same as the request msg type.  Activate it by itself, do not include any other artifacts to be activated.

5.  Now, activate the Oper Mapping.  Do not make any changes to it.  You will get a warning, but it will activate.

6.  Go to iFlow or Integration Directory and assign the Oper Mapping.

former_member186851
Active Contributor
0 Kudos

Sandeep did you refer those links.

Former Member
0 Kudos

Raghuram those links are not saying how to handle mapping

Bridges Construction Site (1/3): Asynchronous - synchronous bridge. this link says about handling mapping for async to sync ,

nitindeshpande
Active Contributor
0 Kudos

Hello Sandeep,

Lets address the things one-by-one.

For the 1st mapping, you will have a Async Outbound interface and Sync Inbound interface. As it is Async to Sync scenario, there would be no issues for you to map the file structure to web-service request structure.

I have done it already in SAP PO 7.4 and i haven't faced any issues. As XSD of web-service will have 2 different messages for Request and Response and you can use any one of them in your message mapping. Hence use request structure of the web-service as your target in the 1st mapping.

Now configure the RRB in your receiver channel and in the RRB Service Interface parameters, please mention the new Async outbound interface name. This Aysnc outbound interface must have the structure of Web-service response.

Now, create a mapping Web-service response structure as your source and your proxy interface structure as target. As both the interface are async here, there should not be any problem in assigning the mapping.

Hence in total you need to have 4 interfaces.

1. Async Outbound for File structure

2. Sync Inbound for Web-service

3. Async Outbound for Web-service response structure (this is the extra interface)

4. Async Inbound for proxy interface structure

Regards,

Nitin

Former Member
0 Kudos

Hello Nithin

The first point itself

For the 1st mapping, you will have a Async Outbound interface and Sync Inbound interface. As it is Async to Sync scenario, there would be no issues for you to map the file structure to web-service request structure


the system is not allowing   operation mapping between async interface to sync interface.



former_member182412
Active Contributor
0 Kudos

Hi Sandeep,

Change the sender service interface to sync interface for temporarily and add the request mapping and response mapping in the operation mapping and activate the operation mapping, after you activated the operation mapping reject the changes you done for sender service interface (change it back to asynchronous)

Regards,

Praveen.

Former Member
0 Kudos

Hi Praveen

Thats what exactly i did as per William trick

nitindeshpande
Active Contributor
0 Kudos

Hello Sandeep,

I just tried doing it again in my system. And i am able to do it. What is your version of SAP PI?

Regards,

Nitin

Answers (3)

Answers (3)

PriyankaAnagani
Active Contributor
0 Kudos

Hi Sandeep,

I just wanted to know, Is there any specific reason to go for BPM/Modules when the same requirement can be achieved with a File to Proxy Asynchronous scenario with SOAP lookup.

Regards,

Priyanka

vicky20691
Active Contributor
0 Kudos

Hi Priyanka,

You can choose the methods, but remember the following points keeping optimisation and efficiency in mind-

1. Modules is in the same AAE so until there is a problem with AAE it will run.

2. BPM you have the dependency on BPE, if for some reason it went down and even if AAE is working message fails.

3. Soap Lookup - if the service you are looking up went down then even if PI is working message fails, even bottle neck on thread count is an issue.

Thus, for better reliability and easy tracking of your messages if you have modules use them.

Regards,

vikas

PriyankaAnagani
Active Contributor
0 Kudos

Hello Vikas,

I don't prefer BPM and I did not suggested also. I was just suggesting the possible alternatives.

As you mentioned, if the WebService is down, the messages will fail in any case whether its using SOAP lookup/Modules/something else.

Choosing the method depends on certain factors.

Ex, If we use SOAP lookup, message will fail in the mapping level when WebService is down which can be troubleshooted based on message log and audit log in SOAP receiver channel.
The difficulty with this is, we need to write UDF to implement lookup.

Also, it is preferable when the volume of data is less otherwise the most of the processing time will be consumed by the mapping pipeline step.

So, choosing the method completely depends on the requirement. And I wanted to understand the same from Sandeep.

Regards,

Priyanka

Former Member
0 Kudos

Hello Priyanka/Vikas

The requirement is mainly for ariba to srm integrattion its actually soap to soap then to proxy

when contract is created in ariba a workspace id is pushed out using outbound webservice

and again we need to pass this workspace id as input to another webservice to ariba to get contract data

then pass the contract details to srm system using proxy.

i Dont want to store this workspace id anywhere as its not a useful data.

So the outbound async workspace id from ariba immediately i am passing as  input to inbound sync ariba service and its response is a encoded zipped csv xml and i am doing java mapping to make it as xml and then pass it to async proxy to srm.

i dont prefer bpm because in near future we are planning for singlestack upgrade

Regards

sandeep

former_member186851
Active Contributor
0 Kudos
vadimklimov
Active Contributor
0 Kudos

Hi Sandeep,

Please check blog , it describes options for async/sync bridging to fulfil your requirement (async/sync bridge with modules in a sender communication channel and async/sync bridge with modules in a receiver communication channel), and contains detailed information regarding required configuration for each of these options.

Regards,

Vadim