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: Preview of BP transforms to LTS (with limited visualization)


Hi

This message is concerned with compiling Business Process descriptions into testing/monitoring assertions in the ETSL language TaMie is developing.

In the attachments, I have provided 3 ebBP/BPSS 2.0 examples of purchase order management public process descriptions (also called choreographies, interaction protocols, etc.).

I have included the LTS (labeled transition systems) generated from these three examples that provides the "semantic" information about states, their transitions, and the labels (sets of first order expressions) for those transitions.

Finally I have included some drawings of the LTSes as (computer science sense) graphs.

The XSLTs for doing the transforms up to GXL (graph exchange language, which is used to input into the graphical tools) are available for the curious, but both incomplete and unpolished. (For GXL to JPGs conversions, I use a java graph tool built on open source JGraph API called JGraphPad; an input file in compressed gzip format is available if you want to edit the original diagrams, but you will need to download the tool off the net.)

Given these inputs, the next steps are to compile LTS information into ETSL code. I expect this process to help guide what needs to be added back into the LTS label fields to produce workable code. At present the information in the labels come from ebBP's DocumentEnvelopeLanguage or ConditionGuardLanguage. Other languages are allowed in ebBP, and the ones that are used can probably be expanded into XPath 2.0 and/or Xquery expressions by making use of additional information in the ebBP process description instances. However, I will need the TC members to help state what is needed/useful in order to get closer to working ETSL outputs.

Bye
Dale Moberg

PS You might notice that the transition and decision LTSes are structurally the same graphs and in fact, the choreographies only differ in terms of gateway diagrams, and not "substantially". This is another advantage of casting BP descriptions into the canonical LTS formats before translating into ETSL, IMO.


<?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="SimpleOrderCollaboration" uuid="urn:authority:purchaseordermanagement:simple"
    nameID="simplepurchaseprocess1" specificationVersion="2" instanceVersion="1">

    <Documentation>Ordering with Full or Partial Order Confirmation and Cancellation</Documentation>

    <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>

    <!--Purchase order Request Document-->
    <BusinessDocument name="PurchaseOrderRequest" nameID="Request1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderRequestSpecification";
            name="PurchaseOrderRequestSpecification" nameID="SpecificationRequest1"/>
    </BusinessDocument>

    <!--Purchase order Full Order Single Shipment Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Accepted'"/>
        <Specification location="http://authority.com#PurchaseOrderConfirmationSpecification";
            name="PurchaseOrderConfirmationSpecification" nameID="SpecificationConfirm1"/>
    </BusinessDocument>

    <!--Purchase order Partial Order or Multiple Shipments Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm2">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2"
            expression="/POC/OfferStatus='PartialAccepatance'"/>
        <Specification location="http://authority.com#PurchaseOrderPartialConfirmationSpecification";
            name="PurchaseOrderPartialConfirmationSpecification" nameID="SpecificationConfirm2"/>
    </BusinessDocument>

    <!--Purchase order Confirmation With Offer Declined Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Decline1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Declined'"/>
        <Specification location="http://authority.com#PurchaseOrderDeclinedSpecification";
            name="PurchaseOrderDeclinedSpecification" nameID="SpecificationDecline1"/>
    </BusinessDocument>

    <!--Purchase order Cancellation Document-->
    <BusinessDocument name="PurchaseOrderCancellationSpecification" nameID="Cancel1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderCancellationSpecification";
            name="PurchaseOrderCancellationSpecification" nameID="SpecificationCancellation1"/>
    </BusinessDocument>

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

    <RequestConfirm name="PurchaseOrderRequestAndConfirm" nameID="PurchaseOrderRequestAndConfirmBT1">
        <RequestingRole name="Buyer" nameID="Buyer1"/>
        <RespondingRole name="Seller" nameID="Seller1"/>
        <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="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal1" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal2" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="RespondingToPurchaseOrder" nameID="Response1"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="FullPurchaseOrderResponse" nameID="FullPurchaseOrderResponse1"
                businessDocumentRef="Confirm1" isAuthenticated="persistent"
                isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="PartialPurchaseOrderResponse"
                nameID="PartialPurchaseOrderResponse2" businessDocumentRef="Confirm2"
                isAuthenticated="persistent" isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="Cancellation" nameID="Cancellation3"
                businessDocumentRef="Cancel1"/>
            <ReceiptAcknowledgement name="RA" nameID="signal3" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal4" signalDefinitionRef="rae2"
            />
        </RespondingBusinessActivity>
    </RequestConfirm>

    <Notification name="CancelOrder" nameID="CancelOrder1">
        <RequestingRole name="Canceller" nameID="Canceller1"/>
        <RespondingRole name="Cancelled" nameID="Cancelled1"/>
        <RequestingBusinessActivity name="Cancellation" nameID="Cancellation1">
            <DocumentEnvelope name="PurchaseOrderCancellation" nameID="PurchaseOrderCancellation1"
                businessDocumentRef="Cancel1"/>
            <ReceiptAcknowledgement name="RA" nameID="signal5" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal6" signalDefinitionRef="rae2"/>

        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponse" nameID="None1"/>
    </Notification>


    <!-- Public process definition 
    A PurchaseOrderRequestAndConfirm is performed after the Process starts.
    The result 
    -->
    <BusinessCollaboration name="PurchaseOrderCollaboration" nameID="PurchaseOrderCollaboration1">
        <Role name="Sender" nameID="Sender1"/>
        <Role name="Receiver" nameID="Receiver2"/>
        <TimeToPerform duration="P0Y0M0DT2H0M0S" type="design"/>
        <Start name="start" nameID="start0">
            <ToLink toBusinessStateRef="PurchaseOrderRequestAndConfirm1"/>
        </Start>

        <BusinessTransactionActivity name="PurchaseOrderRequestAndConfirm"
            nameID="PurchaseOrderRequestAndConfirm1"
            businessTransactionRef="PurchaseOrderRequestAndConfirm1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Buyer1"/>
            <Performs currentRoleRef="Receiver2" performsRoleRef="Seller1"/>
        </BusinessTransactionActivity>

        <Decision>
            <FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="success"/>
            </FromLink>
            <ToLink toBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="PartialPurchaseOrderResponse"/>
            </ToLink>
            <ToLink toBusinessStateRef="success0">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="FullPurchaseOrderResponse"/>
            </ToLink>
        </Decision>

        <BusinessTransactionActivity businessTransactionRef="CancelOrder1"
            name="CancelOrderActivity" nameID="CancelOrderActivity1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Canceller1"/>
            <Performs currentRoleRef="Receiver2" performsRoleRef="Cancelled1"/>
        </BusinessTransactionActivity>

        <Success name="success" nameID="success0">
            <!--FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="FullPurchaseOrderResponse"></ConditionExpression>
            </FromLink-->
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
            </FromLink>
        </Success>

        <Failure name="failure" nameID="failure0">
            <FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/>
            </FromLink>
        </Failure>

    </BusinessCollaboration>

</ProcessSpecification>
<?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="SimpleOrderCollaboration" uuid="urn:authority:purchaseordermanagement:simple"
    nameID="simplepurchaseprocess1" specificationVersion="2" instanceVersion="1">

    <Documentation>Simple PO Process with test of Transition</Documentation>

    <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>

    <!--Purchase order Request Document-->
    <BusinessDocument name="PurchaseOrderRequest" nameID="Request1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderRequestSpecification";
            name="PurchaseOrderRequestSpecification" nameID="SpecificationRequest1"/>
    </BusinessDocument>

    <!--Purchase order Full Order Single Shipment Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Accepted'"/>
        <Specification location="http://authority.com#PurchaseOrderConfirmationSpecification";
            name="PurchaseOrderConfirmationSpecification" nameID="SpecificationConfirm1"/>
    </BusinessDocument>

    <!--Purchase order Partial Order or Multiple Shipments Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm2">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2"
            expression="/POC/OfferStatus='PartialAccepatance'"/>
        <Specification location="http://authority.com#PurchaseOrderPartialConfirmationSpecification";
            name="PurchaseOrderPartialConfirmationSpecification" nameID="SpecificationConfirm2"/>
    </BusinessDocument>

    <!--Purchase order Confirmation With Offer Declined Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Decline1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Declined'"/>
        <Specification location="http://authority.com#PurchaseOrderDeclinedSpecification";
            name="PurchaseOrderDeclinedSpecification" nameID="SpecificationDecline1"/>
    </BusinessDocument>

    <!--Purchase order Cancellation Document-->
    <BusinessDocument name="PurchaseOrderCancellationSpecification" nameID="Cancel1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderCancellationSpecification";
            name="PurchaseOrderCancellationSpecification" nameID="SpecificationCancellation1"/>
    </BusinessDocument>

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

    <RequestConfirm name="PurchaseOrderRequestAndConfirm" nameID="PurchaseOrderRequestAndConfirmBT1">
        <RequestingRole name="Buyer" nameID="Buyer1"/>
        <RespondingRole name="Seller" nameID="Seller1"/>
        <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="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal1" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal2" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="RespondingToPurchaseOrder" nameID="Response1"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="FullPurchaseOrderResponse" nameID="FullPurchaseOrderResponse1"
                businessDocumentRef="Confirm1" isAuthenticated="persistent"
                isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="PartialPurchaseOrderResponse"
                nameID="PartialPurchaseOrderResponse2" businessDocumentRef="Confirm2"
                isAuthenticated="persistent" isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="Cancellation" nameID="Cancellation3"
                businessDocumentRef="Cancel1"/>
            <ReceiptAcknowledgement name="RA" nameID="signal3" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal4" signalDefinitionRef="rae2"
            />
        </RespondingBusinessActivity>
    </RequestConfirm>

    <Notification name="CancelOrder" nameID="CancelOrder1">
        <RequestingRole name="Canceller" nameID="Canceller1"/>
        <RespondingRole name="Cancelled" nameID="Cancelled1"/>
        <RequestingBusinessActivity name="Cancellation" nameID="Cancellation1">
            <DocumentEnvelope name="PurchaseOrderCancellation" nameID="PurchaseOrderCancellation1"
                businessDocumentRef="Cancel1"/>
            <ReceiptAcknowledgement name="RA" nameID="signal5" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal6" signalDefinitionRef="rae2"/>

        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponse" nameID="None1"/>
    </Notification>


    <!-- Public process definition 
    A PurchaseOrderRequestAndConfirm is performed after the Process starts.
    The result 
    -->
    <BusinessCollaboration name="PurchaseOrderCollaboration" nameID="PurchaseOrderCollaboration1">
        <Role name="Sender" nameID="Sender1"></Role>
        <Role name="Receiver" nameID="Receiver1"/>
        <TimeToPerform duration="P0Y0M0DT2H0M0S" type="design"/>
        <Start name="start" nameID="start0">
            <ToLink toBusinessStateRef="PurchaseOrderRequestAndConfirm1"/>
        </Start>

        <BusinessTransactionActivity name="PurchaseOrderRequestAndConfirm"
            nameID="PurchaseOrderRequestAndConfirm1"
            businessTransactionRef="PurchaseOrderRequestAndConfirm1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Buyer1"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Seller1"/>
        </BusinessTransactionActivity>

        <Transition>
            <FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="success"/>
            </FromLink>
            <ToLink toBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="PartialPurchaseOrderResponse"/>
            </ToLink>
            
        </Transition>

        <BusinessTransactionActivity businessTransactionRef="CancelOrder1"
            name="CancelOrderActivity" nameID="CancelOrderActivity1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Canceller1"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Cancelled1"/>
        </BusinessTransactionActivity>

        <Success name="success" nameID="success0">
            <FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="FullPurchaseOrderResponse"></ConditionExpression>
            </FromLink>
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
            </FromLink>
        </Success>

        <Failure name="failure" nameID="failure0">
            <FromLink fromBusinessStateRef="PurchaseOrderRequestAndConfirm1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/>
            </FromLink>
        </Failure>

    </BusinessCollaboration>

</ProcessSpecification>
<?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="SimpleOrderCollaboration" uuid="urn:authority:purchaseordermanagement:simple"
    nameID="simplepurchaseprocess1" specificationVersion="2" instanceVersion="1">

    <Documentation>Purchase Order Management Test Fork/Join Sample</Documentation>

    <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>

    <!--Purchase order Request Document-->
    <BusinessDocument name="PurchaseOrderRequest" nameID="Request1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderRequestSpecification";
            name="PurchaseOrderRequestSpecification" nameID="SpecificationRequest1"/>
    </BusinessDocument>

    <!--Purchase order Full Order Single Shipment Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Accepted'"/>
        <Specification location="http://authority.com#PurchaseOrderConfirmationSpecification";
            name="PurchaseOrderConfirmationSpecification" nameID="SpecificationConfirm1"/>
    </BusinessDocument>

    <!--Purchase order Partial Order or Multiple Shipments Confirmation Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Confirm2">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2"
            expression="/POC/OfferStatus='PartialAcceptance'"/>
        <Specification location="http://authority.com#PurchaseOrderPartialConfirmationSpecification";
            name="PurchaseOrderPartialConfirmationSpecification" nameID="SpecificationConfirm2"/>
    </BusinessDocument>

    <!--Purchase order Confirmation With Offer Declined Document-->
    <BusinessDocument name="PurchaseOrderConfirmation" nameID="Decline1">
        <Documentation/>
        <ConditionExpression expressionLanguage="XPath2" expression="/POC/OfferStatus='Declined'"/>
        <Specification location="http://authority.com#PurchaseOrderDeclinedSpecification";
            name="PurchaseOrderDeclinedSpecification" nameID="SpecificationDecline1"/>
    </BusinessDocument>

    <!--Purchase order Cancellation Document-->
    <BusinessDocument name="PurchaseOrderCancellationSpecification" nameID="Cancel1">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderCancellationSpecification";
            name="PurchaseOrderCancellationSpecification" nameID="SpecificationCancellation1"/>
    </BusinessDocument>

    <!--Purchase order Change Request Document-->
    <BusinessDocument name="PurchaseOrderChangeSpecification" nameID="Change10">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderChangeSpecification";
            name="PurchaseOrderChangeSpecification" nameID="SpecificationChange10"/>
    </BusinessDocument>

    <!--Purchase order Change Request  Acceptance Document-->
    <BusinessDocument name="PurchaseOrderChangeAcceptSpecification" nameID="Accept10">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderChangeAcceptSpecification";
            name="PurchaseOrderChangeAcceptSpecification" nameID="SpecificationAccept10"/>
    </BusinessDocument>

    <!--Purchase order Change Request  Decline Document-->
    <BusinessDocument name="PurchaseOrderChangeDeclineSpecification" nameID="Decline10">
        <Documentation/>
        <Specification location="http://authority.com#PurchaseOrderDeclineSpecification";
            name="PurchaseOrderChangeDeclineSpecification" nameID="SpecificationDecline10"/>
    </BusinessDocument>

    <!--ASN or Despatch Document-->
    <BusinessDocument name="AdvanceShipNotification" nameID="Arrives10">
        <Documentation/>
        <Specification location="http://authority.com#AdvanceShipNotificationSpecification";
            name="AdvanceShipNotificationSpecification"
            nameID="AdvanceShipNotificationSpecification10"/>
    </BusinessDocument>

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

    <RequestConfirm name="PurchaseOrderRequestDecide" nameID="Decide10">
        <RequestingRole name="Buyer" nameID="Buyer1"/>
        <RespondingRole name="Seller" nameID="Seller1"/>
        <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="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal1" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal2" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="ResponsesToPurchaseOrder" nameID="Response1"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="Accept" nameID="Accept2" businessDocumentRef="Confirm1"
                isAuthenticated="persistent" isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="Decline" nameID="Decline2" businessDocumentRef="Decline1"
                isAuthenticated="persistent" isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="ChangeRequest" nameID="Change1" businessDocumentRef="Change10"/>
            <ReceiptAcknowledgement name="RA" nameID="signal3" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal4" signalDefinitionRef="rae2"
            />
        </RespondingBusinessActivity>
    </RequestConfirm>

    <RequestConfirm name="PurchaseOrderChangeRequest" nameID="POCR10">
        <RequestingRole name="Initiator" nameID="Initiator1"/>
        <RespondingRole name="Decider" nameID="Decider1"/>
        <RequestingBusinessActivity name="RequestingPurchaseOrderChange" nameID="BA10"
            isAuthorizationRequired="true" isIntelligibleCheckRequired="false"
            isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="PurchaseOrderRequest" nameID="PurchaseOrderChangeRequest10"
                businessDocumentRef="Request1" isAuthenticated="persistent"
                isConfidential="persistent"/>
            <ReceiptAcknowledgement name="RA" nameID="signal10" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal12" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="RespondingToPurchaseOrderChangeRequest"
            nameID="Response10" isAuthorizationRequired="true" isIntelligibleCheckRequired="true"
            isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="true"
            timeToAcknowledgeReceipt="P0Y0M0DT2H0M0S">
            <DocumentEnvelope name="PurchaseOrderChangeAcceptance"
                nameID="PurchaseOrderAcceptance10" businessDocumentRef="Confirm1"
                isAuthenticated="persistent" isConfidential="transient" isPositiveResponse="true"/>
            <DocumentEnvelope name="PurchaseOrderChangeDecline" nameID="PurchaseOrderDecline10"
                businessDocumentRef="Confirm2" isAuthenticated="persistent"
                isConfidential="transient" isPositiveResponse="true"/>
            <ReceiptAcknowledgement name="RA" nameID="ra10" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="rae10" signalDefinitionRef="rae2"/>
        </RespondingBusinessActivity>
    </RequestConfirm>

    <Notification name="CancelOrder" nameID="CancelOrder1">
        <RequestingRole name="Canceller" nameID="Canceller1"/>
        <RespondingRole name="Cancelled" nameID="Cancelled1"/>
        <RequestingBusinessActivity name="Cancellation" nameID="Cancellation1">
            <DocumentEnvelope name="PurchaseOrderCancellation" nameID="PurchaseOrderCancellation1"
                businessDocumentRef="Cancel1"/>
            <ReceiptAcknowledgement name="RA" nameID="signal5" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal6" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponse" nameID="None1"/>
    </Notification>

    <Notification name="ASN" nameID="ASN1">
        <RequestingRole name="Seller" nameID="Seller10"/>
        <RespondingRole name="Receiver" nameID="Receiver10"/>
        <RequestingBusinessActivity name="SendingASN" nameID="ASNotification1">
            <DocumentEnvelope name="ASN" nameID="Arrives1" businessDocumentRef="Arrives10"/>
            <ReceiptAcknowledgement name="RA" nameID="signal15" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal16" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponse" nameID="None2"/>
    </Notification>

    <Notification name="ChangeRequestDecision" nameID="ChangeRequestDecision1">
        <RequestingRole name="Buyer" nameID="Buyer20"/>
        <RespondingRole name="ChangeRequester" nameID="Requester20"/>
        <RequestingBusinessActivity name="SendingDecision" nameID="Decision1">
            <DocumentEnvelope name="ChangeRequestDecision" nameID="Decision11" businessDocumentRef="Accept10"/>
            <ReceiptAcknowledgement name="RA" nameID="signal20" signalDefinitionRef="ra2"/>
            <ReceiptAcknowledgementException name="RAE" nameID="signal21" signalDefinitionRef="rae2"
            />
        </RequestingBusinessActivity>
        <RespondingBusinessActivity name="NoBusinessResponse" nameID="None3"/>
    </Notification>


    <!-- Public process definition 
    
    -->
    <BusinessCollaboration name="PurchaseOrderCollaboration" nameID="PurchaseOrderCollaboration1">
        <Role name="Sender" nameID="Sender1"/>
        <Role name="Receiver" nameID="Receiver1"/>
        <TimeToPerform duration="P0Y0M0DT2H0M0S" type="design"/>
        <Start name="start" nameID="start0">
            <ToLink toBusinessStateRef="Decide100"/>
        </Start>

        <BusinessTransactionActivity name="PurchaseOrderRequestDecide" nameID="Decide100"
            businessTransactionRef="Decide10">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Buyer1"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Seller1"/>
        </BusinessTransactionActivity>

        <Fork>
            <FromLink fromBusinessStateRef="Decide100">
                <ConditionExpression expressionLanguage="XSLT2" expression="true()"/>
            </FromLink>
          
            <ToLink toBusinessStateRef="CRD1">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="ChangeRequest"/>
            </ToLink>
            <ToLink toBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"  expression="BusinessFailure"/>
            </ToLink>
        </Fork>

        <BusinessTransactionActivity businessTransactionRef="ChangeRequestDecision1"
            name="ChangeRequestDecision" nameID="CRD1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Buyer20"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Requester20"/>
        </BusinessTransactionActivity>
        
        <BusinessTransactionActivity businessTransactionRef="CancelOrder1"
            name="CancelOrderActivity" nameID="CancelOrderActivity1">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Canceller1"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Cancelled1"/>
        </BusinessTransactionActivity>
        
        <Join name="ConvergeToASN" nameID="Converge1" 
            waitForAll="false">
            <FromLink fromBusinessStateRef="Decide100">
                <ConditionExpression expressionLanguage="DocumentEnvelope"
                    expression="Accept"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CRD1"></FromLink>
            <ToLink  toBusinessStateRef="ASN10">     
                <ConditionExpression expressionLanguage="ConditionGuardValue"  expression="Success"/>
            </ToLink>
        </Join>
        
        <BusinessTransactionActivity businessTransactionRef="ASN1"
            name="AdvanceShipmentNotificationActivity" nameID="ASN10">
            <TimeToPerform duration="P0Y0M0DT1H50M0S" type="design"/>
            <Performs currentRoleRef="Sender1" performsRoleRef="Receiver10"/>
            <Performs currentRoleRef="Receiver1" performsRoleRef="Seller10"/>
        </BusinessTransactionActivity>
        

        <Success name="success" nameID="success0">
            <FromLink fromBusinessStateRef="ASN10">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/>
            </FromLink>
        </Success>

        <Failure name="failure" nameID="failure0">
            <FromLink fromBusinessStateRef="ASN10">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Decide100">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CancelOrderActivity1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="CRD1">
                <ConditionExpression expressionLanguage="ConditionGuardValue"
                    expression="AnyProtocolFailure"/>
            </FromLink>
            <FromLink fromBusinessStateRef="Decide100">
                <ConditionExpression expressionLanguage="DocumentEnvelope" expression="Decline"/>
            </FromLink>
        </Failure>

    </BusinessCollaboration>

</ProcessSpecification>
<?xml version="1.0" encoding="UTF-8"?>
<Graphs xmlns:bp2="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0";>
   <Node>PurchaseOrderCollaboration1</Node>
   <Node>start0</Node>
   <Node>PurchaseOrderRequestAndConfirm1</Node>
   <Node>CancelOrderActivity1</Node>
   <Node>success0</Node>
   <Node>failure0</Node>
   <Edge>PurchaseOrderCollaboration1,start0</Edge>
   <Edge>start0,PurchaseOrderRequestAndConfirm1</Edge>
   <Label>PurchaseOrderCollaboration1,start0,true</Label>
   <Label>start0,PurchaseOrderRequestAndConfirm1,true</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,CancelOrderActivity1</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,CancelOrderActivity1,PartialPurchaseOrderResponse and success</Label>
   <Edge>CancelOrderActivity1,success0</Edge>
   <Label>CancelOrderActivity1,success0,Success</Label>
   <Edge>CancelOrderActivity1,failure0</Edge>
   <Label>CancelOrderActivity1,failure0,Failure</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,success0</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,success0,FullPurchaseOrderResponse and success</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,failure0</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,failure0,AnyProtocolFailure</Label>
</Graphs>
<?xml version="1.0" encoding="UTF-8"?>
<Graphs xmlns:bp2="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0";>
   <Node>PurchaseOrderCollaboration1</Node>
   <Node>start0</Node>
   <Node>PurchaseOrderRequestAndConfirm1</Node>
   <Node>CancelOrderActivity1</Node>
   <Node>success0</Node>
   <Node>failure0</Node>
   <Edge>PurchaseOrderCollaboration1,start0</Edge>
   <Edge>start0,PurchaseOrderRequestAndConfirm1</Edge>
   <Label>PurchaseOrderCollaboration1,start0,true</Label>
   <Label>start0,PurchaseOrderRequestAndConfirm1,true</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,CancelOrderActivity1</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,CancelOrderActivity1,PartialPurchaseOrderResponse and success</Label>
   <Edge>CancelOrderActivity1,success0</Edge>
   <Label>CancelOrderActivity1,success0,Success</Label>
   <Edge>CancelOrderActivity1,failure0</Edge>
   <Label>CancelOrderActivity1,failure0,Failure</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,success0</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,success0,FullPurchaseOrderResponse</Label>
   <Edge>PurchaseOrderRequestAndConfirm1,failure0</Edge>
   <Label>PurchaseOrderRequestAndConfirm1,failure0,AnyProtocolFailure</Label>
</Graphs>
<?xml version="1.0" encoding="UTF-8"?>
<Graphs xmlns:bp2="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0";>
   <Node>PurchaseOrderCollaboration1</Node>
   <Node>start0</Node>
   <Node>Decide100</Node>
   <Node>CRD1</Node>
   <Node>CancelOrderActivity1</Node>
   <Node>ASN10</Node>
   <Node>success0</Node>
   <Node>failure0</Node>
   <Edge>PurchaseOrderCollaboration1,start0</Edge>
   <Edge>start0,Decide100</Edge>
   <Label>PurchaseOrderCollaboration1,start0,true</Label>
   <Label>start0,Decide100,true</Label>
   <Edge>Decide100,CRD1</Edge>
   <Label>Decide100,CRD1,ChangeRequest and true()</Label>
   <Edge>CRD1,ASN10</Edge>
   <Label>CRD1,ASN10,Success and Accept</Label>
   <Edge>ASN10,success0</Edge>
   <Label>ASN10,success0,Success</Label>
   <Edge>ASN10,failure0</Edge>
   <Label>ASN10,failure0,AnyProtocolFailure</Label>
   <Edge>CRD1,failure0</Edge>
   <Label>CRD1,failure0,AnyProtocolFailure</Label>
   <Edge>Decide100,CancelOrderActivity1</Edge>
   <Label>Decide100,CancelOrderActivity1,BusinessFailure and true()</Label>
   <Edge>CancelOrderActivity1,success0</Edge>
   <Label>CancelOrderActivity1,success0,Success</Label>
   <Edge>CancelOrderActivity1,failure0</Edge>
   <Label>CancelOrderActivity1,failure0,AnyProtocolFailure</Label>
   <Edge>Decide100,ASN10</Edge>
   <Label>Decide100,ASN10,Success and Accept</Label>
   <Edge>ASN10,success0</Edge>
   <Label>ASN10,success0,Success</Label>
   <Edge>ASN10,failure0</Edge>
   <Label>ASN10,failure0,AnyProtocolFailure</Label>
   <Edge>Decide100,failure0</Edge>
   <Label>Decide100,failure0,AnyProtocolFailure Decline</Label>
</Graphs>

decision.jpg

transition.jpg

forkjoin.jpg



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