-
1. Re: BPEL beta2 - switch condition boolean true/false
aguizar Oct 5, 2006 9:10 PM (in response to kvak_tnt)What is the value returned by bpel:getVariableData('checkGuardResponse', 'ValueOUT') ?
The WSDL message and related schema types of the checkGuardResponse would also help. -
2. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 6, 2006 1:21 AM (in response to kvak_tnt)The return value of my checkGuardResponse should be true and false (implemented in java as told). I will test it this day whether this is really this value.
Greetings
Claus -
3. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 6, 2006 8:51 AM (in response to kvak_tnt)There seems to be something wrong with the condition itself.
I've tried the following code and it wasn't working...<case condition="1 = 1">
So here is the whole code - maybe you can see some errors?<switch> <case condition="1 = 1"> <assign name="set_App_PDFViewer"> <copy> <from part="Ticketnumber" variable="agilproReq"/> <to part="Ticketnumber" variable="setAppReq"/> </copy> <invoke inputVariable="setAppReq" operation="setApp" partnerLink="agilpro" portType="agi:AgilproIssuer"/> ... </case> <case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT') = 0"> <!--NOTHING TO DO HERE--> <empty /> </case> </switch>
Normally this code would be my condition:<case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT') = 1">
-
4. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 6, 2006 9:49 AM (in response to kvak_tnt)OK here comes the strange stuff:
It doesn't matter what conditions I write or anything else...
I have tried to use
switch\condition
and
switch\otherwise
as he won't use the condition I thought the jBOSS should use the otherwise - funtion
Not at all!
Now I tried to "kill" the switch code - my code works.
If I surround it with the switch - it works not...
I have also now tried the following (and it won't work):<variable name="check" type="xsd:boolean"/> <assign> <copy> <from expression="true()"/> <to variable="check"/> </copy> </assign> <switch name="split"> <case condition="bpel:getVariableData('check')">
Any suggestions?
Greetings
Claus -
5. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 6, 2006 11:11 AM (in response to kvak_tnt)Problem solved...
first point:<case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT')=true()">
second point: It is essentiel that code inside the has to be placed inside a or a
Greetings
Claus -
6. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 8, 2006 2:19 PM (in response to kvak_tnt)Oh I see there is missing some text...
inside a<flow>
or a<sequence>
should be there...
Ok Problem mostly solfed, but my Java function is returning a boolean value and it seems that this value is not correctly recogniced... Could this be? Here a code example:Random zufall = new Random(); returnvalue = zufall.nextBoolean(); System.out.println("\tOUTPUT:: "+ returnvalue); return returnvalue;
I also tried only an "return true" or "return false" - but got the same error - it doesn't matter which value I send back - It allways takes the first condition...
Any suggestions?
Greetings Claus -
7. Re: BPEL beta2 - switch condition boolean true/false
aguizar Oct 8, 2006 7:08 PM (in response to kvak_tnt)There might be an issue here, but it is hard to tell without seeing the process definition and related WSDL documents. Can you please paste a minimal version of the process that shows the problem?
-
8. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 9, 2006 4:57 AM (in response to kvak_tnt)It seems to be a problem only related to boolean.
If I change it to INT it works fine.
Here some stuff that you wanted:
partner-wsdl-file (functional):<message name="checkGuardRequest"> <part name="Ticketnumber" type="xsd:int"></part> <part name="SomeStuffIn" type="xsd:string"></part> (Dummypart here) </message> <message name="checkGuardResponse"> <part name="ValueOUT" type="xsd:int"></part> </message> <operation name="checkGuard"> <input message="agi:checkGuardRequest"></input> <output message="agi:checkGuardResponse"></output> </operation>
partner-wsdl-file (non-functional):<message name="checkGuardRequest"> <part name="Ticketnumber" type="xsd:int"></part> <part name="SomeStuffIn" type="xsd:string"></part> (Dummypart here) </message> <message name="checkGuardResponse"> <part name="ValueOUT" type="xsd:boolean"></part> </message> <operation name="checkGuard"> <input message="agi:checkGuardRequest"></input> <output message="agi:checkGuardResponse"></output> </operation>
partner_impl.java (functional):public int checkGuard(int ticketnumber, String SomeStuffIn) throws RemoteException { //This code is for test purposes only! //So I can change my output value without changing code and redeploy. boolean bool; int returnvalue=-1; //initialize and errorcode System.out.println("**** checkGuard ****"); System.out.println("\tINPUT:: ticketnumber: "+ticketnumber+"\tSomeStuffIN: "+SomeStuffIN); Random random = new Random(); bool = random.nextBoolean(); if (bool == true) returnvalue = 1; if (bool == false) returnvalue = 2; System.out.println("\tOUTPUT:: "+ returnvalue); return returnvalue; }
partner_impl.java (non-functional):public boolean checkGuard(int ticketnumber, String SomeStuffIn) throws RemoteException { boolean bool; System.out.println("**** checkGuard ****"); System.out.println("\tINPUT:: ticketnumber: "+ticketnumber+"\tSomeStuffIN: "+SomeStuffIN); Random random = new Random(); bool = random.nextBoolean(); System.out.println("\tYour returnvalue will be:: "+ bool); return bool; //Also not functional: //return true; //return false; }
Part of my.bpel (functional):<variable messageType="agi:checkGuardRequest" name="checkGuardReq"/> <variable messageType="agi:checkGuardResponse" name="checkGuardRes"/> <assign name="checkConditions"> <copy> <from part="Ticketnumber" variable="nReq"/> <to part="Ticketnumber" variable="checkGuardReq"/> </copy> <copy> somestuff </copy> </assign> <invoke inputVariable="checkGuardReq" operation="checkGuard" outputVariable="checkGuardRes" partnerLink="agilpro" portType="agi:AgilproIssuer"/> <switch name="SplitVertriebschef"> <case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT')=1"> <sequence> somestuff </sequence> </case> <case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT')=0"> <empty /> </case> <otherwise> <empty /> </otherwise> </switch>
Part of my.bpel (non-functional):<variable messageType="agi:checkGuardRequest" name="checkGuardReq"/> <variable messageType="agi:checkGuardResponse" name="checkGuardRes"/> <assign name="checkConditions"> <copy> <from part="Ticketnumber" variable="nReq"/> <to part="Ticketnumber" variable="checkGuardReq"/> </copy> <copy> somestuff </copy> </assign> <invoke inputVariable="checkGuardReq" operation="checkGuard" outputVariable="checkGuardRes" partnerLink="agilpro" portType="agi:AgilproIssuer"/> <switch name="SplitVertriebschef"> <case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT')=true()"> <sequence> somestuff </sequence> </case> <case condition="bpel:getVariableData('checkGuardRes', 'ValueOUT')=false()"> <empty /> </case> <otherwise> <empty /> </otherwise> </switch>
my Variable checkGuardRes with its ValueOUT should have the boolean true or false as value. But It seems that he doesn't really check this value - there seems to be some issue as it allways started the first condition. Maybe only my condition is wrong? But I havent found NOWHERE any example that may fit my case...
I hope this will help you. I have changed my code to int values - so I have more options for returnvalues and it works :-)
Greetings
Claus -
9. Re: BPEL beta2 - switch condition boolean true/false
kvak_tnt Oct 9, 2006 5:10 AM (in response to kvak_tnt)Maybe this code needed?
partner-impl.wsdl<operation name="checkGuard"> <soap:operation soapAction="urn:samples:agilpro:action:checkGuard" /> <input> <soap:body use="literal" namespace="urn:samples:agilpro" /> </input> <output> <soap:body use="literal" namespace="urn:samples:agilpro" /> </output> </operation>
This code is allways the same...
Greetings
Claus