cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver Determination and Interface Determination Condition conflict in ICO

sherin_jose4
Participant
0 Kudos

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.

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

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

Former Member
0 Kudos

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

sherin_jose4
Participant
0 Kudos

Hi Sriram,

You are exactly correct with my scenario.

Doesn't this look like a product bug ?

As per my understanding on any middleware tool, such scenario should not fail.

Former Member
0 Kudos

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.

sherin_jose4
Participant
0 Kudos

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.

Former Member
0 Kudos

Hi Sherin,

Can you please put screenshots as there are two operations like AND, OR for checking Filed values.

Former Member
0 Kudos

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

sherin_jose4
Participant
0 Kudos

Hi Venkat,

This is how i have already configured the Interface Determination for ReceiverB.