- From: Gary Brown <gary@pi4tech.com>
- Date: Thu, 1 Sep 2005 12:23:18 +0100
- To: "'WS-Choreography List'" <public-ws-chor@w3.org>
- Message-ID: <007101c5aee7$90533de0$0200a8c0@GPB1>
Hi,
There were a number of other problems with the example, so I have updated and included below.
The problems included, purchase order variable was defined as silent, but used as a receive variable. The faultName was missing from the fault exchange. The missing 'uriType' and 'intType' informationType definitions, and the consumerRef token definition.
Regards
Gary
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.w3.org/2005/08/ws-chor/cdl"
xmlns:cdl="http://www.w3.org/2005/08/ws-chor/cdl"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:rns="http://www.example.com/ConsumerRetailerChoreographyIFsample"
xmlns:tns="http://www.example.com/ConsumerRetailerChoreographysample"
targetNamespace="http://www.example.com/ConsumerRetailerChoreographysample"
name="ConsumerRetailerChoreography"
version="1.0">
<informationType name="purchaseOrderType" type="tns:PurchaseOrderMsg"/>
<informationType name="purchaseOrderAckType" type="tns:PurchaseOrderAckMsg"/>
<informationType name="badPOAckType" type="xsd:qname" />
<informationType name="uriType" type="xsd:string" />
<informationType name="intType" type="xsd:integer" />
<token name="purchaseOrderID" informationType="tns:intType"/>
<token name="retailerRef" informationType="tns:uriType"/>
<token name="consumerRef" informationType="tns:uriType"/>
<tokenLocator tokenName="tns:purchaseOrderID"
informationType="tns:purchaseOrderType" query="/PO/orderId"/>
<tokenLocator tokenName="tns:purchaseOrderID"
informationType="tns:purchaseOrderAckType" query="/PO/orderId"/>
<roleType name="Consumer">
<behavior name="consumerForRetailer" interface="rns:ConsumerRetailerPT"/>
<behavior name="consumerForWarehouse" interface="rns:ConsumerWarehousePT"/>
</roleType>
<roleType name="Retailer">
<behavior name="retailerForConsumer" interface="rns:RetailerConsumerPT"/>
</roleType>
<relationshipType name="ConsumerRetailerRelationship">
<roleType typeRef="tns:Consumer" behavior="consumerForRetailer"/>
<roleType typeRef="tns:Retailer" behavior="retailerForConsumer"/>
</relationshipType>
<channelType name="ConsumerChannel">
<roleType typeRef="tns:Consumer"/>
<reference>
<token name="tns:consumerRef"/>
</reference>
<identity>
<token name="tns:purchaseOrderID"/>
</identity>
</channelType>
<channelType name="RetailerChannel">
<passing channel="ConsumerChannel" action="request" />
<roleType typeRef="tns:Retailer" behavior="retailerForConsumer"/>
<reference>
<token name="tns:retailerRef"/>
</reference>
<identity>
<token name="tns:purchaseOrderID"/>
</identity>
</channelType>
<choreography name="ConsumerRetailerChoreography" root="true">
<relationship type="tns:ConsumerRetailerRelationship"/>
<variableDefinitions>
<variable name="purchaseOrder" informationType="tns:purchaseOrderType"
silent="false" />
<variable name="purchaseOrderAck"
informationType="tns:purchaseOrderAckType" />
<variable name="retailer-channel" channelType="tns:RetailerChannel"/>
<variable name="consumer-channel" channelType="tns:ConsumerChannel"/>
<variable name="badPurchaseOrderAck"
informationType="tns:badPOAckType" />
</variableDefinitions>
<interaction name="createPO"
channelVariable="tns:retailer-channel"
operation="handlePurchaseOrder" >
<participate relationshipType="tns:ConsumerRetailerRelationship"
fromRoleTypeRef="tns:Consumer" toRoleTypeRef="tns:Retailer"/>
<exchange name="request"
informationType="tns:purchaseOrderType" action="request">
<send variable="cdl:getVariable('tns:purchaseOrder','','')" />
<receive variable="cdl:getVariable('tns:purchaseOrder','','')"
recordReference="record-the-channel-info" />
</exchange>
<exchange name="response"
informationType="purchaseOrderAckType" action="respond">
<send variable="cdl:getVariable('tns:purchaseOrderAck','','')" />
<receive variable="cdl:getVariable('tns:purchaseOrderAck','','')" />
</exchange>
<exchange name="badPurchaseOrderAckException" faultName="badPurchaseOrderAckException"
informationType="badPOAckType" action="respond">
<send variable="cdl:getVariable('tns:badPurchaseOrderAck','','')"
causeException="badPOAck" />
<receive variable="cdl:getVariable('tns:badPurchaseOrderAck','','')"
causeException="badPOAck" />
</exchange>
<record name="record-the-channel-info" when="after">
<source variable="cdl:getVariable('tns:purchaseOrder','',
'/PO/CustomerRef')"/>
<target variable="cdl:getVariable('tns:consumer-channel','','')"/>
</record>
</interaction>
</choreography>
</package>
Received on Thursday, 1 September 2005 11:23:37 UTC