OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

tamie message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: UC3 Apr 15, with ebBP source and LTS output file


Here is the visualization of the UC3 LTS output file with the Precondition information added to edges of variant 2 (on the right side).

 

The XSLT needs several additions to cover PreConditions and PostCondtions and synchronization by “waitForAll” (sometimes called an “and- merge/join”) that I will finish up for the May face to face. If time permits, I will add the transitions governing subdurations for TimeToPerforms of BTA tasks/activities.

 

But the following view corrects the diagram discussed on yesterday’s call.

 

 

 

uc3-Apr15.png

uc3-Apr15.jpg

<?xml version="1.0" encoding="UTF-8"?>
<Graphs xmlns:bp2="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0";
        xmlns:fn="http://www.w3.org/2005/xpath-functions";>
   <Node>PurchaseOrderCollaboration1</Node>
   <Node>SimplePurchaseOrderCollaboration1</Node>
   <Node>start0</Node>
   <Node>start10</Node>
   <Node>PORequestResponses1</Node>
   <Node>Cancellation</Node>
   <Node>PORequestResponses10</Node>
   <Node>Cancellation10</Node>
   <Node>Reorder</Node>
   <Node>success0</Node>
   <Node>success10</Node>
   <Node>failure0</Node>
   <Node>failure10</Node>
   <Label>PurchaseOrderCollaboration1,start0,true</Label>
   <Label>start0,PORequestResponses1,true</Label>
   <Label>PurchaseOrderCollaboration1,failure0,Elapsed time exceeds P0Y0M0DT2H0M0S</Label>
   <Label>PORequestResponses1,Reorder,BusinessSuccess and AddDetailResponse</Label>
   <Label>Reorder,start0,true</Label>
   <Label>PORequestResponses1,Cancellation,BusinessFailure and AddDetailResponse</Label>
   <Label>Cancellation,success0,Success</Label>
   <Label>Cancellation,failure0,AnyProtocolFailure</Label>
   <Label>PORequestResponses1,success0,Accept</Label>
   <Label>PORequestResponses1,failure0,AnyProtocolFailure or Reject</Label>
   <Label2XPath label="PurchaseOrderRequest">/Order</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Order</Label2XPath>
   <Label2XPath label="Accept">/OrderResponseSimple[AcceptedIndicator='true']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="AddDetailResponse">/OrderResponse</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="AddDetailResponse">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="AddDetailResponse">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="Reject">/OrderResponseSimple[AcceptedIndicator='false']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderCancellation">/OrderCancellation</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="PurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/OrderCancellation</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="PurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderRequest">/Order</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Order</Label2XPath>
   <Label2XPath label="Accept">/OrderResponseSimple[AcceptedIndicator='true']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="Reject">/OrderResponseSimple[AcceptedIndicator='false']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="PurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderCancellation">/OrderCancellation</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="PurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/OrderCancellation</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="PurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label>SimplePurchaseOrderCollaboration1,start10,true</Label>
   <Label>start10,PORequestResponses10,true</Label>
   <Label>SimplePurchaseOrderCollaboration1,failure10,Elapsed time exceeds P0Y0M0DT2H0M0S</Label>
   <Label>PORequestResponses10,success10,Accept</Label>
   <Label>PORequestResponses10,failure10,AnyProtocolFailure or Reject</Label>
   <Label>SimplePurchaseOrderCollaboration1,start10,true</Label>
   <Label>start10,Cancellation10,Accept20</Label>
   <Label>SimplePurchaseOrderCollaboration1,failure10,Elapsed time exceeds P0Y0M0DT2H0M0S</Label>
   <Label>Cancellation10,success10,PurchaseOrderCancellation</Label>
   <Label>Cancellation10,failure10,AnyProtocolFailure</Label>
   <Label2XPath label="PurchaseOrderRequest">/Order</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Order</Label2XPath>
   <Label2XPath label="Accept">/OrderResponseSimple[AcceptedIndicator='true']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure"
                Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="AddDetailResponse">/OrderResponse</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="AddDetailResponse">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure"
                Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="AddDetailResponse">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="Reject">/OrderResponseSimple[AcceptedIndicator='false']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure"
                Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderCancellation">/OrderCancellation</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/OrderCancellation</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderRequest">/Order</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Order</Label2XPath>
   <Label2XPath label="Accept">/OrderResponseSimple[AcceptedIndicator='true']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure"
                Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Accept">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2XPath label="Reject">/OrderResponseSimple[AcceptedIndicator='false']</Label2XPath>
   <Label2XPath label="ResponseReceiptFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ReceiptException</Label2XPath>
   <Label2XPath label="ResponseAcceptanceFailure"
                Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse"
                DocumentType="Reject">/Exception/ExceptionType/ResponseAcceptanceException</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="PurchaseOrderResponse">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
   <Label2XPath label="PurchaseOrderCancellation">/OrderCancellation</Label2XPath>
   <Label2XPath label="BusinessFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/OrderCancellation</Label2XPath>
   <Label2Xpath label="AnyProtocolFailure" Service="ConstrainedPurchaseOrderCollaboration"
                Action="NoBusinessResponseDocumentOrMessage">/Exception/ExceptionType/GeneralException or 
                        /Exception/ExceptionType/ResponseAcceptanceException or
                        /Exception/ExceptionType/ResponseReceiptException or
                        /Exception/ExceptionType/RequestAcceptanceException or
                        /Exception/ExceptionType/RequestReceiptException 
                    </Label2Xpath>
</Graphs>
<?xml version="1.0" encoding="UTF-8"?>

<ProcessSpecification xmlns="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://docs.oasis-open.org/ebxmlbp/ebbp-2.0 /Schemas/ebbp-2.0.4.xsd"
    name="PurchaseOrderCollaboration"  nameID="ubl-uc3-purchaseprocess1" 
    specificationVersion="2" instanceVersion="1"
    uuid="urn:authority:purchaseordermanagement:ublish">

    <Documentation> UBL Purchase Order Management BusinessCollaboration Alternative </Documentation>

    <!-- 
     External roles are participant types. 
    Top level business collaborations can be aligned 
    by indicating how external roles unify connections
    among the toplevel collaborations' role parameters.
  -->
    <ExternalRoles>
        <BusinessPartnerRole name="Buyer" nameID="Buyer0">
            <Performs currentRoleRef="Buyer0" performsRoleRef="Buyer1"/>
        </BusinessPartnerRole>
        <BusinessPartnerRole name="Seller" nameID="Seller0">
            <Performs currentRoleRef="Seller0" performsRoleRef="Seller1"/>
        </BusinessPartnerRole>
    </ExternalRoles>

    <!-- Signal (or control) message definitions -->

    <Signal name="ReceiptAcknowledgement" nameID="ra2">
        <Specification location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0";
            name="ReceiptAcknowledgement" nameID="rabpss2"/>
    </Signal>
    <Signal name="ReceiptAcknowledgementException" nameID="rae2">
        <Specification location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0";
            name="ReceiptAcknowledgementException" nameID="raebpss2"/>
    </Signal>

    <!-- UBL Message Contents or Documents -->

    <!--Order-->
    <BusinessDocument name="Order" nameID="Request1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/Order"/>
        <Specification
            location="http://docs.oasis-open.org/ubl/os-UBL-2.0/xsdrt/maindoc/UBL-Order-2.0.xsd";
            name="urn:oasis:names:specification:ubl:schema:xsd:Order-2" nameID="Order-2"/>
    </BusinessDocument>

    <!--Accept-->
    <BusinessDocument name="OrderResponseSimple" nameID="Response1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2"
            expression="/OrderResponseSimple[AcceptedIndicator='true']"/>
        <Specification
            location="http://docs.oasis-open.org/ubl/os-UBL-2.0/xsdrt/maindoc/UBL-OrderResponseSimple-2.0.xsd";
            name="urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2"
            nameID="OrderResponseSimple0"/>
    </BusinessDocument>

    <!--Order Response that Adds Detail or Changes-->
    <BusinessDocument name="OrderResponse" nameID="Response2">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/OrderResponse"/>
        <Specification
            location="http://docs.oasis-open.org/ubl/os-UBL-2.0/xsdrt/maindoc/UBL-OrderResponse-2.0.xsd";
            name="urn:oasis:names:specification:ubl:schema:xsd:OrderResponse-2"
            nameID="AddDetailResponse1"/>
    </BusinessDocument>

    <!--Reject-->
    <BusinessDocument name="OrderResponseSimple" nameID="Response3">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2"
            expression="/OrderResponseSimple[AcceptedIndicator='false']"/>
        <Specification
            location="http://docs.oasis-open.org/ubl/os-UBL-2.0/xsdrt/maindoc/UBL-OrderResponseSimple-2.0.xsd";
            name="urn:oasis:names:specification:ubl:schema:xsd:OrderResponseSimple-2"
            nameID="OrderResponseSimple1"/>
    </BusinessDocument>

    <!--Purchase order Cancellation Document-->
    <BusinessDocument name="PurchaseOrderCancellationSpecification" nameID="Cancel1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/OrderCancellation"/>
        <Specification
            location="http://docs.oasis-open.org/ubl/os-UBL-2.0/xsdrt/maindoc/UBL-OrderCancellation-2.0.xsd";
            name="urn:oasis:names:specification:ubl:schema:xsd:OrderCancellation-2"
            nameID="SpecificationCancellation1"/>
    </BusinessDocument>

    <!-- Basic units of  work or "transactions that are understood as collaborative interactions" -->

    <RequestResponse name="PORequestResponses" nameID="PORequestResponsesBT1">
        <RequestingRole name="Buyer" nameID="Buyer"/>
        <RespondingRole name="Seller" nameID="Seller"/>
        <RequestingBusinessActivity name="RequestingPurchaseOrder" nameID="BA1"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="false"
            isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="PurchaseOrderRequest" nameID="PurchaseOrderRequest1"
                businessDocumentRef="Request1" isAuthenticated="persistent"
                isConfidential="transient"  isTamperDetectable="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal1" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal2" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="PurchaseOrderResponse" nameID="Response0"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="Accept" nameID="Accept" 
                businessDocumentRef="Response1" isPositiveResponse="true" 
                isAuthenticated="persistent" isTamperDetectable="persistent" isConfidential="transient"/>
            <DocumentEnvelope name="AddDetailResponse" nameID="AddDetailResponse"
                businessDocumentRef="Response2" isPositiveResponse="true"
                isAuthenticated="persistent" isTamperDetectable="persistent"
                isConfidential="transient"/>
            <DocumentEnvelope name="Reject" nameID="Reject" businessDocumentRef="Response3"
                isAuthenticated="persistent" isPositiveResponse="false"
                isTamperDetectable="persistent" isConfidential="transient"/>
            <ReceiptAcknowledgement name="RA" nameID="signal3" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal4" signalDefinitionRef="rae2"
            />
        </RespondingBusinessActivity>
    </RequestResponse>

    <Notification name="CancelOrder" nameID="CancelOrder">
        <RequestingRole name="Canceller" nameID="Canceller"/>
        <RespondingRole name="Cancelled" nameID="Cancelled"/>
        <RequestingBusinessActivity name="OrderCancellation" nameID="OrderCancellation1">
            <DocumentEnvelope name="PurchaseOrderCancellation" nameID="PurchaseOrderCancellation1"
                businessDocumentRef="Cancel1" isPositiveResponse="true"
             isAuthenticated="persistent" isTamperDetectable="persistent" isConfidential="transient"/>
            <ReceiptAcknowledgement name="RA" nameID="signal5" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal6" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponseDocumentOrMessage" nameID="InternalOnly1"/>
    </Notification>

    <RequestResponse name="PORequestResponses" nameID="PORequestResponsesBT2">
        <RequestingRole name="Buyer" nameID="Buyer20"/>
        <RespondingRole name="Seller" nameID="Seller20"/>
        <RequestingBusinessActivity name="RequestingPurchaseOrder" nameID="BA20"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="false"
            isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="PurchaseOrderRequest" nameID="PurchaseOrderRequest20"
                businessDocumentRef="Request1" isAuthenticated="persistent"
                isConfidential="transient"  isTamperDetectable="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal20" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal21" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="PurchaseOrderResponse" nameID="Response20"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="Accept" nameID="Accept20" businessDocumentRef="Response1"
                isPositiveResponse="true" 
                isAuthenticated="persistent" isTamperDetectable="persistent" isConfidential="transient"/>        
            <DocumentEnvelope name="Reject" nameID="Reject20" businessDocumentRef="Response3"
             isPositiveResponse="false"
             isAuthenticated="persistent"  isTamperDetectable="persistent" isConfidential="transient"/>
            <ReceiptAcknowledgement name="RA" nameID="signal23" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal24" signalDefinitionRef="rae2"
            />
        </RespondingBusinessActivity>
    </RequestResponse>
    
    <!-- Toplevel  Public process definitions
        1. Purchase Order with Changes and Cancellation
        2. Purchase Order with Restricted Cancellation
   
    -->

    <BusinessCollaboration name="PurchaseOrderCollaboration" nameID="PurchaseOrderCollaboration1"
        isInnerCollaboration="false">
        
        <Documentation>
            
            PurchaseOrderCollaboration defines the collaboration to allow cancellations by the Buyer when the Seller proposes
            an alternate Order. In PurchaseOrderCollaboration a new purchase order is sent after the cancellation.
            In cases of a simple acceptance or rejection, the transition is to Success or Failure (Rejection viewed as a Business Failure).
                        
        </Documentation>
        
        <Role name="Buyer" nameID="Buyer1"/>
        <Role name="Seller" nameID="Seller1"/>

        <!--  Collaboration, overall time to perform. In associated LTS, labels a transition to failure.  -->
        <TimeToPerform duration="P0Y0M0DT2H0M0S" type="design"/>

        <!-- Normally exactly one start "state" is  found in each business collaboration, but it can transition to several states. -->
        <Start name="start" nameID="start0">
            <ToLink toBusinessStateRef="PORequestResponses1"/>
        </Start>

          <!-- A condition is needed here to track when start has been transitioned to more than twice... -->
        <EndsWhen expressionLanguage="XSLT2" expression=""/>

        <BusinessTransactionActivity name="PORequestResponses" nameID="PORequestResponses1"
            businessTransactionRef="PORequestResponsesBT1">
            <!-- Timeout can be a specific label from BTA state (node) to failure state or can be signaled on wire
                    by a general exception or other notification of failure.      
            -->
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Buyer1" performsRoleRef="Buyer"/>
            <Performs currentRoleRef="Seller1" performsRoleRef="Seller"/>
        </BusinessTransactionActivity>

        <Fork name="Fork" nameID="Fork1">
            <FromLink fromBusinessStateRef="PORequestResponses1">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="AddDetailResponse"/>
            </FromLink>
            <ToLink toBusinessStateRef="Reorder">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="BusinessSuccess"/>
            </ToLink>
            <ToLink toBusinessStateRef="Cancellation">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="BusinessFailure"/>
            </ToLink>
        </Fork>

        <!-- Temporarily capturing loop for reorder by reentering  this BusinessCollaboration 
             However, some state should be tracked  to distinguish initial state transitions 
             from subsequent trace of state transitions
             State of process in this model is therefore presumed to be held in private (orchestration) state transitions.
             Indeterminacy at public process level concerning termination (e.g., endless loop possible).
             
        -->
        <CollaborationActivity collaborationRef="PurchaseOrderCollaboration1" name="Reorder"
            nameID="Reorder">
            <Performs currentRoleRef="Buyer1" performsRoleRef="Buyer1"/>
            <Performs currentRoleRef="Seller1" performsRoleRef="Seller1"/>
        </CollaborationActivity>

        <BusinessTransactionActivity name="Cancellation" nameID="Cancellation"
            businessTransactionRef="CancelOrder">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Buyer1" performsRoleRef="Canceller"/>
            <Performs currentRoleRef="Seller1" performsRoleRef="Cancelled"/>
        </BusinessTransactionActivity>

        <!-- Normally exactly one success "state" is found in each business collaboration    -->
        <Success name="success" nameID="success0">
            <FromLink fromBusinessStateRef="PORequestResponses1">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="Accept"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Cancellation">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
            </FromLink>
        </Success>

        <!-- Normally exactly one failure "state" is  found in each business collaboration    -->
        <Failure name="failure" nameID="failure0">
            <Documentation>
                Any protocol failure (timeouts, unrecoverable exception) transitions to
                failure. 
              
            </Documentation>
            
            <FromLink fromBusinessStateRef="PORequestResponses1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Cancellation">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="PORequestResponses1">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="Reject"/>
            </FromLink>       
        </Failure>

    </BusinessCollaboration>
    
    
    <!--    
        Constrained PurchaseOrderCollaboration defines the collaboration to permit  the responder to either Accept or Reject, but also
        to Cancel after an Accept.
        Challenge is to model script for public process indeterminism.
    -->

    <BusinessCollaboration name="ConstrainedPurchaseOrderCollaboration" nameID="SimplePurchaseOrderCollaboration1"
        isInnerCollaboration="false">
        
        <Documentation>
            
            SimplePurchaseOrderCollaboration defines the collaboration to permit  the responder to either Accept or Reject, but also
            to Cancel after an Accept.
            
        </Documentation>
        
        <Role name="Buyer" nameID="Buyer10"/>
        <Role name="Seller" nameID="Seller10"/>
        
        <!--  Collaboration, overall time to perform. In associated LTS, labels a transition to failure.  -->
        <TimeToPerform duration="P0Y0M0DT2H0M0S" type="design"/>
        
        <!-- Normally exactly one start "state" is  found in each business collaboration.
               A start state can transition to several states, however.
               In this case, the behavior is like a Fork with an OR type.
        -->
        
        <Start name="start" nameID="start10">
            
            <ToLink toBusinessStateRef="PORequestResponses10"/>
            <ToLink toBusinessStateRef="Cancellation10"/>
            
        </Start>
     
        <BusinessTransactionActivity name="PORequestResponses" nameID="PORequestResponses10"
            businessTransactionRef="PORequestResponsesBT2">
            <!-- Timeout can be a specific label from BTA state (node) to failure state or can be signaled on wire
                by a general exception or other notification of failure.    
                15 Minutes allowed for Response of either Accept or Reject. 
                (But allowance for cancellation for 90 minutes.)
            -->
            <TimeToPerform duration="P0Y0M0DT0H15M0S" type="design"/>
            <Performs currentRoleRef="Buyer10" performsRoleRef="Buyer"/>
            <Performs currentRoleRef="Seller10" performsRoleRef="Seller"/>
        </BusinessTransactionActivity>
     
        <BusinessTransactionActivity name="Cancellation" nameID="Cancellation10"
            businessTransactionRef="CancelOrder">
            
            <!-- One hour and 30 minutes allowed for cancellation.  -->
            <TimeToPerform duration="P0Y0M0DT1H30M0S" type="design"/>
            
            <Performs currentRoleRef="Seller10" performsRoleRef="Canceller"/>
            <Performs currentRoleRef="Buyer10" performsRoleRef="Cancelled"/>
            <PreCondition expressionLanguage="DocumentEnvelope" expression="Accept20"></PreCondition>
        </BusinessTransactionActivity>
        
        <!-- Normally exactly one success "state" is found in each business collaboration    -->
        <Success name="success" nameID="success10">
            <FromLink fromBusinessStateRef="PORequestResponses10">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="Accept"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Cancellation10">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="PurchaseOrderCancellation"/>
            </FromLink>
        </Success>
        
        <!-- Normally exactly one failure "state" is  found in each business collaboration    -->
        <Failure name="failure" nameID="failure10">
            <Documentation> 
                Any protocol failure (timeouts, unrecoverable exception) transitions to failure. 
               The business failure "Reject." transitions here also. 
            </Documentation>         
            <FromLink fromBusinessStateRef="PORequestResponses10">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Cancellation10">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="PORequestResponses10">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="Reject"/>
            </FromLink>       
        </Failure>
        
    </BusinessCollaboration>
</ProcessSpecification>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]