cancel
Showing results for 
Search instead for 
Did you mean: 

Conditions in Receiver Determination

Former Member
0 Kudos

Hi Experts,

I have a data file with employee information, each data record has employee ID (defined as string). When I send the data to the target, I only need to send certain employees, I am putting these employees' ID under Condition of Receiver Determination as below. Supposedly I should only send these two employees information to the target, the data is sent successfully according the message, but seems the filter under Condition of Receiver Determination didn't work, all the employees information are listed in the XML data file after "XML Validation Outbound Channel Request" step. I am just wondering if I missed anything or it is not defined correctly?

Can you give me any hints?

Really appreciate your input.

Blue

Accepted Solutions (1)

Accepted Solutions (1)

engswee
Active Contributor
0 Kudos

Hi Blue

Condition in Receiver Determination only determines whether the message will be sent to a particular receiver if the condition is met, but it does no filtering on the payload.

If you want to additionally filter the payload, you need to perform the filtering in mapping (quite easily achieved in Message mapping using the CreateIf node).

RecordSet/Record/BID = "XXX" ===> CreateIf ===> RecordSet/Record

(change context of BID to a level higher)

Rgds

Eng Swee

Former Member
0 Kudos

Thank you Eng for your response.

I put the filter in the MM, and tested it, it is working. This was what I suggested at the beginning, but my co-worker thinks it is better using Receiver Determination.

I am not 100% sure if condition in RD will work or not, I will test it.

Blue

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Receiver determination works based on XPATH of first record, it is not possible to filter records based on a value for each record. Technically it checks the condition only against first record but not record by record for every record,

The condition met true on first record value, the entire XML payload posted to configured receiver, otherwise the XML discarded.

Thanks

VJ Poreddy

Former Member
0 Kudos

Hi Blue

Remove the double quotes from the value of the conditions.

The value should be like below

Thanks,

Indrajit

Former Member
0 Kudos

Hi Indrajit,

My BID is defined as String, so I think it is better to use double quote, but I tested and it is not working with or without Double quote

Thanks

Blue

nidhi_srivastava22
Active Contributor
0 Kudos

Hi Blue,

Agreed with Eng Swee.

Please make the settings in your mapping, as your output is based on your mapping and not on the condition of receiver determination.

Receiver determination condition - helps you to route it to a particular receiver based on your condition.

Interface determination condition - helps you to choose the correct interface based on you condition.

Thanks,

Nidhi

Former Member
0 Kudos

Thank you Nidhi. It is more clear you explain how RD and ID works.

Blue

nidhi_srivastava22
Active Contributor
0 Kudos

Hi Blue,

RD - As the name suggests checks the condition and route to the receiver.

Say, Condition1 is true then the message will be received by Receiver1

else, if Condition2 is true then the message will be received by Receiver2.

ID - Checks the condition and accordingly selects the mapping/interface.

Say, Condition1 is true then the Operational Mapping 1 will be executed.

else, if Condition2 is true then the Operational Mapping 2 will be executed.

Thanks,

Nidhi