-
1. BPEL condition - input parameter exists ?
objectiser Feb 3, 2011 5:45 AM (in response to izgur)Are you using xpath2? i.e. the query/expression language set to version 2, as in http://ode.apache.org/xpath-extensions.html
-
2. BPEL condition - input parameter exists ?
izgur Feb 3, 2011 6:47 AM (in response to objectiser)Nice
<bpel:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[exists($input.payload/tns:arrSubscriber/tns:User[round($iterator)]/tns:sMultimediaIP)]]></bpel:condition>
WORKS!!!
I don't know how far I would be with my project without you... For sure I wouldn't be using BPEL.)
But now it looks like I'm going to finish the project till monday which was my deadline... and I really hope I'll get a new project in the near future...
Thank you Gary!
-
3. BPEL condition - input parameter exists ?
izgur Feb 3, 2011 7:51 AM (in response to izgur)Damn... still have problems...
Like I wrote I'm using the condition
<bpel:condition expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"><![CDATA[exists($input.payload/tns:arrSubscriber/tns:User[round($iterator)]/tns:sMultimediaIP)]]></bpel:condition>
Like you see I have an array or Subscribers and (in my while loop) I'm checking the MultimediaIP for every user...
MY EXISTS CONDITION WORKS ONLY FOR THE FIRST TIME !!!
So, just for the first user in my array the condition works correct !!!
The next ones are always - NOT EXIST (alhough... they exist)
Any idea?
-
4. BPEL condition - input parameter exists ?
objectiser Feb 3, 2011 8:02 AM (in response to izgur)This sounds strange behaviour.
Wondering why you have the 'round' function in the square brackets? What type is $iterator?
-
5. BPEL condition - input parameter exists ?
izgur Feb 3, 2011 8:35 AM (in response to objectiser)ROUND()
The $iterator is int. So like you said: why round() an integer...I copied that from another example and didn't change it because it worked well.
BUT... now I erased it and have : $input.payload/tns:arrSubscriber/tns:User[$iterator]/tns:sMultimediaIP)
Nothing changes for the EXISTS function... But one example is very STRANGE.. (first I looked like xpath2 is the problem, but it isn't)
if I have condition: exists($input.payload/tns:arrSubscriber/tns:User[$iterator]/tns:sMultimediaIP)
and inside the condition the bpel:copy: <![CDATA[$input.payload/tns:arrSubscriber/tns:User[$iterator]/tns:sMultimediaIP]]>
it returns selectionFailure- expression returned multiple nodes.
What I added round() to the bpel:copy -> WORKS...
PROBLEM - EXISTS WORKS ONLY FOR FIRST ARRAY ELEMENT, then no matter what - it doesn't exist ...
I hope It's not like the writing to an array ISSUE, which works fine for array[0], but you can't fill in array[1], [2], .. ..
-
6. BPEL condition - input parameter exists ?
objectiser Feb 3, 2011 8:51 AM (in response to izgur)Sorry Igor, I think your best option is to post this information on the ODE forum to see if anyone there has had a similar problem.
Especially mentioning the round() issue.
Regards
Gary