Skip to Content
0

Can't determine receivers because condition evaluation failed - help

Sep 18, 2017 at 05:38 PM

269

avatar image
Former Member

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

boss1.png (14.1 kB)
boss2.png (6.3 kB)
boss3.png (10.7 kB)
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Evgeniy Kolmakov Sep 18, 2017 at 08:57 PM
1

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.

Show 9 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Does the EX go in the Right Operand then?

0

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

0
Former Member

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)

0

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

0

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.

1

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

1

Hi Mark!

Yes, you're right.

Regards, Evgeniy.

0

Let's try first :-)

0
Former Member

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

0
Hareesh Gampa Sep 18, 2017 at 07:31 PM
1

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)

Show 1 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Yes I definitely have that correct

boss4.png (25.6 kB)
0