[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[bpel-dev] Question of BPEL Validator
|
Hi,
I have the following BPEL Definitions. It is right, because it is deployed and tested. However, the validator reports an error. Please give me suggestions on how to fix this. Thanks.
<process name="logistic" targetNamespace="
http://de.fhg.ipsi.oasys.businessScenario.sample"
suppressJoinFailure="yes" xmlns:tns="
http://de.fhg.ipsi.oasys.businessScenario.sample"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns="
http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/" xmlns:bpel="
http://docs.oasis-open.org/wsbpel/2.0/process/executable">
<import importType="
http://schemas.xmlsoap.org/wsdl/"
namespace="
http://de.fhg.ipsi.oasys.businessScenario.sample" location="procurement.wsdl" />
<partnerLinks>
<partnerLink name="logistics" partnerLinkType="tns:accLogistics"
myRole="logistics" partnerRole="accounting" initializePartnerRole="yes" />
</partnerLinks>
<variables>
<variable name="getStatus" messageType="tns:getStatus" />
<variable name="status" messageType="tns:status" />
<variable name="terminate" messageType="tns:terminate" />
<variable name="order" messageType="tns:order" />
<variable name="orderConf" messageType="tns:order" />
<variable name="i" type="xsd:int" />
<variable name="step" type="xsd:int" />
</variables><!--
<faultHandlers>
<catchAll>
<assign>
<copy>
<from>-1</from>
<to>$i</to>
</copy>
</assign>
</catchAll>
</faultHandlers> -->
<pick createInstance="yes" name="startProcess">
<onMessage name="deliver" partnerLink="logistics" portType="tns:logistics"
operation="deliverOp" variable="order">
<if name="notOutOfStock">
<condition>1=1</condition>
<sequence>
<assign>
<bpel:copy>
<bpel:from variable="order" part="parameters" />
<bpel:to variable="orderConf" part="parameters" />
</bpel:copy>
<copy>
<from>0</from>
<to>$i</to>
</copy>
<copy>
<from>1</from>
<to>$step</to>
</copy>
<copy>
<from>
<literal>company</literal>
</from>
<to>$orderConf.parameters/tns:buyer/tns:name</to>
</copy>
</assign>
<invoke name="deliver_conf" partnerLink="logistics"
portType="tns:accLogistics" operation="deliver_confOp"
inputVariable="orderConf">
</invoke>
<assign>
<copy>
<from> $i + $step </from>
<to>$i</to>
</copy>
</assign>
<!-- <while name="parcelTracking"> <condition>$i < 10</condition> -->
<pick>
<onMessage name="getStatus" partnerLink="logistics"
portType="tns:logistics" operation="getStatusOpL" variable="getStatus">
<sequence>
<assign>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve">
<tns:statusElement
xmlns:tns="
http://de.fhg.ipsi.oasys.businessScenario.sample"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<tns:trackNum>0</tns:trackNum>
<tns:orderNum>0</tns:orderNum>
<tns:status>tns:status</tns:status>
</tns:statusElement>
</bpel:literal>
</bpel:from>
<bpel:to variable="status" part="parameters"></bpel:to>
</bpel:copy>
<copy>
<from>$getStatus.parameters/tns:orderNum</from>
<to>$status.parameters/tns:orderNum</to>
</copy>
<copy>
<from>$getStatus.parameters/tns:trackNum</from>
<to>$status.parameters/tns:trackNum</to>
</copy>
<copy>
<from>
<literal>status from logis service</literal>
</from>
<to>$status.parameters/tns:status</to>
</copy>
<copy>
<from> $i + $step </from>
<to>$i</to>
</copy>
</assign>
<wait>
<for>'PT30S'</for>
</wait>
<reply name="status" partnerLink="logistics" portType="tns:logistics"
operation="getStatusOpL" variable="status" />
<assign>
<copy>
<from> $i + $step </from>
<to>$i</to>
</copy>
</assign>
</sequence>
</onMessage>
<onMessage partnerLink="logistics" portType="tns:logistics"
operation="terminateOpL" variable="terminate">
<exit />
</onMessage>
</pick>
<!-- </while> -->
</sequence>
</if>
</onMessage>
</pick>
</process>
the Related WSDL is the following.
<wsdl:definitions xmlns:tns="
http://de.fhg.ipsi.oasys.businessScenario.sample"
xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/" xmlns:vprop="
http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:plnk="
http://docs.oasis-open.org/wsbpel/2.0/plnktype"
targetNamespace="
http://de.fhg.ipsi.oasys.businessScenario.sample"
name="accountingS">
<wsdl:types>
<xsd:schema attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="
http://de.fhg.ipsi.oasys.businessScenario.sample"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="orderType">
<xsd:sequence>
<xsd:element name="buyer" type="tns:company" />
<xsd:element name="accounting" type="tns:company" />
<xsd:element name="logistic" type="tns:company" />
<xsd:element name="orderDate" type="xsd:dateTime" />
<xsd:element name="preferredDeliveryDate" type="xsd:dateTime" />
<xsd:element name="estimatedDeliveryDate" type="xsd:dateTime" />
<xsd:element name="orderLines" type="tns:orderLineType" />
<xsd:element name="trackNum" type="xsd:int" />
<xsd:element name="orderNum" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="orderElement" type="tns:orderType" />
<xsd:element name="orderDeliElement" type="tns:orderType" />
<xsd:complexType name="company">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="street" type="xsd:string" />
<xsd:element name="city" type="xsd:string" />
<xsd:element name="zipCode" type="xsd:int" />
<xsd:element name="phone" type="xsd:string" />
<xsd:element name="urlString" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="orderLineType">
<xsd:sequence>
<xsd:element name="orderLineNum" type="xsd:int" />
<xsd:element name="item" type="tns:itemType" />
<xsd:element name="amount" type="xsd:double" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element name="itemNum" type="xsd:int" />
<xsd:element name="itemDescription" type="xsd:string" />
<xsd:element name="itemUnit" type="xsd:string" />
<xsd:element name="pricePerUnit" type="xsd:double" />
<xsd:element name="volume" type="xsd:double" />
<xsd:element name="volumeUnit" type="xsd:string" />
<xsd:element name="weight" type="xsd:double" />
<xsd:element name="weightUnit" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="getStatus">
<xsd:sequence>
<xsd:element name="trackNum" type="xsd:int" />
<xsd:element name="orderNum" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getStatusElement" type="tns:getStatus" />
<xsd:complexType name="status">
<xsd:sequence>
<xsd:element name="trackNum" type="xsd:int" />
<xsd:element name="orderNum" type="xsd:int" />
<xsd:element name="status" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="statElement" type="tns:status" />
<xsd:complexType name="terminate">
<xsd:sequence>
<xsd:element name="trackNum" type="xsd:int" />
<xsd:element name="orderNum" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="terminateElement" type="tns:terminate" />
<!-- For available testing service -->
<xsd:element name="urlElement">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="urlString" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="statusElement">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="statusString" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="faultElement">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="faultName" type="xsd:string" />
<xsd:element name="detail" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="order">
<wsdl:part name="parameters" element="tns:orderElement" />
</wsdl:message>
<wsdl:message name="delivery">
<wsdl:part name="parameters" element="tns:orderDeliElement" />
</wsdl:message>
<wsdl:message name="outOfStock">
<wsdl:part name="parameters" element="tns:orderElement" />
</wsdl:message>
<wsdl:message name="getStatus">
<wsdl:part name="parameters" element="tns:getStatusElement" />
</wsdl:message>
<wsdl:message name="status">
<wsdl:part name="parameters" element="tns:statElement" />
</wsdl:message>
<wsdl:message name="deliver_conf">
<wsdl:part name="parameters" element="tns:orderElement" />
</wsdl:message>
<wsdl:message name="terminate">
<wsdl:part name="parameters" element="tns:terminateElement" />
</wsdl:message>
<!-- Messages Definitions for Availability Testing Service -->
<wsdl:message name="urlMsg">
<wsdl:part element="tns:urlElement" name="parameters" />
</wsdl:message>
<wsdl:message name="statusMsg">
<wsdl:part element="tns:statusElement" name="parameters" />
</wsdl:message>
<wsdl:message name="faultMessage">
<wsdl:part element="tns:faultElement" name="parameters" />
</wsdl:message>
<wsdl:portType name="init">
<wsdl:operation name="receiveOP">
<wsdl:input message="tns:order" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="buyer">
<wsdl:operation name="deliveryOp">
<wsdl:input message="tns:order" />
</wsdl:operation>
<wsdl:operation name="statusOp">
<wsdl:input message="tns:status" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="accBuyer">
<wsdl:operation name="orderOp">
<wsdl:input message="tns:order" />
</wsdl:operation>
<wsdl:operation name="getStatusOp">
<wsdl:input message="tns:getStatus" />
</wsdl:operation>
<wsdl:operation name="terminateOp">
<wsdl:input message="tns:terminate" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="accLogistics">
<wsdl:operation name="outOfStockOp">
<wsdl:input message="tns:delivery" />
</wsdl:operation>
<wsdl:operation name="deliver_confOp">
<!-- <input message="tns:deliver_conf" /> -->
<wsdl:input message="tns:order" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="logistics">
<wsdl:operation name="getStatusOpL">
<wsdl:input message="tns:getStatus" />
<wsdl:output message="tns:status" />
</wsdl:operation>
<wsdl:operation name="deliverOp">
<wsdl:input message="tns:order" />
</wsdl:operation>
<wsdl:operation name="terminateOpL">
<wsdl:input message="tns:terminate" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="initBinding" type="tns:init">
<soap:binding transport="
http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="receiveOP">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="buyerBinding" type="tns:buyer">
<soap:binding transport="
http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="deliveryOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="statusOp">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="accBuyerBinding" type="tns:accBuyer">
<soap:binding transport="
http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="orderOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="getStatusOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="terminateOp">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="accLogisticsBinding" type="tns:accLogistics">
<soap:binding transport="
http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="outOfStockOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="deliver_confOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="logisticsBinding" type="tns:logistics">
<soap:binding transport="
http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="getStatusOpL">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deliverOp">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="terminateOpL">
<soap:operation soapAction="" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="init">
<wsdl:port name="initPort" binding="tns:initBinding">
<soap:address location="
http://192.168.1.100:8080/ode/processes/init" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="buyer">
<wsdl:port name="buyerPort" binding="tns:buyerBinding">
<soap:address location="
http://192.168.1.100:8080/ode/processes/buyer" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="accountingBuyer">
<wsdl:port name="accBuyerPort" binding="tns:accBuyerBinding">
<soap:address
location="
http://192.168.1.100:8080/ode/processes/accountingBuyer" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="accountingLogis">
<wsdl:port name="accLogisticsPort" binding="tns:accLogisticsBinding">
<soap:address
location="
http://192.168.1.100:8080/ode/processes/accountingLogis" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="logistics">
<wsdl:port name="logisticsPort" binding="tns:logisticsBinding">
<soap:address location="
http://192.168.1.102:8080/ode/processes/logistics" />
</wsdl:port>
</wsdl:service>
<!-- Porttype and Binding Information for availability testing service -->
<wsdl:portType name="AvailTestServicePT">
<wsdl:operation name="TestAvail">
<wsdl:input message="tns:urlMsg" />
<wsdl:output message="tns:statusMsg" />
<wsdl:fault message="tns:faultMessage" name="fault" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AvailTestServiceSOAP" type="tns:AvailTestServicePT">
<soap:binding style="document"
transport="
http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="TestAvail">
<soap:operation
soapAction="
http://de.fhg.ipsi.oasys.businessScenario.sample/TestAvail" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AvailTestService">
<wsdl:port binding="tns:AvailTestServiceSOAP" name="AvailTestServiceSOAP">
<soap:address
location="
http://192.168.1.101:8080/AvailTestService/services/AvailTestServiceSOAP" />
</wsdl:port>
</wsdl:service>
<plnk:partnerLinkType name="init">
<plnk:role name="initBuyer" portType="tns:init" />
</plnk:partnerLinkType>
<plnk:partnerLinkType name="accBuyer">
<plnk:role name="accounting" portType="tns:accBuyer" />
<plnk:role name="buyer" portType="tns:buyer" />
</plnk:partnerLinkType>
<plnk:partnerLinkType name="accLogistics">
<plnk:role name="accounting" portType="tns:accLogistics" />
<plnk:role name="logistics" portType="tns:logistics" />
</plnk:partnerLinkType>
<!-- Partner Link Type Definition for Availability Testing Service -->
<plnk:partnerLinkType name="availTestLT">
<plnk:role name="availTestServiceProvider" portType="tns:AvailTestServicePT"/>
</plnk:partnerLinkType>
</wsdl:definitions>