cancel
Showing results for 
Search instead for 
Did you mean: 

Serializing calls to ABAP server proxies

Former Member
0 Kudos

Hi

I have a following scenario -

SOAP client ( EOIO)--> XI IS --> XI Adapter --> (EOIO ) R3

The objective is to create a material in R3 based on the SOAP client call onto a XI Webservice . XI Integration server uses a ABAP server proxy ( async , to be implemented ) to post material changes/creation data into R3. As shown above - the scenario has to be async end-to-end and also there is a need to serialize the calls to R3 all the way from the webservice call based on an object key ( material number ) . This is to ensure that the material changes for the same material do not get posted out of order.

1. How do I assign/create a EOIO queue at the source with the object key - material ?

2. In my ABAP server proxy that I implement to post material data - do I have to do any queue related activities ?

Any thoughts pointers on a solution to this scenario is appeciated.

Accepted Solutions (0)

Answers (1)

Answers (1)

0 Kudos

Hi Karthik...

I have done similar scenario like File-XI-R3 with ABAP server proxy... File contains the line items that has to posted to GL Accounts and Commit using 'BAPI.

I dont think you have to do any thing regarding serialization or queue..every items will be processed and posted only once, unless there are dulpicates...

let me know if you have any questions

henrique_pinto
Active Contributor
0 Kudos

As a rule of thumb, you should never perform any Quality of Service related configuration in receiver side. It is always done in sender side and automatically persisted to the receiver.

In the case of sender soap adapter, just select Quality of Service as Exactly Once in Order, and specify the queue name.

Regards,

Henrique.

Former Member
0 Kudos

Hi Nanda

I know that the posting at receiver side ( R3) will be done - only once - ( EO ) - but my requirement is to serialize based on the material number - so that messages stuck on XI going into R3 for a material number are in a single queue inorder to avoid older messages for a material overwriting the newer ones....

In your example that you have done - did you have a need to GL accounts from the file into R3 in any particular order based on any object key ( like the GL account number etc ). In that case, were you able to specify the GL account number as the queue name in the sender file channel ?

Former Member
0 Kudos

Hi Henrique

When I specify in the sender soap adapter - QOS as EOIO - it asks for a queue name - is this queue name static ? Does this mean - if I specify queue name as say - MATERIAL - will a single queue with this name be created and all inbound material messages into R3 go through this single queue only ?

Former Member
0 Kudos

Hi

I realized that there is a workaround to assign dynamic queues name for the async EOIO call at the soap communication channel level - in my case,

I simply create multiple communication channels as many as the number of material types ( one queue per material type ) with each channel name containing the material type at the end of its name - say - CC_FERT

Then in each communication channel definition, I set the queue name as a valid material type in the R3 system.

The SOAP client / calling application that invokes this XI webservice - will call the corresponding communication channel - based on the material type of the material it wants to update.

In this way, I basically have multiple queues for material creation/updation going into R3 and also ensure that updates for a single material always go into R3 in a serialized manner.