cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP to Idoc scenario

steve_coombes
Participant
0 Kudos

Hello,

I would like to create a SOAP to INVOIC.INVOIC01 Idoc interface on PI 7.4. I would prefer not to use BPM but can do if necessary.

I understand there are modules I can use to convert request from synchronous to asynchronous in Sender communication channel, but I'm a bit stuck on the operation mapping. I can't map a synchronous operation to asynchronous - error message = 'Interface modi are different.'.

I have seen posts suggesting that I should change the asynchronous service interface temporarily to synchronous, activate the operation mapping as sync to sync, and then change back to async. I don't think this is possible with an Idoc interface.

Does anyone have any suggestions on how I can get round the problem? I would like to receive a cXML InvoiceDetail request, map to Idoc, and then return cXML response.

Kind regards

Steve

Accepted Solutions (1)

Accepted Solutions (1)

Harish
Active Contributor
0 Kudos

Hi Steve,

The below blog might help

regards,

Harish

steve_coombes
Participant
0 Kudos

Many thanks Harish.

I had seen the 'Bridges Construction Site' but not 'Dealing with those Pesky Synchronous Web Services'. Both are very useful.

However, 'Bridges Construction Site' is the one that recommends temporarily changing the Receiver interface to Synchronous, which isn't possible, and the other seems like a sledgehammer to crack a nut.

Perhaps I might have to reconsider using BPM after all.

Kind regards

Steve

nabendu_sen
Active Contributor
0 Kudos

Hi Steve,

Check this one:

Regards,

Nabendu.

steve_coombes
Participant
0 Kudos

Thank you Nabendu. That looks very straightforward.

I see from another post http://scn.sap.com/thread/3411196 that the error reporting is poor. Do you know if this still the case?

I have been considering a couple of other options:

1) ALEUD idoc audit records. Would this allow me to create a synchronous Idoc service interface? It looks like the ALEUD idoc is sent to PI at set intervals from a scheduled job rather than as the synchronous response.

2) Create a synchronous remotely-enabled ABAP function as a wrapper around IDOC_INBOUND_ASYNCHRONOUS, and call that from PI.

Kind regards

Steve

nabendu_sen
Active Contributor
0 Kudos

Hi Steve,

The thread which you mentioned was having issue when trying to send data Asynchronously. In your case you are thinking about this solution because you want Synchronous flow.

The best possible solution could be use of Proxy at SAP side. It is efficient to handle Synchronous communication, has very good tracking and monitoring capability and performance wise good.

I don't think ALE Audit would be able to trigger itself as Response to your Synchronous thread waiting at Web Service side. Again in that solution ccBPM would come into the picture.

Regards,

Nabendu.

Answers (1)

Answers (1)

ankur_agarwal
Explorer
0 Kudos

Hi Steve,

What was the final solution you adopted?

Were you able to activate the OM? or did you go for some other solution/architecture?

thanks,

ankur.

steve_coombes
Participant
0 Kudos

Hello Ankur

I had two problems with this interface :

1) synchronous to asynchronous request

2) Always returning a cXML response, even in the case of an error

To get round 1) I used the synchronous FM 'BAPI_INCOMINGINVOICE_CREATE' to create the invoice.

2) was a problem because PI would return an HTTP 500 in the event of an error occurring rather than a cXML error message. So in the end I created a small Java web application that in turn called PI and always returned cXML. This also meant that I didn't have to expose PI for external access.

I don't know if I would recommend this solution but I didn't find anything I liked better.

regards

Steve