Commit da9c80ad authored by Tiemo Bang's avatar Tiemo Bang

Inital commit

parents
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ConductOrder84</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.bpel.validator.builder</name>
<arguments>
<dictionary>
<key>debug</key>
<value>false</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="ConductOrder84">
<wb-resource deploy-path="/" source-path="/rev0"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="bpel.facet.core"/>
<installed facet="bpel.facet.core" version="2.0"/>
</faceted-project>
<?xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:tns="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:FlowSOG="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="FlowSOG">
<documentation>
FlowSOG Shop services
</documentation>
<!-- ===== -->
<!-- Types -->
<!-- ===== -->
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://iaas.uni-stuttgart.de/labs/FlowSOG">
<!-- <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> -->
<complexType name="productStatus">
<sequence>
<element name="currentAvailability" minOccurs="1" maxOccurs="1" default="available">
<simpleType>
<restriction base="xsd:string">
<enumeration value="available"/>
<enumeration value="not available"/>
</restriction>
</simpleType>
</element>
<element name="availableAgainInDays" type="xsd:integer" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>
If product is not available, this value indicates in how many days the product is expected to be available again.
</documentation>
</annotation>
</element>
<!-- <any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/> -->
</sequence>
<anyAttribute/>
</complexType>
<complexType name="product">
<sequence>
<element name="id" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="producer" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="weight" type="xsd:decimal" minOccurs="0" maxOccurs="1"/>
<element name="price" type="xsd:decimal" minOccurs="0" maxOccurs="1"/>
<element name="status" type="FlowSOG:productStatus" minOccurs="0" maxOccurs="1"/>
<!-- <any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/> -->
</sequence>
<anyAttribute/>
</complexType>
<complexType name="productList">
<sequence>
<element name="product" type="FlowSOG:product" minOccurs="0" maxOccurs="unbounded"/>
<!-- <any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace"/> -->
</sequence>
<anyAttribute/>
</complexType>
<complexType name="order">
<sequence>
<element name="orderId" minOccurs="0" maxOccurs="1" type="xsd:string"/>
<element name="customerId" type="xsd:string"/>
<element name="products">
<complexType>
<sequence>
<element name="product" minOccurs="1" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="productId" type="xsd:string"/>
<element name="numberOfItems" type="xsd:integer"/>
</sequence>
<anyAttribute/>
</complexType>
</element>
</sequence>
<anyAttribute/>
</complexType>
</element>
<element name="shippingAddress" type="xsd:string"/>
<element name="paymentDetails">
<complexType>
<sequence>
<element name="bankName" type="xsd:string"/>
<element name="bankAddress" type="xsd:string"/>
<element name="accountNumber" type="xsd:string"/>
<element name="accountHolderName" type="xsd:string"/>
</sequence>
<anyAttribute/>
</complexType>
</element>
<element name="status" minOccurs="0" maxOccurs="1">
<simpleType>
<restriction base="xsd:string">
<enumeration value="ordered"/>
<enumeration value="payed"/>
<enumeration value="shipped"/>
</restriction>
</simpleType>
</element>
</sequence>
<anyAttribute/>
</complexType>
<!-- Empty response -->
<!-- <element name="myOpResponse"><complexType/></element> -->
<!-- Inventory Service -->
<element name="checkAvailability">
<complexType>
<sequence>
<element name="productId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="checkAvailabilityResponse">
<complexType>
<sequence>
<!-- <element name="status" type="FlowSOG:productStatus"/> -->
<element name="product" type="FlowSOG:product"/>
</sequence>
</complexType>
</element>
<element name="checkAvailabilityAsync">
<complexType>
<sequence>
<element name="callbackUrl" type="xsd:string"/>
<element name="customerId" type="xsd:string"/>
<element name="productId" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="listProducts">
<complexType>
<sequence>
<element name="limit" type="xsd:integer"/>
</sequence>
</complexType>
</element>
<element name="listProductsResponse">
<complexType>
<sequence>
<element name="productList" type="FlowSOG:productList"/>
</sequence>
</complexType>
</element>
<element name="onFinishCheckAvailability">
<complexType>
<sequence>
<element name="customerId" type="xsd:string"/>
<!-- <element name="status" type="FlowSOG:productStatus"/> -->
<element name="productList" type="FlowSOG:productList"/>
</sequence>
</complexType>
</element>
<!-- Order Service -->
<element name="calcOrderCosts">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="calcOrderCostsResponse">
<complexType>
<sequence>
<element name="orderCosts" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
<element name="storeOrderDetails" type="FlowSOG:order"/>
<element name="storeOrderDetailsResponse">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getOrderDetails">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getOrderDetailsResponse" type="FlowSOG:order"/>
<element name="cancelOrder">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<!-- Payment Service -->
<element name="calcTransactionCosts">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="calcTransactionCostsResponse">
<complexType>
<sequence>
<element name="transactionCosts" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
<element name="conductPayment">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
<element name="amount" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
<element name="conductPaymentResponse" type="FlowSOG:order"/>
<!-- Shipment Service -->
<element name="calcShipmentCosts">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="calcShipmentCostsResponse">
<complexType>
<sequence>
<element name="shipmentCosts" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
<element name="shipProducts">
<complexType>
<sequence>
<element name="orderId" type="xsd:string"/>
<element name="date" type="xsd:date"/>
</sequence>
</complexType>
</element>
<element name="shipProductsResponse" type="FlowSOG:order"/>
</schema>
</types>
<!-- ======== -->
<!-- Messages -->
<!-- ======== -->
<!-- SOAP faults: http://web-gmazza.rhcloud.com/blog/entry/asynchronous-web-service-calls -->
<!-- <message name="fault"><part name="error" type="xsd:string"/></message> -->
<!-- Inventory Service -->
<message name="checkAvailabilityInput">
<part name="checkAvailabilityInput" element="FlowSOG:checkAvailability"/>
</message>
<message name="checkAvailabilityOutput">
<part name="checkAvailabilityOutput" element="FlowSOG:checkAvailabilityResponse"/>
</message>
<message name="checkAvailabilityAsyncInput">
<part name="checkAvailabilityAsyncInput" element="FlowSOG:checkAvailabilityAsync"/>
</message>
<message name="listProductsInput">
<part name="listProductsInput" element="FlowSOG:listProducts"/>
</message>
<message name="listProductsOutput">
<part name="listProductsOutput" element="FlowSOG:listProductsResponse"/>
</message>
<message name="onFinishCheckAvailabilityInput">
<part name="onFinishCheckAvailabilityInput" element="FlowSOG:onFinishCheckAvailability"/>
</message>
<!-- Order Service -->
<message name="calcOrderCostsInput">
<part name="calcOrderCostsInput" element="FlowSOG:calcOrderCosts"/>
</message>
<message name="calcOrderCostsOutput">
<part name="calcOrderCostsOutput" element="FlowSOG:calcOrderCostsResponse"/>
</message>
<message name="storeOrderDetailsInput">
<part name="storeOrderDetailsInput" element="FlowSOG:storeOrderDetails"/>
</message>
<message name="storeOrderDetailsOutput">
<part name="storeOrderDetailsOutput" element="FlowSOG:storeOrderDetailsResponse"/>
</message>
<message name="getOrderDetailsInput">
<part name="getOrderDetailsInput" element="FlowSOG:getOrderDetails"/>
</message>
<message name="getOrderDetailsOutput">
<part name="getOrderDetailsOutput" element="FlowSOG:getOrderDetailsResponse"/>
</message>
<message name="cancelOrderInput">
<part name="cancelOrderInput" element="FlowSOG:cancelOrder"/>
</message>
<!-- Payment Service -->
<message name="calcTransactionCostsInput">
<part name="calcTransactionCostsInput" element="FlowSOG:calcTransactionCosts"/>
</message>
<message name="calcTransactionCostsOutput">
<part name="calcTransactionCostsOutput" element="FlowSOG:calcTransactionCostsResponse"/>
</message>
<message name="conductPaymentInput">
<part name="conductPaymentInput" element="FlowSOG:conductPayment"/>
</message>
<message name="conductPaymentOutput">
<part name="conductPaymentOutput" element="FlowSOG:conductPaymentResponse"/>
</message>
<!-- Shipment Service -->
<message name="calcShipmentCostsInput">
<part name="calcShipmentCostsInput" element="FlowSOG:calcShipmentCosts"/>
</message>
<message name="calcShipmentCostsOutput">
<part name="calcShipmentCostsOutput" element="FlowSOG:calcShipmentCostsResponse"/>
</message>
<message name="shipProductsInput">
<part name="shipProductsInput" element="FlowSOG:shipProducts"/>
</message>
<message name="shipProductsOutput">
<part name="shipProductsOutput" element="FlowSOG:shipProductsResponse"/>
</message>
<!-- ========== -->
<!-- Port Types -->
<!-- ========== -->
<portType name="InventoryPortType">
<operation name="checkAvailability">
<input message="tns:checkAvailabilityInput"/>
<output message="tns:checkAvailabilityOutput"/>
<!-- <fault message="tns:fault"/> -->
</operation>
<operation name="checkAvailabilityAsync">
<input message="tns:checkAvailabilityAsyncInput"/>
</operation>
<operation name="listProducts">
<input message="tns:listProductsInput"/>
<output message="tns:listProductsOutput"/>
</operation>
</portType>
<portType name="InventoryCallbackPortType">
<operation name="onFinishCheckAvailability">
<input message="tns:onFinishCheckAvailabilityInput"/>
</operation>
</portType>
<portType name="OrderPortType">
<operation name="calcOrderCosts">
<input message="tns:calcOrderCostsInput"/>
<output message="tns:calcOrderCostsOutput"/>
</operation>
<operation name="storeOrderDetails">
<input message="tns:storeOrderDetailsInput"/>
<output message="tns:storeOrderDetailsOutput"/>
</operation>
<operation name="getOrderDetails">
<input message="tns:getOrderDetailsInput"/>
<output message="tns:getOrderDetailsOutput"/>
</operation>
<operation name="cancelOrder">
<input message="tns:cancelOrderInput"/>
</operation>
</portType>
<portType name="PaymentPortType">
<operation name="calcTransactionCosts">
<input message="tns:calcTransactionCostsInput"/>
<output message="tns:calcTransactionCostsOutput"/>
</operation>
<operation name="conductPayment">
<input message="tns:conductPaymentInput"/>
<output message="tns:conductPaymentOutput"/>
</operation>
</portType>
<portType name="ShipmentPortType">
<operation name="calcShipmentCosts">
<input message="tns:calcShipmentCostsInput"/>
<output message="tns:calcShipmentCostsOutput"/>
</operation>
<operation name="shipProducts">
<input message="tns:shipProductsInput"/>
<output message="tns:shipProductsOutput"/>
</operation>
</portType>
<!-- ======== -->
<!-- Bindings -->
<!-- ======== -->
<binding name="InventorySoapBinding" type="tns:InventoryPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="checkAvailability">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Inventory/checkAvailability"/>
<input>
<!-- <SOAP:body use="encoded" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> -->
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
<!-- <fault><SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/></fault> -->
</operation>
<operation name="checkAvailabilityAsync">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Inventory/checkAvailabilityAsync"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
</operation>
<operation name="listProducts">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Inventory/listProducts"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
</binding>
<binding name="InventoryCallbackSoapBinding" type="tns:InventoryCallbackPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="onFinishCheckAvailability">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Inventory/onFinishCheckAvailability"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
</operation>
</binding>
<binding name="OrderSoapBinding" type="tns:OrderPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="calcOrderCosts">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Order/calcOrderCosts"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
<operation name="storeOrderDetails">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Order/storeOrderDetails"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
<operation name="getOrderDetails">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Order/getOrderDetails"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
<operation name="cancelOrder">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Order/cancelOrder"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
</operation>
</binding>
<binding name="PaymentSoapBinding" type="tns:PaymentPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="calcTransactionCosts">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Payment/calcTransactionCosts"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
<operation name="conductPayment">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Payment/conductPayment"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
</binding>
<binding name="ShipmentSoapBinding" type="tns:ShipmentPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="calcShipmentCosts">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Shipment/calcShipmentCosts"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
<operation name="shipProducts">
<SOAP:operation style="document" soapAction="http://iaas.uni-stuttgart.de/labs/FlowSOG/Shipment/shipProducts"/>
<input>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</input>
<output>
<SOAP:body use="literal" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
</output>
</operation>
</binding>
<!-- ======== -->
<!-- Services -->
<!-- ======== -->
<service name="InventoryService">
<port name="InventoryPort" binding="tns:InventorySoapBinding">
<SOAP:address location="http://46.101.159.46:3000/InventoryService/InventoryPort"/>
</port>
</service>
<!-- This service endpoint has to be provided by the invoker, e.g., the BPEL workflow invoking the InventoryService -->
<service name="InventoryCallbackService">
<port name="InventoryCallbackPort" binding="tns:InventoryCallbackSoapBinding">
<SOAP:address location="http://localhost:8080/ode/processes/IntentoryCallbackService"/>
</port>
</service>
<service name="OrderService">
<port name="OrderPort" binding="tns:OrderSoapBinding">
<SOAP:address location="http://46.101.159.46:3000/OrderService/OrderPort"/>
</port>
</service>
<service name="PaymentService">
<port name="PaymentPort" binding="tns:PaymentSoapBinding">
<SOAP:address location="http://46.101.159.46:3000/PaymentService/PaymentPort"/>
</port>
</service>
<service name="ShipmentService">
<port name="ShipmentPort" binding="tns:ShipmentSoapBinding">
<SOAP:address location="http://46.101.159.46:3000/ShipmentService/ShipmentPort"/>
</port>
</service>
</definitions>
\ No newline at end of file
<!-- ConductOrder84 BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Sun Nov 06 17:39:57 CET 2016 -->
<bpel:process name="ConductOrder84"
targetNamespace="group12"
suppressJoinFailure="yes"
xmlns:tns="group12"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns="http://iaas.uni-stuttgart.de/labs/FlowSOG"
xmlns:xns="http://www.w3.org/2001/XMLSchema"
>
<!-- Import the client WSDL -->
<bpel:import namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"
location="46.101.159.46.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
<bpel:import location="ConductOrder84Artifacts.wsdl" namespace="group12"
importType="http://schemas.xmlsoap.org/wsdl/" />
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<bpel:partnerLinks>
<!-- The 'client' role represents the requester of this service. -->
<bpel:partnerLink name="client"
partnerLinkType="tns:ConductOrder84"
myRole="ConductOrder84Provider"
/>
<bpel:partnerLink name="InventoryPL" partnerLinkType="tns:InventoryPLT"
partnerRole="InventoryService"></bpel:partnerLink>
</bpel:partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<bpel:variables>
<!-- Reference to the message passed as input during initiation -->
<bpel:variable name="input"
messageType="tns:ConductOrder84RequestMessage">
</bpel:variable>
<!--
Reference to the message that will be returned to the requester
-->
<bpel:variable name="output"
messageType="tns:ConductOrder84ResponseMessage">
</bpel:variable>
<bpel:variable name="listProductsRequest" messageType="ns:listProductsInput">
</bpel:variable>
<bpel:variable name="listProductsResponse" messageType="ns:listProductsOutput">
</bpel:variable>
<!-- <bpel:variable name="checkAvailabilityRequest" element="ns:checkAvailability"></bpel:variable>
<bpel:variable name="checkAvailabilityReponse" element="ns:checkAvailabilityResponse"></bpel:variable>-->
</bpel:variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<bpel:sequence name="main">
<!-- Receive input from requester.
Note: This maps to operation defined in ConductOrder84.wsdl
-->
<bpel:receive name="receiveInput" partnerLink="client"
portType="tns:ConductOrder84"
operation="process" variable="input"
createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<bpel:assign validate="no" name="InitStuff">
<bpel:copy>
<bpel:from><bpel:literal xml:space="preserve"><tns:ConductOrder84Response xmlns:tns="group12" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:result></tns:result>
</tns:ConductOrder84Response>
</bpel:literal></bpel:from>
<bpel:to variable="output" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from><bpel:literal><tns:listProducts xmlns:tns="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:limit>0</tns:limit>
</tns:listProducts>
</bpel:literal></bpel:from>
<bpel:to variable="listProductsRequest" part="listProductsInput"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<![CDATA[number(1)]]>
</bpel:from>
<bpel:to part="listProductsInput" variable="listProductsRequest">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[ns:limit]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="listProducts" partnerLink="InventoryPL" operation="listProducts" portType="ns:InventoryPortType" inputVariable="listProductsRequest" outputVariable="listProductsResponse"></bpel:invoke>
<bpel:forEach parallel="yes" counterName="Counter" name="CheckAvaAll">
<bpel:startCounterValue>
<![CDATA[1]]>
</bpel:startCounterValue>
<bpel:finalCounterValue><![CDATA[count($listProductsResponse.listProductsOutput/ns:productList/ns:product)]]></bpel:finalCounterValue>
<bpel:completionCondition>
<bpel:branches successfulBranchesOnly="no"><![CDATA[count($listProductsResponse.listProductsOutput/ns:productList/ns:product)]]></bpel:branches>
</bpel:completionCondition>
<bpel:scope>
<bpel:variables>
<bpel:variable name="checkAvailabilityRequest" messageType="ns:checkAvailabilityInput"></bpel:variable>
<bpel:variable name="checkAvailabilityReponse" messageType="ns:checkAvailabilityOutput"></bpel:variable>
</bpel:variables>
<bpel:sequence>
<bpel:assign validate="no" name="SetProductIdForAvaCheck">
<bpel:copy>
<bpel:from><bpel:literal><tns:ConductOrder84Request xmlns:tns="group12" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:input>tns:input</tns:input>
</tns:ConductOrder84Request>
</bpel:literal></bpel:from>
<bpel:to variable="input" part="payload"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from><bpel:literal><tns:checkAvailability xmlns:tns="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:productId>tns:productId</tns:productId>
</tns:checkAvailability>
</bpel:literal></bpel:from>
<bpel:to variable="checkAvailabilityRequest" part="checkAvailabilityInput"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<![CDATA[$listProductsResponse.listProductsOutput/ns:productList/ns:product[round($Counter)]/ns:id]]>
</bpel:from>
<bpel:to part="checkAvailabilityInput" variable="checkAvailabilityRequest">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[ns:productId]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="checkAvailability" partnerLink="InventoryPL" operation="checkAvailability" portType="ns:InventoryPortType" inputVariable="checkAvailabilityRequest" outputVariable="checkAvailabilityReponse"></bpel:invoke>
</bpel:sequence>
</bpel:scope>
</bpel:forEach>
<bpel:assign validate="no" name="Assign2">
<bpel:copy>
<bpel:from part="listProductsOutput" variable="listProductsResponse">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[ns:productList]]></bpel:query>
</bpel:from>
<bpel:to part="payload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[tns:result]]></bpel:query>
</bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:reply name="replyOutput"
partnerLink="client"
portType="tns:ConductOrder84"
operation="process" variable="output">
</bpel:reply>
</bpel:sequence>
</bpel:process>
<?xml version="1.0" encoding="ASCII"?>
<extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
<extensions>
<extendedObject href="ConductOrder84.bpel#//@variables/@children.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@variables/@children.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@variables/@children.2"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@variables/@children.3"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.2"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#/"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1478479411864" processName="{group12}ConductOrder84" processVersion="2"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.1/@copy.2"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.1/@copy.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@counterName"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.1/@copy.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity/@activities.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@variables/@children.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@variables/@children.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity/@activities.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity/@activities.0/@copy.2"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity/@activities.0/@copy.1"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.4/@copy.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.4"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.5"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
</extensions>
<extensions>
<extendedObject href="ConductOrder84.bpel#//@activity/@activities.3/@activity/@activity/@activities.0/@copy.0"/>
<extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
</extensions>
</extensionmodel:ExtensionMap>
<?xml version="1.0" encoding="UTF-8"?>
<bpdb:Debug xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:bpdb="http://simtech.de/bpel/debug" processName="ConductOrder84" processPath="C:\Users\bangt\Desktop\bpnm_eclipse\workspace\ConductOrder84\rev0\ConductOrder84.bpel">
<globalBreakpoints>
<breakpoint name="" targetXPath="/process" targetName="ConductOrder84"/>
</globalBreakpoints>
<localBreakpoints>
<breakpoint name="" targetXPath="/process/sequence[1]/invoke[1]" targetName="listProducts"/>
<breakpoint name="" targetXPath="/process/sequence[1]/forEach[1]/scope[1]"/>
<breakpoint name="" targetXPath="/process/sequence[1]/forEach[1]" targetName="ForEach"/>
<breakpoint name="" targetXPath="/process/sequence[1]/forEach[1]/scope[1]/sequence[1]"/>
</localBreakpoints>
</bpdb:Debug>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<definitions name="ConductOrder84"
targetNamespace="group12"
xmlns:tns="group12"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://iaas.uni-stuttgart.de/labs/FlowSOG"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<import location="46.101.159.46.wsdl" namespace="http://iaas.uni-stuttgart.de/labs/FlowSOG"/>
<plnk:partnerLinkType name="InventoryPLT">
<plnk:role name="InventoryService" portType="wsdl:InventoryPortType"/>
</plnk:partnerLinkType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of types participating in this BPEL process
The BPEL Designer will generate default request and response types
but you can define or import any XML Schema type and use them as part
of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="group12"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="ConductOrder84Request">
<complexType>
<sequence>
<element name="input" type="string"/>
</sequence>
</complexType>
</element>
<element name="ConductOrder84Response">
<complexType>
<sequence>
<element name="result" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="ConductOrder84RequestMessage">
<part name="payload" element="tns:ConductOrder84Request"/>
</message>
<message name="ConductOrder84ResponseMessage">
<part name="payload" element="tns:ConductOrder84Response"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the ConductOrder84 BPEL process -->
<portType name="ConductOrder84">
<operation name="process">
<input message="tns:ConductOrder84RequestMessage" />
<output message="tns:ConductOrder84ResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="ConductOrder84">
<plnk:role name="ConductOrder84Provider" portType="tns:ConductOrder84"/>
</plnk:partnerLinkType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BINDING DEFINITION - Defines the message format and protocol details
for a web service.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<binding name="ConductOrder84Binding" type="tns:ConductOrder84">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="process">
<soap:operation
soapAction="group12/process" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SERVICE DEFINITION - A service groups a set of ports into
a service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<service name="ConductOrder84Service">
<port name="ConductOrder84Port" binding="tns:ConductOrder84Binding">
<soap:address location="http://localhost:8080/ode/processes/ConductOrder84" />
</port>
</service>
</definitions>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:FlowSOG="http://iaas.uni-stuttgart.de/labs/FlowSOG" xmlns:pns="group12">
<process name="pns:ConductOrder84">
<metaData>
<mdProperty name="version" value="21"/>
</metaData>
<active>true</active>
<retired>false</retired>
<process-events generate="all"/>
<provide partnerLink="client">
<service name="pns:ConductOrder84Service" port="ConductOrder84Port"/>
</provide>
<invoke partnerLink="InventoryPL">
<service name="FlowSOG:InventoryService" port="InventoryPort"/>
</invoke>
</process>
</deploy>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment