on 07-04-2014 6:22 AM
Hi,
I found a strange issue today while configuring two receivers using the Receiver and Interface Determination conditions.
Sender - Proxy Service
Receiver1 - ReceiverA
Receiver2 - ReceiverB
Receiver Determination Condition : When Field1 = 100, message should flow to ReceiverA and ReceiverB
Interface Determination Condition (ReceiverA) : When Field1=100 and Field2=50 message should flow to a specific interface in ReceiverA
There is no Interface Determination condition for ReceiverB, for all messages having Field1=100, it should go to ReceiverB.
Test Scenarios:
1) Field1=100, Field2=50 : Message flows successfully to ReceiverA and ReceiverB
2) Field1=100, Field2=89 : Message fails to process from ECC itself throwing Interface Determination not found error. Ideally this is a positive scenario for ReceiverB and it should send the message to ReceiverB without any errors. But, this did not happen in this case
I tried the same by configuring the conditions completely in Receiver Determination itself without using the Interface Determination, it worked perfectly fine. But, just wanted to understand that if this is an expected behavior.
Hi Sherin,
PI is working as per the pipeline steps where in your message spilit/branch happens post Interface determination. In your 2nd case, Field1=100, Field2=89, your first pipeline step which is the receiver determination says the msg shud be sent to rec A and Rec B. However when it comes to Interface determination for A it does not get one as the conditions differ and hence it fails.
However can you please confirm if you have ticked the maintain order at run time check box in the Interface determination. Ideally even this will not help. However can you please try this out and see if the interface works. Believe it shud not, however worth giving a try. Let me know
Regards,
Sriram
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sherin,
If i understood the question correctly, You have a receiver determination which states that When Field1 = 100, message should flow to ReceiverA and ReceiverB and corresponding Interface Determination has a condition for Receiver A as Field1=100 AND Field2=50. If there is no Interface Determination for Receiver B, you scenario is bound to fail as this is a standard behaviour for a classical XI scenario.
Please let me know in case of any queries
Regards,
Sriram
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sherin,
As there are two receivers Receiver A and Receiver B.You need to create two bussiness components and two communcication channels for two receivers and one Reciver Determination, two Interface Determination,two Receiver Agreement.In Receiver Determination you need to keep the below and condition.
In the above screenshot the two receiver are Receiver B and Receiver C and Field 1 is Key_Value and Field2 is Emp_ID.
If the Key_Value=100 and Emp_ID =22 then the message should go to both the receivers B & C by keeping the following AND condition
If the Key_Value=100 and Emp_ID is not equal to 22 then the message should go only to Receiver B by keeping the following condition
You need not keep any condition in Interface Determination just create 2 Interface determination for two receivers.
Hope this helps you.
Thanks,
Durga.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Durga,
Thanks for the efforts, but i already knew this would work only with Receiver Determination conditions. But, i wanted to know why it does not work with the combination of Receiver and Interface Determination conditions. In my real scenario, i have atleast 15 receivers for a single service and as many conditions.
Hi Sherin,
Can you please put screenshots as there are two operations like AND, OR for checking Filed values.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Keep the below condition for Receiver B in Interface determination and execute the interface once and see.
If field1 = 100 ,then put the payload in receiver Interface of Receiver B.
Regards
Venkat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.