cancel
Showing results for 
Search instead for 
Did you mean: 

Determine receiver between 2 business system

former_member58757
Participant
0 Kudos

I am working on a requirement where the single business system sends xml data to 2 receiver business system , based on the incoming xml data's receipient id it should determine which receiver system it should go, but it should go to only one target system.

I added two reeciever determination for 2 business systems. I also added a local rule using xpath for recepient id but it seems to be not working. Are there any other way to do this?

Thanks,

Menaga

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member58757
Participant
0 Kudos

I resolved the issue, I removed the multi line check from xpath condition and it worked.

Thanks all for the help...

Thanks,

Menaga

Former Member
0 Kudos

Menaga,

> I added two reeciever determination for 2 business systems.

You dont need two receiver determinations. What you need is one receiver determination and add two business systems. In receiver determination there is a condition tab. There you specify your xpath condition so that it routes to the business system which ever condition is satisfied.

Regards,

---Satish

former_member58757
Participant
0 Kudos

Hi,

Initially I had one receiver determination with 2 business system with xpath condition and it throw me an error "Receiver could not be determined", then I had to create 2 receiver determination each one with it's own business system with the condition and it didnt gave me error instead it sends the message to one system all the time. Below is the xpath from condition editor for one business sytem, it's same for other with different value.

Since it didnt allow me to create 2 receiver determination with same sender interface I had to create one with checking the virtual receiver, I know this is wrong way but was trying different things.

Xpath

(/p1:ReplenishmentOrderConfirmation/MessageHeader/RecipientParty/InternalID = 0000010004)

Thanks,

Menaga

Former Member
0 Kudos

Menaga,

Did you try with extended receiver determination?

If you have complex conditions in the receiver determination it makes life easy.

search "extended receiver determination" in SDN and you will get how to use Basis's Receivers message to do this

Venkat.

Former Member
0 Kudos

hi,

Note that you have the error "REceiver cannot be determine" if your create badly the condition.

Example 1: BAD... coz if PI receive TATA, that means there is no Receiver for that.


Sender_1  & condition = TOTO --> Receiver_1
                     condition = TITI     --> Receiver_2

Example 2: GOOD.... coz if PI receive TATA, that means the info is distribute => No dump !


Sender_1  & condition = TOTO       --> Receiver_1
                     condition NE TOTO     --> Receiver_2

Example 2 bis: GOOD.... coz if PI receive TATA, that means the info is distribute... in the Dummy_Receiver => No dump !


Sender_1  & condition = TOTO       --> Receiver_1
                     condition = TITI          --> Receiver_2
                     condition NE TOTO AND TITI   --> Dummy_Receiver (dummy like a Business Service for instance) 

Please, check your condition filter.

Regards.

Mickael

Former Member
0 Kudos

Menaga,

You have given xpath as:

>(/p1:ReplenishmentOrderConfirmation/MessageHeader/RecipientParty/InternalID = 0000010004)

Then how about for the other one. Also please put your source xml message so that somebody will help you out here.

Regards,

---Satish

former_member58757
Participant
0 Kudos

The other one has the same xpath with different value in recepient party internal id. I have to determine the receiver based on the internal id.

my inbound payload

<?xml version="1.0" encoding="utf-8" ?>

- <n0:ReplenishmentOrderConfirmation xmlns:n0="http://sap.com/xi/SAPGlobal20/Global" xmlns:prx="urn:sap.com:proxy:SC3:/1SAI/TAS59BD4EA9CBD4AE8D11BA:700:2008/06/25">

- <MessageHeader>

<ID schemeID="0217" schemeAgencyID="BS_SCM_SNC">4A202824209E2394E10000000A56160D</ID>

<CreationDateTime>2009-07-21T16:13:25Z</CreationDateTime>

- <SenderParty>

<InternalID></InternalID>

</SenderParty>

- <RecipientParty>

<InternalID>0000010003</InternalID>

</RecipientParty>

</MessageHeader>

- <ReplenishmentOrder>

<ID></ID>

<CreationDateTime>2009-07-20T00:00:00Z</CreationDateTime>

<LastChangeDateTime>2009-07-21T11:12:46Z</LastChangeDateTime>

- <BuyerParty>

<InternalID>0000010003</InternalID>

<BuyerID>0000010003</BuyerID>

</BuyerParty>

- <VendorParty>

<InternalID>0020006500</InternalID>

<BuyerID>0020006500</BuyerID>

</VendorParty>

Thanks,

Menaga

Former Member
0 Kudos

Menaga,

While giving xpath in the bottom there is a prefix and namespace area. Can you add the prefix as n0 and the namespace as xmlns:n0="http://sap.com/xi/SAPGlobal20/Global and give a try.

Also the xpath should be:

(/n0:ReplenishmentOrderConfirmation/MessageHeader/RecipientParty/InternalID = 0000010004)

Regards,

---Satish

former_member58757
Participant
0 Kudos

Hi,

It is not working. It always goes to one receiver , should I need change the standard to extended in receiver determination?I checked the trace and there was no any sign of the condition rule being executed.

Thanks,

Menaga

Former Member
0 Kudos

>>t id but it seems to be not working.

what is the error you are getting?

Multiple receivers in Receiver determination is the most straight forward way for message branching.

Thanks

Aamir

former_member181962
Active Contributor
0 Kudos

Hi Menaga,

You are doing the right way.

There might be a problem in the way you defined your XPATH condition.

Can you show your XPATH expression?

Regards,

Ravi Kanth Talagana