cancel
Showing results for 
Search instead for 
Did you mean: 

Can't determine receivers because condition evaluation failed - help

0 Kudos

Hello all,

I am receiving the error "Can't determine receivers because condition evaluation failed...." and I am not sure why. Below I have my payload, my message type request, and my receiver ico conditions. I think it may have something to do with the xpath prefix, but I am not sure. Are you able to help?

Thanks

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member190293
Active Contributor

Hi Ryan!

Did you try this:

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 6] EX

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 4] EX

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 1 or BL_WHSE_ID = 3] EX

Regards, Evgeniy.

0 Kudos

Does the EX go in the Right Operand then?

former_member190293
Active Contributor
0 Kudos

Yes, it does. Actually, there is no right operand in this case. "EX" is used as operator instead of "=".

0 Kudos

Ok I will try that... any difference between these two?

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 6] EX

(/p1:BOSSTrackingNumberSEL_MT/Recordset/Records/BL_WHSE_ID = 6)

former_member190293
Active Contributor
0 Kudos

Let's try first 🙂

markangelo_dihiansan
Active Contributor
0 Kudos

Hi,

Brackets are needed to use operands in xpath. By that definition this syntax /p1:BOSSTrackingNumberSEL_MT/Recordset/Records/BL_WHSE_ID = 6 is incorrect 🙂

Shabarish's blog is still very useful

https://blogs.sap.com/2006/06/07/customise-your-xpath-expressions-in-receiver-determination/

Regards,

Mark

former_member190293
Active Contributor

Hi Mark!

I may by wrong but the main idea is not to use or not to use the brackets in XPath expression.

Result of original XPath expression is NodeSet. And it can't be compared with numeric value. I didn't try it, but I think that expression like: /p1:BOSSTrackingNumberSEL_MT/Recordset[1]/Records[1]/BL_WHSE_ID[1] = 6 will be evaluated without errors. But the point is that such expression is logically wrong. We need to check if there is at least one node that satisfies the given condition. Because of this "Exists" function should be used in XPath expression.

Regards, Evgeniy.

markangelo_dihiansan
Active Contributor

Hi Evgeniy,

Apologies for the misunderstanding, I was thinking that he would use /p1:BOSSTrackingNumberSEL_MT/Recordset/Records/BL_WHSE_ID = 6 in an EX.

Anyway, checking multiline will ensure that it will check all nodes on the xpath for the condition stated. I don't see anything wrong with the conditions in his screen too.

Hi Ryan,

Have you tried recreating the ICO? What is your PI version by the way?

Regards,

Mark

former_member190293
Active Contributor
0 Kudos

Hi Mark!

Yes, you're right.

Regards, Evgeniy.

0 Kudos

Hi Evgeniy, Sorry for the delay, but the below worked! Thanks so much!

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 6] EX

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 4] EX

/p1:BOSSTrackingNumberSEL_MT/Recordset/Records[BL_WHSE_ID = 1 or BL_WHSE_ID = 3] EX

former_member184720
Active Contributor

Make sure that the prefix(p1) is being pointed to the correct namespace (http://xxx/BossTrackingNumber).

Open the condition editor -> Expression editor (which allows you to select the condition) -> at the bottom of the screen, you should notice a section where you can configure the "Prefix".(Ideally this should have been populated automatically)

0 Kudos

Yes I definitely have that correct