cancel
Showing results for 
Search instead for 
Did you mean: 

conditional base routing to multiple receiver's for syncronous interface

Former Member
0 Kudos

Hi All,

I have a requirement of sysnchronous interface where i need to send the message to 2 diffrent systems based on the routing condition. Based on routing condition we will determine the receiver to send message and response shloud send back to sender.

Please let me know my requirement is possible using sysnchromous call i.e sending to multiple receiver's based on conditon. Thanks.

Regards,

KK

Message was edited by:

kalpana k

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi All,

Thanks for ur inputs. I tried without using BPM having routing condition in receiver determination. But its giving an error "RCVR_DETERMINATION">NO_RECEIVER_CASE_BE"

Please confirm without BPM is it possible or not . If so how we can acheive this withpout BPM. Thanks.

Regards,

KK

Former Member
0 Kudos

Hi Kalpana,

I am possitive ,you don't need BPM here.if not my words then can't you trust even Bhavesh words ...the XI expert ...Just kidding...:).

but make sure your condition wont satisfy for both receivers as Bhavesh said.

and about the error you got, can you make sure the QOS you mentioned in CCs as BE and interfaces(o/b & i/b) are Syncs and double check your configs in ID.

Babu Sri

Former Member
0 Kudos

Hi Babu,

Many thanks for u reply and confirmation.

As you said , how to check QOS to BE in CC's. I don't see any option in CC for QOS. I am still getting same error.

I am mentioning as QOS as BE in my HTTP test teplette while testing. Remaining all confuration and conditions for routing are fine n no issue in that.

Thanks,

KK

Former Member
0 Kudos

Kalpana,

I mean to say wherever you have QOS option in your CCs,put them as BE.

I think your scenario looks like HTTP ->XI->RFC,I think there is no QOS option for receiver RFC adapter.

ok, still why you are getting the error...hmmm.

may be one thing ,did yo apply any Xpaths in the receiver determ,atleast one satisfied for your input data out of two Xpath conditions in receiver determination?

can you verify whether atleast one Xpath satisfies...I think this may be the reason.

bhavesh_kantilal
Active Contributor
0 Kudos

1. Check the Error Message in MONI. Does the sender servive, serner interface and namespace look as per the receiver determination.

2. Check the inounb payload in MONI. If you are usibng the HTTP Client taken from SDN, then the HTTP Client automatically adds the XML declaration . make sure that there are nt 2 XML declarations in the payload

Regards

Bhavesh

Former Member
0 Kudos

Hi All,

Thanks for ur inputs. All you said i rechecked everything is fine. I even tried with configuring only one receiver in receiver determination with condition which my xml is having. But i am still getting same error as "RCVR_DETERMINATION">NO_RECEIVER_CASE_BE"

When i try with one receiver in receiver determination adn with no condition it successfully sending message and response sending back without any issue.

Issue only when i have conditon its giving error. My scenatio is HTTP>XI>RFC(ECC)/ PRoxy(SRM)

If i have only one reciever i.e RFC with condition still i am getting error.

Please help me to resolve this. Thanks.

Regards,

KK

VijayKonam
Active Contributor
0 Kudos

Kalpana, could you please post the conditions you have specified in the Directory..

VJ

Former Member
0 Kudos

I am specifing conditon as , for field Contract_type = 'Direct' for ECC and Contract_type = 'Indirect' for SRM. At any point this condition won't satisfies both receivers. Thanks.

Message was edited by:

kalpana k

Message was edited by:

kalpana k

VijayKonam
Active Contributor
0 Kudos

Is the syntax correct? Are you using the XPATH expressions for this conditions using the condition editor of XI?

VJ

Former Member
0 Kudos

Hi Vj,

I am using XPATH expression for conditions and syntax is correct. no issue with that. Thanks.

KK

bhavesh_kantilal
Active Contributor
0 Kudos

My gut feel here - there is a datatype mismatch tin the Condtional Receiver Determination.

Can you check what the Datatype associated with the Element from the source in is? Both source and target should be STRING.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

Datatype in source structure and in the condition is same and no mismatch. Also i am not mapping this condition field to target field. This field i am using only for determing the receiver based on that field value.

Do we need to use context object Xpath for routing condtion ? I am just using Xpath for condition. Also , do we need to use extended receiver determination option ? I am just using standard. ANy thoughts?

Thanks for ur help.

KK

Former Member
0 Kudos

Hi,

I am positive its the problem with Xpaths only.your condition is not satisfying thats why XI is not determining any receivers.

Xpath Strings are very sensitive ,length,case,spaces, etc...and did you give right paths to reference to the field .

Former Member
0 Kudos

Hi All,

Thanks for all ur inputs. Issue actually is fieldname in DT in XI is contract_type and in my input xml fieldname is contrct_type. Thats why my condition is not working. WHen i changed the field name in sourse xml its workign fine.

Regards,

Rajesh

Answers (1)

Answers (1)

VijayKonam
Active Contributor
0 Kudos

You can accomplish this thru BPM or using the advanced Receiver determination in the Direcoty. You can refer to a particular data element in the source message for a condition and depending on that, you can select the receiver.

As long as the mappings and the interface mappings are correctly defined, you should not face any problems wrt synchronous or asynchronous communication.

VJ

Former Member
0 Kudos

Hi Vj,

Thanks for your reply. I have already reference fileds based on field value i can route it. But i want to achieve this without using BPM. Please let me know how to acieve this using advanced receiver determination.

Can we acieve this by just giving routing conditions in receiver determination. Please let me know. Thanks.

Regards,

KK

Former Member
0 Kudos

Hey

AFAIK its not possible to do this scenario without BPM,problem will come in when u receive the response(you need correlation for this and due to which BPM has to be used)

http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm

Thanx

Aamir

Former Member
0 Kudos

Hi Amir,

Thanks for your reply. I think we need BPM only when we are sending messages to multiple receiver simultaniously. But in my scehario all the message will be send to one receiver all the time. But will determine receiver based on routing condition to which system we need to send.

Since i am sending each message to one receiver all the time we can acieve this without using BMP. Please let me know ur thoughts. Thanks

Regards,

KK

Former Member
0 Kudos

Hey

>> But in my scehario all the message will be send to one receiver all the time. But will determine receiver based on routing condition to which system we need to send.

do u have multiple receivers(logical system) or one receiver with multiple interfaces.

sorry m unable to understand your scenario properly

Thanx

Aamir

Former Member
0 Kudos

I have multiple receivers ( Logical Systems) . I am sending the message to either ECC or SRM based on the condition. But at any point of time msg will be send to one logical system.

Former Member
0 Kudos

Hey

>>But at any point of time msg will be send to one logical system.

it does not matter,what if you send message to ECC and before you get a response from it,another message is send to SRM and you get the response from it,now how will XI know this response is for which message transfer?

correlation is the answer and for that u need BPM.

thanx

Aamir

Former Member
0 Kudos

Aamir,

I dont think BPM is required here,XI always use mesasgeID as the reference.

lets say you sent a request then XI generates message ID :11111 (for Ex)

and for the response XI again generate another message ID:22222(for Ex),but referencing to MessageID:11111,it cant be to some other request message ID.(always reference is maintained by XI for Sync calls)

so we dont need to maintain any relationship between request and respone ,explicitly.it is being taken care by XI itself for sync calls.

response1 for a request1 wont go to someothers request2.

I dont know whether you get my point what I was trying to say.

and just using Xpaths in receiver determination would give the solution.but need to have two Receiver agreements.

I might be wrong !

thank you,

regards,

Babu Sri

Former Member
0 Kudos

Hi,

I have done something similiar before and I did not require BPM for a synchronous interface.

Remember there is only one sender that triggers the interface so the response will only have to go back to one place.

Therefore you can use condition routing based upon the payload information of the initial request received into XI to route your message.

Cheers

Colin.

Former Member
0 Kudos

hey babu

whatever u said definitley holds true if u have single receiver,but in case of multiple receivers the case is a little bit different.

please have a look at Jin Shin's reply in the following thread

also have a look at the following blog

/people/prasadbabu.nemalikanti3/blog/2006/03/10/bpmsingle-sender-and-multiple-receivers-based-on-synchronous-exchangeswitch-part-1

Thanx

Aamir

bhavesh_kantilal
Active Contributor
0 Kudos

U do not need a BPM.

In the runtime if 2 receivers are determined the message will error out. But, if only one receiver is determined then there will be no issue

Regards

Bhavesh