¶
17.15.13. Samples
Simple echo script
<process name="echo" targetNamespace="http://temp.uri" xmlns:tns="http://temp.uri" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"> <partnerLinks> <partnerLink name="caller" partnerLinkType="tns:echoService"/> </partnerLinks> <variables> <variable name="request" messageType="tns:StringMessageType"/> </variables> <sequence name="EchoSequence"> <receive partnerLink="caller" portType="tns:echoPort" operation="echo" variable="request" createInstance="yes" name="EchoReceive"/> <reply partnerLink="caller" portType="tns:echoPort" operation="echo" variable="request" name="EchoReply"/> </sequence> </process>
... and corresponding WSDL
<definitions targetNamespace="http://temp.uri" xmlns:tns="http://temp.uri" xmlns:pl="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="StringMessageType"> <part name="echoString" type="xsd:string"/> </message> <portType name="echoPort"> <operation name="echo"> <input message="tns:StringMessageType"/> <output message="tns:StringMessageType"/> </operation> </portType> <pl:partnerLinkType name="echoService"> <pl:role name="svc"> <pl:portType name="tns:echoPort"/> </pl:role> </pl:partnerLinkType> </definitions>
Invoking Echo Service
SQL>select xpath_eval ('/echoResponse/echoString/text()', xml_tree_doc ( DB.DBA.soap_client ( url=>sprintf ('http://example.com:%s/BPELGUI/bpel.vsp?script=file://echo/echo.bpel',server_http_port()), operation=>'echo', soap_action=>'echo', parameters=> vector ('par', xtree_doc (']]><echoString>hello world</echoString><![CDATA['))) )); callret VARCHAR _______________________________________________________________________________ hello world 1 Rows. -- 330 msec.
¶
BPEL Functions
getVariableData
... <assign name="assignResult"> <copy> <from expression="concat( 'Hello ', bpws:getVariableData('input', 'payload', '/tns:echovirtRequest/tns:name'), ' ', bpws:getVariableData('input', 'payload', '/tns:echovirtRequest/tns:fname'))"/> <to variable="output" part="payload" query="/tns:echovirtResponse/tns:result"/> </copy> </assign> ...
count
... <assign name="assignResult"> <copy> <from part="payload" variable="input" query="count(//lines/line)"/> <to variable="count"/> </copy> </assign> ...
See Also: Reference Material in the Tutorial: | |
---|---|
See Also: Reference Material in the BPELDemo tutorials: | |
---|---|
BPEL4WS VAD package must be installed in order to view these tutorials. |