on 09-18-2017 6:38 PM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
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
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)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
96 | |
11 | |
11 | |
10 | |
9 | |
8 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.