On Wed, Feb 29, 2012 at 9:30 PM, Chethiya Abeysinghe <cheth...@wso2.com>wrote:
> HI, > > It did work with both round method and initialing the array with elements. > Here is the working code. An interesting observation was, it only worked > after we started using the XPath version 2.0 as the query language for > assignments. > Yp. It's recommended to use XPath 2.0 . > > > > > <bpel:assign validate="no" name="Assign"> > <bpel:copy> > <bpel:from> > <bpel:literal xml:space="preserve"><tns:ArrayBPELProcessResponse > xmlns:tns="http://www.arraybpel.process" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > </tns:ArrayBPELProcessResponse></bpel:literal> > </bpel:from> > <bpel:to part="payload" variable="output"></bpel:to> > </bpel:copy> > <bpel:copy> > <bpel:from> > <bpel:literal xml:space="preserve"><tns:ArrayBPELProcessResponse > xmlns:tns="http://www.arraybpel.process" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > <tns:result>value</tns:result> > </tns:ArrayBPELProcessResponse></bpel:literal> > </bpel:from> > <bpel:to part="payload" variable="tempVar"></bpel:to> > </bpel:copy> > </bpel:assign> > <bpel:forEach parallel="no" counterName="Counter" name="ForEach"> > <bpel:startCounterValue> > <![CDATA[1]]> > </bpel:startCounterValue> > > <bpel:finalCounterValue><![CDATA[count($input.payload/tns:input)]]></bpel:finalCounterValue> > <bpel:completionCondition></bpel:completionCondition> > <bpel:scope> > <bpel:sequence> > <!-- <assign> <copy> <from>ode:insert-as-first-into($output, > $tempVar)</from> > <to variable="output"/> </copy> </assign> --> > <bpel:assign validate="no" name="Assign1"> > <bpel:copy> > <bpel:from><![CDATA[ode:insert-as-last-into($output.payload, > $tempVar.payload/tns:result)]]> > </bpel:from> > <bpel:to part="payload" variable="output" /> > </bpel:copy> > <bpel:copy> > <bpel:from part="payload" variable="input"> > <bpel:query > queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"> > <![CDATA[tns:input[round($Counter)] ]]> > </bpel:query> > </bpel:from> > <bpel:to part="payload" variable="output"> > <bpel:query > queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"> > <![CDATA[tns:result[round($Counter)] > ]]> > </bpel:query> > </bpel:to> > </bpel:copy> > </bpel:assign> > </bpel:sequence> > </bpel:scope> > </bpel:forEach> > > Thanks, > - Chethiya > > > On Tue, Feb 28, 2012 at 12:41 PM, Denis Weerasiri <de...@wso2.com> wrote: > >> >> >> On Tue, Feb 28, 2012 at 12:36 PM, Chethiya Abeysinghe >> <cheth...@wso2.com>wrote: >> >>> Hi Waruna, >>> >>> I tried round($Counter) with no luck. When it's used with the round, it >>> logs a selection error even for a single element in the array which was not >>> the case in above code. It works for a single element. >>> >>> Isn't it the problem is not initializing the result array with the >>> number of elements in the input array? >>> >> +1, this will be useful to insert new elements >> http://ode.apache.org/xpath-extensions.html >> >>> >>> Thanks, >>> - Chethiya >>> >>> >>> On Tue, Feb 28, 2012 at 12:22 PM, Waruna Ranasinghe <war...@wso2.com>wrote: >>> >>>> On Tue, Feb 28, 2012 at 12:01 PM, Chethiya Abeysinghe < >>>> cheth...@wso2.com> wrote: >>>> > Hi, >>>> > >>>> > I'm trying to assign an array to another array in a BPEL process. >>>> Following >>>> > is the bpel code for that: >>>> > >>>> > <bpel:forEach parallel="no" counterName="Counter" name="ForEach"> >>>> > >>>> <bpel:startCounterValue><![CDATA[1]]></bpel:startCounterValue> >>>> > >>>> <bpel:finalCounterValue><![CDATA[count($input.payload/tns:arr) >>>> > ]]></bpel:finalCounterValue> >>>> > <bpel:completionCondition></bpel:completionCondition> >>>> > <bpel:scope> >>>> > <bpel:assign validate="no" name="Assign"> >>>> > >>>> > <bpel:copy> >>>> > <bpel:from> >>>> > <bpel:literal >>>> > xml:space="preserve"><tns:ArrayBPELProcessResponse >>>> > xmlns:tns="http://www.arraybpel.process" >>>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >>>> > <tns:result></tns:result> >>>> > </tns:ArrayBPELProcessResponse></bpel:literal> >>>> > </bpel:from> >>>> > <bpel:to variable="output" >>>> part="payload"></bpel:to> >>>> > </bpel:copy> >>>> > <bpel:copy> >>>> > <bpel:from part="payload" variable="input"> >>>> > <bpel:query >>>> > >>>> queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:arr[$Counter]]]></bpel:query> >>>> IIRC there is an issue when evaluating the $Counter variable. Can you >>>> try using tns:arr[round($Counter)] >>>> >>>> Thanks, >>>> Waruna >>>> > </bpel:from> >>>> > <bpel:to part="payload" variable="output"> >>>> > <bpel:query >>>> > >>>> queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result[$Counter]]]></bpel:query> >>>> > </bpel:to> >>>> > </bpel:copy> >>>> > </bpel:assign> >>>> > </bpel:scope> >>>> > </bpel:forEach> >>>> > >>>> > >>>> > When I try to send multiple elements in the array it gives an error >>>> though >>>> > it works for an array with a single element. >>>> > >>>> > SOAP message is: >>>> > >>>> > <body> >>>> > <p:ArrayBPELProcessRequest xmlns:p="http://www.arraybpel.process"> >>>> > <!--0 or more occurrences--> >>>> > <arr xmlns="http://www.arraybpel.process">value1</arr> >>>> > <arr xmlns="http://www.arraybpel.process">value2</arr> >>>> > </p:ArrayBPELProcessRequest> >>>> > </body> >>>> > >>>> > And the error log is: >>>> > >>>> > [2012-02-28 11:45:12,148] INFO - ASSIGN - Assignment Fault: >>>> > {http://docs.oasis- >>>> > >>>> open.org/wsbpel/2.0/process/executable}selectionFailure,lineNo=73,faultExplanati<http://open.org/wsbpel/2.0/process/executable%7DselectionFailure,lineNo=73,faultExplanati> >>>> > on={ >>>> http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure >>>> : >>>> > M >>>> > ultiple results for expression: 'tns:arr[$Counter]' against '<?xml >>>> > version="1.0" >>>> > encoding="UTF-8"?> >>>> > <ArrayBPELProcessRequest xmlns="http://www.arraybpel.process" >>>> > xmlns:p="http://ww >>>> > w.arraybpel.process" xmlns:s=" >>>> http://schemas.xmlsoap.org/soap/envelope/" >>>> > xmlns:w >>>> > sa="http://www.w3.org/2005/08/addressing"><arr >>>> > xmlns="http://www.arraybpel.proce >>>> > ss">value1</arr><arr >>>> > xmlns="http://www.arraybpel.process">value2</arr></ArrayBPE >>>> > LProcessRequest>' >>>> > [2012-02-28 11:45:12,168] WARN - BpelProcess - Instance 270 of >>>> > {http://www.arra >>>> > ybpel.process}ArrayBPELProcess-9 has completed with fault: FaultData: >>>> > [faultName >>>> > ={ >>>> http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionFailure >>>> , >>>> > fau >>>> > lType=null >>>> > ({http://docs.oasis-open.org/wsbpel/2.0/process/executable}selectionF >>>> > ailure: Multiple results for expression: 'tns:arr[$Counter]' against >>>> '<?xml >>>> > vers >>>> > ion="1.0" encoding="UTF-8"?> >>>> > <ArrayBPELProcessRequest xmlns="http://www.arraybpel.process" >>>> > xmlns:p="http://ww >>>> > w.arraybpel.process" xmlns:s=" >>>> http://schemas.xmlsoap.org/soap/envelope/" >>>> > xmlns:w >>>> > sa="http://www.w3.org/2005/08/addressing"><arr >>>> > xmlns="http://www.arraybpel.proce >>>> > ss">value1</arr><arr >>>> > xmlns="http://www.arraybpel.process">value2</arr></ArrayBPE >>>> > LProcessRequest>')] @73 >>>> > >>>> > >>>> > Could someone please comment what's going wrong in this? >>>> > >>>> > Thanks, >>>> > - Chethiya >>>> > >>>> > _______________________________________________ >>>> > Carbon-dev mailing list >>>> > Carbon-dev@wso2.org >>>> > http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>>> > >>>> >>>> >>>> >>>> -- >>>> >>>> ------------------------------------------------------------------------- >>>> Waruna Ranasinghe >>>> Senior Software Engineer, WSO2 >>>> >>>> Mobile: +94 724 318285 >>>> BLOG: http://warunapw.blogspot.com >>>> >>>> www.wso2.com - "Lean . Enterprise . Middleware" >>>> _______________________________________________ >>>> Carbon-dev mailing list >>>> Carbon-dev@wso2.org >>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>>> >>> >>> >>> >>> -- >>> Chethiya Abeysinghe >>> Software Engineer; WSO2, Inc.; http://wso2.com/ >>> email: cheth...@wso2.com phone: +94 777334874 >>> blog: chethiya3000.blogspot.com >>> >>> >>> >>> _______________________________________________ >>> Carbon-dev mailing list >>> Carbon-dev@wso2.org >>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>> >>> >> >> >> -- >> Thanks, >> Denis >> ---------------------------------------------------------- >> *Denis Weerasiri* >> Software Engineer >> Integration Technologies Team, WSO2 Inc.; http://wso2.com, >> *email: denis <http://goog_277208233/>** [AT] wso2.com <http://wso2.com/> >> * >> *phone: +94117639629 >> * >> *site: >> **https://sites.google.com/site/ddweerasiri/*<https://sites.google.com/site/ddweerasiri/> >> *blog: **http://ddweerasiri.blogspot.com*<http://ddweerasiri.blogspot.com/> >> * >> twitter: **http://twitter.com/ddweerasiri*<http://twitter.com/ddweerasiri> >> * >> linked-in: >> **http://lk.linkedin.com/in/ddweerasiri*<http://lk.linkedin.com/in/ddweerasiri> >> >> >> _______________________________________________ >> Carbon-dev mailing list >> Carbon-dev@wso2.org >> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >> >> > > > -- > Chethiya Abeysinghe > Software Engineer; WSO2, Inc.; http://wso2.com/ > email: cheth...@wso2.com phone: +94 777334874 > blog: chethiya3000.blogspot.com > > > > _______________________________________________ > Carbon-dev mailing list > Carbon-dev@wso2.org > http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev > > -- Thanks, Denis ---------------------------------------------------------- *Denis Weerasiri* Software Engineer Integration Technologies Team, WSO2 Inc.; http://wso2.com, *email: denis <http://goog_277208233/>** [AT] wso2.com <http://wso2.com/>* *phone: +94117639629 * *site: **https://sites.google.com/site/ddweerasiri/*<https://sites.google.com/site/ddweerasiri/> *blog: **http://ddweerasiri.blogspot.com* <http://ddweerasiri.blogspot.com/> * twitter: **http://twitter.com/ddweerasiri* <http://twitter.com/ddweerasiri>* linked-in: **http://lk.linkedin.com/in/ddweerasiri*<http://lk.linkedin.com/in/ddweerasiri>
_______________________________________________ Carbon-dev mailing list Carbon-dev@wso2.org http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev