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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-bp message

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


Subject: ebBP 11/8/2005: UBL Example and Changes Indicative of UBL v1.0 Standard


Stephen Green and Dale Moberg have been reviewing Dean's 
excellent/detailed UBL example to consider changes relevant to:

   1. UBL v1.0 Standard now released: Stephen has some suggestions
      (shown below).
   2. External roles: Add usage of external roles and ensure the name,
      nameID are correct (and lexically ordered - even though this is
      not required by schema)
   3. v2.0.1 Public Review changes such as Specification element:
      Changed after v2.0.1 Committee Draft
   4. Depth in line with flow diagrams Dean originally created: Flow
      diagrams are more detailed than the actual ebBP process
      definition. This is fine; we need to ensure this difference is
      clearly stated.

What they have identified are some optimizations / changes to handle 
1.-4. above and provide descriptive text identifying the examples focus 
and intent.  As with the other Negotiation and Small Business Subset 
examples, we intend to place these in a separate appendices package. 
Most of this is due to the size limitations of the technical 
specification document (and problems generating .pdf).  We may also have 
other examples if Italian knitwear completes their detailed example in 
time, or will post them later with references.

Here are Dale and Stephen's comments. Dean did a great deal of work and 
we want to fully leverage that as well as evolve it further given our 
liaison with UBL now. 

Dale Moberg, 7 November 2005

Hi Monica,
As I explained on the call, I did consult the gif diagrams illustrating
the drop ship scenario in figuring out what to do with ExternalRoles.

I think I have a plausible resolution to that, but as I reviewed the
diagram and what was explicitly present in the described
BusinessCollaborations, I noticed some problems.

Minor problems include some gratuitous model elements. For example, a
Transition element is inluded that repeats the flow from the Start state
to the first BTA.

More troublesome, however, a very large amount of "glue" is missing in
the ebBP example that is in the model. For example, the model has a
decision element for rejecting an order, but there is no transition to
the order cancel logic, but just terminates with Success or Failure
states. 

Upon looking at it, it seems a very partial rendition into BPSS of the
gif activity diagram. I am wondering how (or whether) we should retain
this illustration. It may give the impression of being a complete worked
out BPSS description of a UBL based collaboration, but is really just
fragments that of that process.
Dale

Stephen Green, 8 November 2005
Just looking at the UBL drop-ship example

I notice the following UBL-specific areas which would need to be improved if it were to be regarded
as accurate regarding UBL 1.0 (though as an example only I think it is great)

1.                <!-- Variables. -->
	<Variable nameID="V800" name="PO Accepted" businessTransactionActivityRef="BTA1000" businessDocumentRef="O1000">
		<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='approved'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
	</Variable>
	<Variable nameID="V900" name="PO Rejected" businessTransactionActivityRef="BTA1000" businessDocumentRef="O1000">
		<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='reject'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
	</Variable>

The document here seems to be an Order but the //AcknowledgementResponseCode is not meant
to be used to indicate acceptance or acknowledgement. 

a. The Order/AcknowledgementResponseCode has one of two values 'OrderResponse' and 'OrderResponseSimple'
    I'm not sure how Dean has used it but it should be used to specify at run-time the type of document the
    Buyer wishes the Seller to use to respond to the Order. I would have to spend more time looking at how Dean's
    example works to find out whether this is a necessary part of his process and whether this element should be used.

b. What I think it may be that this process example needs to do is to define something which indicates whether
    an order has been accepted or rejected. There are two ways to do this with UBL and which one is used will
    either depend on the process definition (I've not had time to look at this example in this amount of detail yet to
    see whether it specifies this) or on the value given by the Buyer in 1a above (if the process definition allows). In
    the latter case: (i) if the response document is an OrderResponseSimple then  OrderResponseSimple/AcceptedIndicator,
    an xml 'boolean' datatype (how the content of this actually looks in messages seems to be implemenation specific
    but the definition in UBL specifies that 'true' and 'false' are the expected values), if 'true' (XPath '=true()' ??) denotes
    accepted and if 'false' (XPath '=false()' ??) denotes rejected order  (ii) if the response document is an OrderResponse
    then the response document, the OrderResponse can be used to indicate detail about acceptance/rejection and also
    substitution in various categories - much greater granularity of response perhaps than the drop-ship example caters
    for but perhaps lacking in a clear way to just relate either acceptance or rejection (though maybe DocumentStatusCode
    or the like could have a part to play in that - perhaps in a trading-agreement-specific way).

So you see it is quite a bit more complicated in reality than maybe Dean's example initially provides for - but the example gives a good start perhaps.

If the ConditionExpressions were changed to be more accurate in the example's Variable elements then it would probably be necessary to change the values for the businessDocumentRef in those acses too (since the documents might be inappropriate or incorrect for the more accurate examples).

2. I think the schema locations could be changed to the ones, with targetNamespace attributes added (and perhaps alternates
    with SBS externalDocumentDefRefs too)

3. Dean has dummy codelist values such as ACME3 and ACME in
<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='approved'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>

   and these could be changed to the UBL values 

4.                                              <Decision name="DEC100" nameID="DEC100">
				<FromLink fromBusinessStateRef="BTA100"/>
				<ToLink toBusinessStateRef="BTA100Success">
					<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='approved'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
				</ToLink>
				<ToLink toBusinessStateRef="BTA100Failure">
					<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='reject'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
				</ToLink>
			</Decision>

the same applies here as in 1. above

5.                                              <Decision name="DEC150" nameID="DEC150">
				<FromLink fromBusinessStateRef="BTA150"/>
				<ToLink toBusinessStateRef="BTA150Success">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="BTA150Failure">
					<ConditionExpression expressionLanguage="XPath1" expression="///DocumentStatusCode='false'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>

DocumentStatusCode exists in several documents in UBL 1.0 but the schemas provide the enumerations, of which 'false' is not an allowed value More work would be needed to analyse what needs to be substituted or corrected here too.

All this indicates a bit how much work might be needed if the example were to be made more accurate. There may well be more.So this shows that this is only to be treated as an example - though a very good illustrative one. Something more accurate is more likely, I think, to be achievable in the near term if it is a lot more simple and modular(as I started with the Invoice definition).

 


<?xml version="1.0" encoding="UTF-8"?>
<ProcessSpecification name="UBL 1.0 Invoice Small Business Subset BPSS" nameID="UBL_1-0_Invoice_SBS_BPSS" specificationVersion="2" instanceVersion="0.9.1" xmlns="http://docs.oasis-open.org/ebxmlbp/ebbp-2.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://docs.oasis-open.org/ebxmlbp/ebbp-2.0 ebbp-2.0.1.xsd" uuid="urn:oasis:names:draft:bpss:ubl:billing:invoice:1.0:sbs:1.0">
	<Documentation/>
	<Signal nameID="ra2" name="ReceiptAcknowledgement">
		<Specification nameID="rabpss2" name="ReceiptAcknowledgement" location="ebbp-signals-2.0.1.xsd"/>
	</Signal>
	<Signal nameID="rae2" name="ReceiptAcknowledgementException">
		<Specification nameID="raebpss2" name="Exception" location="ebbp-signals-2.0.1.xsd"/>
	</Signal>
	<Signal nameID="aa2" name="AcknowledgementException">
		<Specification nameID="aabpss2" name="AcknowledgementException" location="ebbp-signals-2.0.1.xsd"/>
	</Signal>
	<Signal nameID="aae2" name="AcceptanceAcknowledgementException">
		<Specification nameID="aaebpss2" name="Exception" location="ebbp-signals-2.0.1.xsd"/>
	</Signal>
	<Signal nameID="ge2" name="GeneralException">
		<Specification nameID="gebpss2" name="Exception" location="ebbp-signals-2.0.1.xsd"/>
	</Signal>
	<BusinessDocument name="UBL 1.0 Invoice - Small Business Subset" nameID="UBL_1-0_SBS_1-0_Invoice">
		<Documentation>The document specifications are an XSD file and a subset definition that specify the rules for creating the XML document for the business action of invoicing the buyer. </Documentation>
		<Specification targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0" name="Invoice" nameID="Invoice" location="http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/maindoc/UBL-Invoice-1.0.xsd"; type="schema"/>
		<Specification externalDocumentDefRef="urn:oasis:names:tc:ubl:xpath:Invoice-1.0:sbs-1.0" name="Invoice SBS" nameID="InvoiceSBS" location="../xpaths/xml/XPath/Invoice-XPath.xml" type="other"/>
	</BusinessDocument>
	<Package name="UBL 1.0 SBS" nameID="UBL_1-0_SBS">
		<Documentation/>
		<Package name="Billing" nameID="BillingID">
			<Documentation/>
			<Package name="Invoice" nameID="InvoiceID">
				<Documentation/>
				<Notification name="Send UBL 1.0 Invoice SBS" nameID="Send_UBL_1-0_Invoice_SBS_N" isGuaranteedDeliveryRequired="true">
					<RequestingRole name="Ninitiator" nameID="NinitiatorID"/>
					<RespondingRole name="Nresponder" nameID="NresponderID"/>
					<RequestingBusinessActivity name="Send Invoice" nameID="Send_Invoice">
						<DocumentEnvelope name="UBL 1.0 Invoice - Small Business Subset Notification" nameID="UBL_1-0_SBS_1-0_Invoice_Notification_DE" businessDocumentRef="UBL_1-0_SBS_1-0_Invoice" isAuthenticated="transient" isConfidential="transient" isTamperDetectable="transient"/>
						<ReceiptAcknowledgement signalDefinitionRef="ra2" nameID="RA2" name="RA2"/>
						<ReceiptAcknowledgementException signalDefinitionRef="rae2" nameID="RAE2" name="RAE2"/>
						<AcceptanceAcknowledgement signalDefinitionRef="aa2" nameID="AA2" name="AA2"/>
						<AcceptanceAcknowledgementException signalDefinitionRef="aae2" nameID="AAE2" name="AAE2"/>
					</RequestingBusinessActivity>
					<RespondingBusinessActivity name="Receive Invoice" nameID="Receive_Invoice"/>
				</Notification>
				<BusinessCollaboration name="Send UBL 1.0 Invoice SBS" nameID="Send_UBL_1-0_SBS_Invoice_BC" pattern="Notification">
					<Documentation/>
					<Role name="Creditor" nameID="CreditorID"/>
					<Role name="Debtor" nameID="DebtorID"/>
					<TimeToPerform/>
					<Start name="Start Send UBL 1.0 Invoice SBS" nameID="Start_ST">
						<ToLink toBusinessStateRef="Send_UBL_1-0_Invoice_SBS_BTA"/>
					</Start>
					<BusinessTransactionActivity name="Send UBL 1.0 Invoice SBS" nameID="Send_UBL_1-0_Invoice_SBS_BTA" businessTransactionRef="Send_UBL_1-0_Invoice_SBS_N" hasLegalIntent="true" isConcurrent="false">
						<TimeToPerform/>
						<Performs currentRoleRef="CreditorID" performsRoleRef="NinitiatorID"/>
						<Performs currentRoleRef="DebtorID" performsRoleRef="NresponderID"/>
					</BusinessTransactionActivity>
					<Success name="Start" nameID="Send_UBL_1-0_Invoice_SBS_BTA_Success"/>
					<Failure name="Failure" nameID="Send_UBL_1-0_Invoice_SBS_BTA_Failure"/>
				</BusinessCollaboration>
			</Package>
		</Package>
	</Package>
</ProcessSpecification>
<?xml version="1.0" encoding="UTF-8"?>
<!--: Owner: ebxmlbp (OASIS ebXML Business Process TC): ebxmlbp (aka ebBP)Version: 2.0.1Type: Instance: cd (Committee Draft)Name: UBLInstance: N/A: en (English): xml (instance): 20050721 (21 July 2005): This is a conformant instance example only and is included in the ebBP v2.0.1 technical specification (Spec).
-->
<!-- Author J. Dean E.P. Hemopo <jdean@ebxml.co.nz> Researcher of ebXML, Massey University, Palmerston North, New Zealand (Aotearoa).ebBP schema-conformant v2.0.1 XML instance document is intended to portray ALL the UBL v1.0 documents in a mock trading relationship.  This is only one interpretation of those documents in use.  This XML instance document is from the perspective of a Dropship Vendor, in a Consumer/Dropship Vendor/Supplier(s) trade relationship.  Stock is not held by the Dropship Vendor therefore JIT supply principles are applied.
-->
<ProcessSpecification xmlns="http://docs.oasis-open.org/ebxmlbp/ebbp-2.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xi="http://www.w3.org/2001/XInclude"; xsi:schemaLocation="http://docs.oasis-open.org/ebxmlbp/ebbp-2.0    /Schemas/ebbp-2.0.1-wd-r08.xsd" name="SAMPLE" nameID="IDSample" uuid="urn:www.oasis-open.org/committees/ebxmlbp/UBLInstance/2.1" specificationVersion="2" instanceVersion="2">
	<!-- ExternalRoles. -->
	<ExternalRoles>
		<BusinessPartnerRole nameID="IDBuyer" name="UltimateConsumer">
			<Performs currentRoleRef="IDBuyer" performsRoleRef="Buyer100"/>
		</BusinessPartnerRole>
		<BusinessPartnerRole nameID="IDDropShipVendor" name="DropShipVendor">
			<Performs currentRoleRef="IDDropShipVendor" performsRoleRef="MeSeller100"/>
			<Performs currentRoleRef="IDDropShipVendor" performsRoleRef="MeBuyer1000"/>
		</BusinessPartnerRole>
		<BusinessPartnerRole nameID="IDSupplier" name="Supplier">
			<Performs currentRoleRef="IDSupplier" performsRoleRef="Seller1000"/>
		</BusinessPartnerRole>
	</ExternalRoles>
	<!-- Signals. -->
	<Signal nameID="ra2" name="ReceiptAcknowledgement">
		<Specification nameID="rabpss2" name="ReceiptAcknowledgement" location="http://docs.oasis-open.org/ebxmlbp/ebbp-signals-2.0"/>
	</Signal>
	<Signal nameID="rae2" name="ReceiptAcknowledgementException">
		<Specification nameID="raebpss2" name="ReceiptAcknowledgementException" location=" http://docs.oasis-open.org/ebxmlbp/ebbp-signals-2.0"/>
	</Signal>
	<Signal nameID="aa2" name="AcceptanceAcknowledgement">
		<Specification nameID="aabpss2" name="AcceptanceAcknowledgement" location=" http://docs.oasis-open.org/ebxmlbp/ebbp-signals-2.0"/>
	</Signal>
	<Signal nameID="aae2" name="AcceptanceAcknowledgementException">
		<Specification nameID="aaebpss2" name="AcceptanceAcknowledgementException" location=" http://docs.oasis-open.org/ebxmlbp/ebbp-signals-2.0"/>
	</Signal>
	<Signal nameID="ge2" name="GeneralException">
		<Specification nameID="gebpss2" name="GeneralException" location=" http://docs.oasis-open.org/ebxmlbp/ebbp-signals-2.0"/>
	</Signal>
	<!-- Variables. -->
	<Variable nameID="V800" name="PO Accepted" businessTransactionActivityRef="BTA1000" businessDocumentRef="O1000">
		<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='approved'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
	</Variable>
	<Variable nameID="V900" name="PO Rejected" businessTransactionActivityRef="BTA1000" businessDocumentRef="O1000">
		<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='reject'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
	</Variable>
	<!-- Business Documents -->
	<BusinessDocument nameID="O100" name="Sales Order">
		<Specification nameID="UBLSalesOrder" name="UBLSalesOrder" location="http://www.acme.com/UBL-Order-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="O1000" name="UBL Order 1.0">
		<Specification nameID="UBLPurchaseOrder" name="UBLPurchaseOrder" location="http://www.acme.com/UBL-Order-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="ORS1900" name="UBL OrderResponseSimple 1.0 Reject">
		<Specification nameID="UBLPurchaseOrderReject" name="UBLPurchaseOrderReject" location="http://www.acme.com/UBL-OrderResponseSimple-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="ORS190" name="UBL OrderResponseSimple 1.0">
		<Specification nameID="UBLSalesOrderReject" name="UBLSalesOrderReject" location="http://www.acme.com/UBL-OrderResponseSimple-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="ORS1100" name="UBL OrderResponseSimple 1.0 Accept">
		<Specification nameID="UBLPurchaseOrderAccept" name="UBLPurchaseOrderAccept" location="http://www.acme.com/UBL-OrderResponseSimple-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="ORS110" name="UBL OrderResponseSimple 1.0 Accept">
		<Specification nameID="UBLSalesOrderAccept" name="UBLSalesOrderAccept" location="http://www.acme.com/UBL-OrderResponseSimple-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="OR1500" name="UBL OrderResponse 1.0">
		<Specification nameID="UBLOrderChangeMeBuyer" name="UBLOrderChangeMeBuyer" location="http://www.acme.com/UBL-OrderResponse-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="OR150" name="UBL OrderResponse 1.0">
		<Specification nameID="UBLOrderChangeBuyer" name="UBLOrderChangeBuyer" location="http://www.acme.com/UBL-OrderResponse-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="CAN170" name="UBL OrderCancellation 1.0">
		<Specification nameID="UBLOrderChangeBuyerReject" name="UBLOrderChangeBuyerReject" location="http://www.acme.com/UBL-OrderCancellation-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="CAN1700" name="UBL OrderCancellation 1.0">
		<Specification nameID="UBLOrderChangeMeBuyerReject" name="UBLOrderChangeMeBuyerReject" location="http://www.acme.com/UBL-OrderCancellation-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="OC130" name="UBL OrderChange 1.0">
		<Specification nameID="UBLOrderChangeBuyerAccept" name="UBLOrderChangeBuyerAccept" location="http://www.acme.com/UBL-OrderChange-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="OC1300" name="UBL OrderChange 1.0">
		<Specification nameID="UBLOrderChangeMeBuyerAccept" name="UBLOrderChangeMeBuyerAccept" location="http://www.acme.com/UBL-OrderChange-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="DA500" name="UBL DespatchAdvice 1.0">
		<Specification nameID="UBLDespatchAdviceBuyer" name="UBLDespatchAdviceBuyer" location="http://www.acme.com/UBL-DespatchAdvice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="DA5000" name="UBL DespatchAdvice 1.0">
		<Specification nameID="UBLDespatchAdviceMeBuyer" name="UBLDespatchAdviceMeBuyer" location="http://www.acme.com/UBL-DespatchAdvice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="RA5500" name="UBL ReceiptAdvice 1.0">
		<Specification nameID="UBLReceiptAdviceMeBuyer" name="UBLReceiptAdviceMeBuyer" location="http://www.acme.com/UBL-ReceiptAdvice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="RA550" name="UBL ReceiptAdvice 1.0">
		<Specification nameID="UBLReceiptAdviceBuyer" name="UBLReceiptAdviceBuyer" location="http://www.acme.com/UBL-ReceiptAdvice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="I6000" name="UBL Invoice 1.0">
		<Specification nameID="UBLInvoiceMeBuyer" name="UBLInvoiceMeBuyer" location="http://www.acme.com/UBL-Invoice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="I600" name="UBL Invoice 1.0">
		<Specification nameID="UBLInvoiceBuyer" name="UBLInvoiceBuyer" location="http://www.acme.com/UBL-Invoice-1.0.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="CAT10" name="Catalog Request">
		<Specification nameID="CatalogRequest" name="CatalogRequest" location="http://www.acme.com/Catalog.xsd"; type="schema"/>
	</BusinessDocument>
	<BusinessDocument nameID="CAT11" name="Send Catalog">
		<Specification nameID="SendCatalog" name="SendCatalog" location="http://www.acme.com/Catalog.xsd"; type="schema"/>
	</BusinessDocument>
	<Package nameID="Z1" name="Ordering">
		<!-- Business Transactions:  As per BT Patterns -->
		<CommercialTransaction name="Receive Sales Order" nameID="O1" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator1"/>
			<RespondingRole name="responder" nameID="responder1"/>
			<RequestingBusinessActivity name="Receive Sales Order" nameID="Sales1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="P1D" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="O100" nameID="doc100" name="Sales Order" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA100" nameID="RA100" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA101" nameID="RA101" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA102" nameID="AA102" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE102" nameID="AAE102" signalDefinitionRef="aae2"/>
			</RequestingBusinessActivity>
			<RespondingBusinessActivity name="Process Sales Order" nameID="A1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT23H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope name="Sales Order Reject" nameID="SOR190" businessDocumentRef="ORS190" isPositiveResponse="false" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<DocumentEnvelope name="Sales Order Accept" nameID="SOA110" businessDocumentRef="ORS110" isPositiveResponse="true" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA110" nameID="RA110" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA111" nameID="RA111" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA112" nameID="AA112" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE112" nameID="AAE112" signalDefinitionRef="aae2"/>
			</RespondingBusinessActivity>
		</CommercialTransaction>
		<CommercialTransaction name="Create Purchase Order" nameID="AA2" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator2"/>
			<RespondingRole name="responder" nameID="responder2"/>
			<RequestingBusinessActivity name="Create Purchase Order" nameID="Purchase1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="O1000" nameID="doc1000" name="Purchase Order" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA1000" nameID="RA1000" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA1010" nameID="RA1010" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA1020" nameID="AA1020" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE1020" nameID="AAE1020" signalDefinitionRef="aae2"/>
			</RequestingBusinessActivity>
			<RespondingBusinessActivity name="Process Purchase Order" nameID="A2" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT19H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope name="PO Reject" nameID="POR1900" businessDocumentRef="ORS1900" isPositiveResponse="false" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<DocumentEnvelope name="PO Accepted" nameID="POA1100" businessDocumentRef="ORS1100" isPositiveResponse="true" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA1100" nameID="RA1100" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA1110" nameID="RA1110" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA1120" nameID="AA1120" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE1120" nameID="AAE1120" signalDefinitionRef="aae2"/>
			</RespondingBusinessActivity>
		</CommercialTransaction>
		<DataExchange name="Receive Order Change" nameID="OR4" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator3"/>
			<RespondingRole name="responder" nameID="responder3"/>
			<RequestingBusinessActivity name="Receive Order Change" nameID="OrderChange1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="OR1500" nameID="doc1500" name="OrderChange from Supplier" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA1500" nameID="RA1500" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA1510" nameID="RA1510" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<CommercialTransaction name="Forward Sales Order Changes" nameID="OR10" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator4"/>
			<RespondingRole name="responder" nameID="responder4"/>
			<RequestingBusinessActivity name="Send Sales Order Change" nameID="SalesOrderChange1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="OR150" nameID="doc150" name="Forward Sales Order Change" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA150" nameID="RA150" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA151" nameID="RA151" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA152" nameID="AA152" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE152" nameID="AAE152" signalDefinitionRef="aae2"/>
			</RequestingBusinessActivity>
			<RespondingBusinessActivity name="Receive Sales Order Change" nameID="A10" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT19H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope name="Cancel Order" nameID="CANC170" businessDocumentRef="CAN170" isPositiveResponse="false" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<DocumentEnvelope name="Order Change Accepted" nameID="OCA130" businessDocumentRef="OC130" isPositiveResponse="true" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA130" nameID="RA130" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA131" nameID="RA131" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA132" nameID="AA132" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE132" nameID="AAE132" signalDefinitionRef="aae2"/>
			</RespondingBusinessActivity>
		</CommercialTransaction>
		<DataExchange name="Forward Sales Order Accept" nameID="DA1300" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator5"/>
			<RespondingRole name="responder" nameID="responder5"/>
			<RequestingBusinessActivity name="Forward Sales Order Accept" nameID="ForwardSalesOrder1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="OC1300" nameID="doc1300" name="Sales Order Change Accept" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA1300" nameID="RA1300" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA1310" nameID="RA1310" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<DataExchange name="Forward Sales Order Reject" nameID="D1700" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator6"/>
			<RespondingRole name="responder" nameID="responder6"/>
			<RequestingBusinessActivity name="Forward Sales Order Reject" nameID="ForwardSalesOrder2" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="D1700" nameID="doc1700" name="Sales Order Change Accept" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA1700" nameID="RA1700" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA1710" nameID="RA1710" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<DataExchange name="Receive DespatchAdvice" nameID="DAZ5000" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator7"/>
			<RespondingRole name="responder" nameID="responder7"/>
			<RequestingBusinessActivity name="Receive DespatchAdvice" nameID="Despatch1" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="DA5000" nameID="doc5000" name="Despatch Advice" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA5000" nameID="RA5000" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA5010" nameID="RA5010" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<CommercialTransaction name="Process Goods Delivery" nameID="DA5" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator8"/>
			<RespondingRole name="responder" nameID="responder8"/>
			<RequestingBusinessActivity name="Transmit Despatch Advice" nameID="Despatch2" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="DA500" nameID="doc500" name="Despatch Advice" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA500" nameID="RA500" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA510" nameID="RA510" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA520" nameID="AA520" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE520" nameID="AAE520" signalDefinitionRef="aae2"/>
			</RequestingBusinessActivity>
			<RespondingBusinessActivity name="Receive Goods" nameID="A5" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT19H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope name="Receipt Advice" nameID="RAR550" businessDocumentRef="RA550" isPositiveResponse="true" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA550" nameID="RAZ550" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RAEZ550" nameID="RAEZ550" signalDefinitionRef="rae2"/>
				<AcceptanceAcknowledgement name="AA550" nameID="AA550" signalDefinitionRef="aa2"/>
				<AcceptanceAcknowledgementException name="AAE550" nameID="AAE550" signalDefinitionRef="aae2"/>
			</RespondingBusinessActivity>
		</CommercialTransaction>
		<DataExchange name="Forward Goods Receipt" nameID="RA6" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator9"/>
			<RespondingRole name="responder" nameID="responder9"/>
			<RequestingBusinessActivity name="Forward Goods Receipt" nameID="Receipt2" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="RA5500" nameID="doc5500" name="Despatch Advice" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RAck500" nameID="RAck5500" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RA5510" nameID="RA5510" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<DataExchange name="Receive Suppliers Invoice" nameID="I6" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator10"/>
			<RespondingRole name="responder" nameID="responder10"/>
			<RequestingBusinessActivity name="Send Supplier Invoice" nameID="Invoice2" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="I6000" nameID="doc6000" name="Supplier Invoice" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA6000" nameID="RA6000" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RAE6000" nameID="RAE6000" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<DataExchange name="Send Invoice" nameID="I600A" isGuaranteedDeliveryRequired="true">
			<RequestingRole name="initiator" nameID="initiator11"/>
			<RespondingRole name="responder" nameID="responder11"/>
			<RequestingBusinessActivity name="Send Invoice" nameID="Invoice3" isAuthorizationRequired="true" isIntelligibleCheckRequired="true" isNonRepudiationReceiptRequired="true" isNonRepudiationRequired="true" timeToAcknowledgeAcceptance="PT20H" timeToAcknowledgeReceipt="PT10S">
				<DocumentEnvelope businessDocumentRef="I600" nameID="doc600" name="Invoice" isAuthenticated="persistent" isConfidential="persistent" isTamperDetectable="persistent"/>
				<ReceiptAcknowledgement name="RA600" nameID="RA600" signalDefinitionRef="ra2"/>
				<ReceiptAcknowledgementException name="RAE600" nameID="RAE600" signalDefinitionRef="rae2"/>
			</RequestingBusinessActivity>
		</DataExchange>
		<QueryResponse name="Catalog Request" nameID="CAT100" isGuaranteedDeliveryRequired="false">
			<RequestingRole name="initiator" nameID="initiator12"/>
			<RespondingRole name="responder" nameID="responder12"/>
			<RequestingBusinessActivity name="requestCatalog" nameID="CAT101">
				<DocumentEnvelope name="Catalog Request" nameID="CAT102" businessDocumentRef="CAT10"/>
			</RequestingBusinessActivity>
			<RespondingBusinessActivity name="sendCatalog" nameID="CAT13">
				<DocumentEnvelope name="Catalog Response" nameID="CAT14" isPositiveResponse="true" businessDocumentRef="CAT11"/>
			</RespondingBusinessActivity>
		</QueryResponse>
		<!--  BinaryCollaboration and MultiPartyCollaboration are being deprecated, hence we demonstrate
		       BusinessCollaboration.  -->
		<BusinessCollaboration name="Receive Sales Order" nameID="SalesOrder100" pattern="">
			<Role name="Buyer" nameID="Buyer100"/>
			<Role name="MeSeller" nameID="MeSeller100"/>
			<TimeToPerform duration="P2D"/>
			<Start name="Start Receive Sales Order" nameID="StartReceiveSalesOrder">
				<ToLink toBusinessStateRef="BTA100"/>
			</Start>
			<BusinessTransactionActivity name="BTA100" nameID="BTA100" businessTransactionRef="O1" hasLegalIntent="true">
				<TimeToPerform duration="PT24H"/>
				<Performs currentRoleRef="Buyer100" performsRoleRef="initiator1"/>
				<Performs currentRoleRef="MeSeller100" performsRoleRef="responder1"/>
			</BusinessTransactionActivity>
			<Success name="Success" nameID="BTA100Success"/>
			<Failure name="Failure" nameID="BTA100Failure"/>
			<!-- 
               Start state StartReceiveSalesOrder already goes to BTA100
                Transition>
				<FromLink fromBusinessStateRef="StartReceiveSalesOrder"/>
				<ToLink toBusinessStateRef="BTA100"/>
			</Transition -->
			<!--  The XPath expressions utilise the DocumentStatusCode, attribute "name", and  InvoiceTypeCode, attribute = "name", to succinctly 
		           reflect the state that the BusinessDocument being referenced, is in.  Once again, this is one application use of these 
		           elements/attributes.  Furthermore, the XPath predicates use "imaginary" codeListAgencyID etc.  -->
			<Decision name="DEC100" nameID="DEC100">
				<FromLink fromBusinessStateRef="BTA100"/>
				<ToLink toBusinessStateRef="BTA100Success">
					<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='approved'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
				</ToLink>
				<ToLink toBusinessStateRef="BTA100Failure">
					<ConditionExpression expressionLanguage="XPath1" expression="//AcknowledgementResponseCode='reject'[@codeListID='ACME3' @codeListAgencyID='ACME']"/>
				</ToLink>
			</Decision>
		</BusinessCollaboration>
		<BusinessCollaboration name="Create Purchase Order" nameID="CreatePurchaseOrder1000" pattern="">
			<Role name="MeBuyer" nameID="MeBuyer1000"/>
			<Role name="Seller" nameID="Seller1000"/>
			<TimeToPerform duration="PT36H"/>
			<Start name="Start Purchase Order" nameID="StartPurchaseOrder">
				<ToLink toBusinessStateRef="BTA1000"/>
			</Start>
			<BusinessTransactionActivity name="BTA1000" nameID="BTA1000" businessTransactionRef="AA2" hasLegalIntent="true">
				<TimeToPerform duration="PT24H"/>
				<Performs currentRoleRef="MeBuyer1000" performsRoleRef="initiator2"/>
				<Performs currentRoleRef="Seller1000" performsRoleRef="responder2"/>
			</BusinessTransactionActivity>
			<Success name="Success" nameID="BTA1000Success"/>
			<Failure name="Failure" nameID="BTA1000Failure"/>
			<Transition>
				<FromLink fromBusinessStateRef="StartPurchaseOrder"/>
				<ToLink toBusinessStateRef="BTA1000"/>
			</Transition>
			<Decision name="DEC1000" nameID="DEC1000">
				<FromLink fromBusinessStateRef="BTA1000"/>
				<ToLink toBusinessStateRef="BTA1000Success">
					<ConditionExpression expressionLanguage="XPath1" expression="PO Accepted"/>
				</ToLink>
				<ToLink toBusinessStateRef="BTA1000Failure">
					<ConditionExpression expressionLanguage="XPath1" expression="PO Rejected"/>
				</ToLink>
			</Decision>
		</BusinessCollaboration>
		<BusinessCollaboration name="Receive Order Change" nameID="ReceiveOrderChangeA" pattern="">
			<Role name="Seller" nameID="Seller4"/>
			<Role name="MeBuyer" nameID="MeBuyer4"/>
			<TimeToPerform duration="PT36H"/>
			<Start name="Receive Order Change" nameID="ReceiveOrderChange">
				<ToLink toBusinessStateRef="BTA4"/>
			</Start>
			<BusinessTransactionActivity name="BTA4" nameID="BTA4" businessTransactionRef="OR4" hasLegalIntent="true">
				<TimeToPerform duration="PT24H"/>
				<Performs currentRoleRef="Seller4" performsRoleRef="initiator4"/>
				<Performs currentRoleRef="MeBuyer4" performsRoleRef="responder4"/>
			</BusinessTransactionActivity>
		</BusinessCollaboration>
		<BusinessCollaboration name="Forward Sales Order Change" nameID="ForwardSalesOrderChange" pattern="">
			<Role name="MeSeller" nameID="MeSeller150"/>
			<Role name="Buyer" nameID="Buyer150"/>
			<TimeToPerform duration="PT36H"/>
			<Start name="Forward Sales Order" nameID="ForwardSalesOrder">
				<ToLink toBusinessStateRef="BTA150"/>
			</Start>
			<BusinessTransactionActivity name="BTA150" nameID="BTA150" businessTransactionRef="OR10" hasLegalIntent="true">
				<TimeToPerform duration="PT24H"/>
				<Performs currentRoleRef="MeSeller150"  performsRoleRef="initiator4" />
				<Performs currentRoleRef="Buyer150"  performsRoleRef="responder4" />
			</BusinessTransactionActivity>
			<Success name="Success" nameID="BTA150Success"/>
			<Failure name="Failure" nameID="BTA150Failure"/>
			<Transition>
				<FromLink fromBusinessStateRef="ForwardSalesOrder"/>
				<ToLink toBusinessStateRef="BTA150"/>
			</Transition>
			<Decision name="DEC150" nameID="DEC150">
				<FromLink fromBusinessStateRef="BTA150"/>
				<ToLink toBusinessStateRef="BTA150Success">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="BTA150Failure">
					<ConditionExpression expressionLanguage="XPath1" expression="///DocumentStatusCode='false'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
		</BusinessCollaboration>
		<BusinessCollaboration name="Forward Sales Order Change Accept" nameID="ForwardSalesOrderChangeAccept" pattern="">
			<Role name="MeBuyer" nameID="MeBuyer1300"/>
			<Role name="Seller" nameID="Seller1300"/>
			<TimeToPerform duration="PT14H"/>
			<Start name="Forward Sales Order Change Accept" nameID="ForwardSalesOrderChangeAccept2">
				<ToLink toBusinessStateRef="BTA1300"/>
			</Start>
			<BusinessTransactionActivity name="BTA1300" nameID="BTA1300" businessTransactionRef="OC1300" hasLegalIntent="true">
				<TimeToPerform duration="PT12H"/>
				<Performs currentRoleRef="MeBuyer1300" performsRoleRef="initiator5" />
				<Performs currentRoleRef="Seller1300" performsRoleRef="responder5"/>
			</BusinessTransactionActivity>
		</BusinessCollaboration>
		<BusinessCollaboration name="Forward Sales Order Change Reject" nameID="ForwardSalesOrderChangeRejectA" pattern="">
			<Role name="MeBuyer" nameID="MeBuyer1700"/>
			<Role name="Seller" nameID="Seller1700"/>
			<TimeToPerform duration="PT6H"/>
			<Start name="Forward Sales Order Change Reject" nameID="ForwardSalesOrderChangeReject">
				<ToLink toBusinessStateRef="BTA1700"/>
			</Start>
			<BusinessTransactionActivity name="BTA1700" nameID="BTA1700" businessTransactionRef="D1700" hasLegalIntent="true">
				<TimeToPerform duration="PT6H"/>
				<Performs  currentRoleRef="MeBuyer1700" performsRoleRef="initiator6"/>
				<Performs currentRoleRef="Seller1700" performsRoleRef="responder6"/>
			</BusinessTransactionActivity>
		</BusinessCollaboration>
		<!--  BusinessCollaboration with ComplexBusinessTransactionActivity. -->
		<BusinessCollaboration name="Goods Delivery and Billing" nameID="GoodsDeliveryandBilling" pattern="">
			<Role name="MeSeller" nameID="MeSeller5000"/>
			<Role name="MeBuyer" nameID="MeBuyer5000"/>
			<Role name="Seller" nameID="Seller500"/>
			<Role name="Buyer" nameID="Buyer500"/>
			<Role name="Shipper" nameID="Shipper500"/>
			<TimeToPerform duration="P3D"/>
			<Start name="Goods Delivery and Shipping" nameID="GoodsDeliveryandShipping">
				<ToLink toBusinessStateRef="Z5000"/>
			</Start>
			<!--  The ComplexBusinessActivity. This particular application of ComplexBTA depicts its application in ensuring these particular
		           BTAs are carried out in a Serial fashion. -->
			<ComplexBusinessTransactionActivity name="PrimaryDeliveryProcesses" nameID="Z5000" businessTransactionRef="DAZ5000" hasLegalIntent="true">
				<TimeToPerform duration="P1D"/>
				<Performs currentRoleRef="Shipper500" performsRoleRef="initiator7"/>
				<Performs currentRoleRef="MeBuyer5000" performsRoleRef="responder7"/>
				<!--  BTAs in ComplexBTA -->
				<BusinessTransactionActivity name="Forward to Buyer 500Z" nameID="Z500" businessTransactionRef="DA5" hasLegalIntent="true">
					<TimeToPerform duration="PT6H"/>
					<Performs currentRoleRef="MeSeller5000" performsRoleRef="initiator8" />
					<Performs  currentRoleRef="Buyer500" performsRoleRef="responder8"/>
				</BusinessTransactionActivity>
				<StatusVisibility nameID="SV100" name="Status Visibility Forward to Consumer">
					<BusinessDocumentList>DA500</BusinessDocumentList>
					<SubstateVisibility>Success</SubstateVisibility>
					<!--  The following BTA's and their StatusVisibility Elements specify DocumentEnvelope ID's and the content that is made
		                   "visible" to the higher level BTA, in a ComplexBTA, and to the parent ComplexBTA -->
					<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="unqualified">
						<xs:element name="DocumentStatusCode">
							<xs:annotation>
								<xs:documentation>Informs the Customer of whether or not the Goods
                                   have been despatched</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:schema>
				</StatusVisibility>
				<BusinessTransactionActivity name="Forward Goods Receipt" nameID="ForwardGoodsReceipt" businessTransactionRef="RA6" hasLegalIntent="true">
					<TimeToPerform duration="PT6H"/>
					<Performs  currentRoleRef="MeBuyer5000" performsRoleRef="initiator9"/>
					<Performs currentRoleRef="Shipper500" performsRoleRef="responder9"/>
				</BusinessTransactionActivity>
				<StatusVisibility nameID="SV200" name="Status Visibility Receive Despatch Advice">
					<BusinessDocumentList>RA5500</BusinessDocumentList>
					<SubstateVisibility>Success</SubstateVisibility>
					<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="unqualified">
						<xs:element name="DocumentStatusCode">
							<xs:annotation>
								<xs:documentation>Informs the Supplier of whether or not the Goods
                                   have been Received</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:schema>
				</StatusVisibility>
				<BusinessTransactionActivity name="Receive Suppliers Invoice" nameID="ReceiveSuppliersInvoice" businessTransactionRef="I6" hasLegalIntent="true">
					<TimeToPerform duration="PT6H"/>
					<Performs currentRoleRef="Seller500" performsRoleRef="initiator10" />
					<Performs currentRoleRef="MeBuyer5000" performsRoleRef="responder10"/>
				</BusinessTransactionActivity>
				<StatusVisibility nameID="SV300" name="Status Visibility Receive Invoice">
					<BusinessDocumentList>I6000</BusinessDocumentList>
					<SubstateVisibility>Success</SubstateVisibility>
					<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="unqualified">
						<xs:element name="InvoiceTypeCode">
							<xs:annotation>
								<xs:documentation>Informs the DropShip Vendor, from the Supplier, of
                                   the Cost of Goods that have been despatched. </xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:schema>
				</StatusVisibility>
				<BusinessTransactionActivity name="Send Invoice to Customer" nameID="SendInvoicetoCustomer" businessTransactionRef="I600A" hasLegalIntent="true">
					<TimeToPerform duration="PT12H"/>
					<Performs currentRoleRef="MeSeller5000" performsRoleRef="initiator11"/>
					<Performs currentRoleRef="Buyer500" performsRoleRef="responder11"/>
				</BusinessTransactionActivity>
				<StatusVisibility nameID="SV400" name="Status Visibility Send Invoice to Consumer">
					<BusinessDocumentList>I600</BusinessDocumentList>
					<SubstateVisibility>Success</SubstateVisibility>
					<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="unqualified">
						<xs:element name="InvoiceTypeCode"/>
					</xs:schema>
				</StatusVisibility>
			</ComplexBusinessTransactionActivity>
			<!--  Various "flavors" of Failure or Success.  The XPath expressions utilise the DocumentStatusCode, attribute "name", and 
		           InvoiceTypeCode, attribute = "name", to succinctly reflect the state that the BusinessDocument being referenced, is in.  Once again, 
		           this is one application use of these elements/attributes.  Furthermore, the XPath predicates use "imaginary" codeListAgencyID etc.  -->
			<Transition>
				<FromLink fromBusinessStateRef="GoodsDeliveryandShipping"/>
				<ToLink toBusinessStateRef="Z5000"/>
			</Transition>
			<Success nameID="SUCZ5000" name="Success 5000">
				<FromLink fromBusinessStateRef="DAZ5000">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</FromLink>
			</Success>
			<Failure nameID="Failure5000" name="Failure 5000"/>
			<Decision nameID="DECZ1" name="DECZ1">
				<FromLink fromBusinessStateRef="DAZ5000"/>
				<ToLink toBusinessStateRef="SUCZ5000">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="Failure5000">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
			<Transition>
				<FromLink fromBusinessStateRef="SUCZ5000"/>
				<ToLink toBusinessStateRef="Z500"/>
			</Transition>
			<Success nameID="SUCZ500" name="Success 500">
				<FromLink fromBusinessStateRef="Z500">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</FromLink>
			</Success>
			<Failure nameID="FailureZ500" name="Failure Z500"/>
			<Decision nameID="DECZ2" name="DECZ2">
				<FromLink fromBusinessStateRef="Z500"/>
				<ToLink toBusinessStateRef="SUCZ500">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="FailureZ500">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='false'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
			<Success nameID="SUCForwardGoodsReceipt" name="Success ForwardGoodsReceipt">
				<FromLink fromBusinessStateRef="ForwardGoodsReceipt">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</FromLink>
			</Success>
			<Failure nameID="FailureForwardGoodsReceipt" name="Failure ForwardGoodsReceipt"/>
			<Transition>
				<FromLink fromBusinessStateRef="SUCForwardGoodsReceipt"/>
				<ToLink toBusinessStateRef="ReceiveSuppliersInvoice"/>
			</Transition>
			<Decision nameID="DECZ3" name="DECZ3">
				<FromLink fromBusinessStateRef="ForwardGoodsReceipt"/>
				<ToLink toBusinessStateRef="SUCForwardGoodsReceipt">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='true'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="FailureForwardGoodsReceipt">
					<ConditionExpression expressionLanguage="XPath1" expression="//DocumentStatusCode='false'[@codeListID='ACME1' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
			<Success nameID="SUCReceiveSuppliersInvoice" name="Success ReceiveSuppliersInvoice">
				<FromLink fromBusinessStateRef="ReceiveSuppliersInvoice">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='true'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</FromLink>
			</Success>
			<Failure nameID="FailureReceiveSuppliersInvoice" name="Failure ReceiveSuppliersInvoice"/>
			<Transition>
				<FromLink fromBusinessStateRef="SUCReceiveSuppliersInvoice"/>
				<ToLink toBusinessStateRef="SendInvoicetoCustomer"/>
			</Transition>
			<Decision nameID="DECInvoice" name="DECInvoice">
				<FromLink fromBusinessStateRef="ReceiveSuppliersInvoice"/>
				<ToLink toBusinessStateRef="SUCReceiveSuppliersInvoice">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='true'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="FailureReceiveSuppliersInvoice">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='false'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
			<Success nameID="SUCSendInvoicetoCustomer" name="Success SendInvoicetoCustomer">
				<FromLink fromBusinessStateRef="SendInvoicetoCustomer">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='true'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</FromLink>
			</Success>
			<Failure nameID="FailureSendInvoicetoCustomer" name="Failure SendInvoicetoCustomer"/>
			<Decision nameID="DECConsumerInvoice" name="DECConsumerInvoice">
				<FromLink fromBusinessStateRef="SendInvoicetoCustomer"/>
				<ToLink toBusinessStateRef="SUCSendInvoicetoCustomer">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='true'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</ToLink>
				<ToLink toBusinessStateRef="FailureSendInvoicetoCustomer">
					<ConditionExpression expressionLanguage="XPath1" expression="//InvoiceTypeCode='false'[@codeListID='ACME2' @codeListAgencyID='ACME' ]"/>
				</ToLink>
			</Decision>
		</BusinessCollaboration>
		<!--  Here are just a few OperationMapping(s) to illustrate, one which integrates the business messages and signals.  It is assumed that not all our ebXML BPSS v2.0.1 BTA/ComplexBTAs have been implemented in our Web Service.  This is only for the brevity of this instance document.  -->
		<OperationMapping businessTransactionActivityRef="BTA100" roleRef="MeSeller100" nameID="OM100" name="Receive Sales Order">
			<MessageMap operationName="processSalesOrder" documentEnvelopeRef="O100" operationStep="input" interfaceName="Sales"/>
			<MessageMap operationName="processSalesOrder" documentEnvelopeRef="SOA110" operationStep="output" interfaceName="Sales"/>
			<MessageMap operationName="processSalesOrder" documentEnvelopeRef="SOR190" operationStep="fault" interfaceName="Sales"/>
			<MessageMap operationName="receiptSignal" documentEnvelopeRef="RA100" operationStep="output" interfaceName="Sales"/>
			<MessageMap operationName="receiptException" documentEnvelopeRef="RA101" operationStep="fault" interfaceName="Sales"/>
			<MessageMap operationName="acceptanceSignal" documentEnvelopeRef="AA102" operationStep="output" interfaceName="Sales"/>
			<MessageMap operationName="acceptanceException" documentEnvelopeRef="AAE102" operationStep="fault" interfaceName="Sales"/>
			<MessageMap operationName="receiptSignal" documentEnvelopeRef="RA110" operationStep="output" interfaceName="Sales"/>
			<MessageMap operationName="receiptException" documentEnvelopeRef="RA111" operationStep="fault" interfaceName="Sales"/>
			<MessageMap operationName="acceptanceSignal" documentEnvelopeRef="AA112" operationStep="output" interfaceName="Sales"/>
			<MessageMap operationName="acceptanceException" documentEnvelopeRef="AAE112" operationStep="fault" interfaceName="Sales"/>
		</OperationMapping>
		<OperationMapping businessTransactionActivityRef="Purchase1" roleRef="MeBuyer1000" nameID="OM1000" name="Generate Purchase Order">
			<MessageMap operationName="CreatePurchaseOrder" documentEnvelopeRef="O1000" operationStep="input" interfaceName="PurchaseOrder"/>
			<MessageMap operationName="CreatePurchaseOrder" documentEnvelopeRef="POA1100" operationStep="output" interfaceName="PurchaseOrder"/>
			<MessageMap operationName="CreatePurchaseOrder" documentEnvelopeRef="POR1900" operationStep="fault" interfaceName="PurchaseOrder"/>
		</OperationMapping>
	</Package>
</ProcessSpecification>


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