[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: First cut at a combination of two UBP process definitions
Hi Monica, ebBP TC, I just completed a first cut at combining a receipt advice notification UBP process definition with one for an invoice, to demonstrate (I hope, please correct if necessary) an invoice being triggered by a receipt advice (this can happen by the way, but is for illustration of course). If I have time I'd like to show an order cancellation only allowed after an order has been given a successful 'order response simple' (with order accepted) and not after a despatch advice. I just think I will need help with the latter, more so as I haven't done much of a similar nature as yet. Plus I may not have time before the end of the week and I guess Monica would like something before then - so here is the simpler one in the meantime. All the best Steve
<?xml version="1.0" encoding="UTF-8"?> <!-- FOR ILLUSTRATION Demonstrates combination of several modular business process definitions (here using OASIS UBL Universal Business Process 1.0 definitions, (c) OASIS 2006 ) Created by Stephen Green, 2006 --> <!-- remember to add XInclude namespace if XInclude is to be used --> <ProcessSpecification name="Custom Process UBL 1.0 Small Business Subset ReceiptAdvice Invoice" nameID="CustomProcessUBL1SBSReceiptAdviceInvoice_PS" specificationVersion="2" instanceVersion="1.0.3" uuid="bpid:myuuid:cutom-process-ubl-1-sbs-receipt-advice-invoice" xmlns="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://docs.oasis-open.org/ebxml-bp/ebbp-2.0 ebbp-2.0.3.xsd"> <!-- in this case some copying and pasting is required even if XInclude is used --> <!-- signals copied from either process definition --> <Signal nameID="ra2" name="ReceiptAcknowledgement"> <Specification nameID="rabpss2" name="ReceiptAcknowledgement" location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"/> </Signal> <Signal nameID="rae2" name="ReceiptAcknowledgementException"> <Specification nameID="raebpss2" name="Exception" location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"/> </Signal> <Signal nameID="aa2" name="AcceptanceAcknowledgement"> <Specification nameID="aabpss2" name="AcceptanceAcknowledgement" location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"/> </Signal> <Signal nameID="aae2" name="AcceptanceAcknowledgementException"> <Specification nameID="aaebpss2" name="Exception" location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"/> </Signal> <Signal nameID="ge2" name="GeneralException"> <Specification nameID="gebpss2" name="Exception" location="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0"/> </Signal> <!-- business documents copied from receipt advice process definition --> <BusinessDocument name="UBL 1.0 SBS Receipt Advice" nameID="ReceiptAdvice_UBL1SBSReceiptAdviceNotification_BD"> <Specification targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:ReceiptAdvice-1.0" name="Receipt Advice" nameID="ReceiptAdvice_UBL1SBSReceiptAdviceNotification_SP" location="http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/maindoc/UBL-ReceiptAdvice-1.0.xsd" type="schema"/> <Specification externalDocumentDefRef="urn:oasis:names:tc:ubl:xpath:ReceiptAdvice-1.0:sbs-1.0" name="Receipt Advice SBS" nameID="ReceiptAdviceSBS_UBL1SBSReceiptAdviceNotification_SP" location="http://docs.oasis-open.org/ubl/cs-UBL-1.0-SBS-1.0/xpaths/xml/XPath/ReceiptAdvice-XPath.xml" type="other"/> </BusinessDocument> <!-- business documents copied from invoice process definition --> <BusinessDocument name="UBL 1.0 SBS Invoice" nameID="Invoice_UBL1SBSInvoiceNotification_BD"> <Specification targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-1.0" name="Invoice" nameID="Invoice_UBL1SBSInvoiceNotification_SP" 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_UBL1SBSInvoiceNotification_SP" location="http://docs.oasis-open.org/ubl/cs-UBL-1.0-SBS-1.0/xpaths/xml/XPath/Invoice-XPath.xml" type="other"/> </BusinessDocument> <!-- xincludes to be used where supported by software --> <!-- <xi:include href="http://docs.oasis-open.org/ubl/cs-UBL-1.0-SBS-1.0/universal-business-process-1.0-ebBP/ebxmlbp-2.0_ubl-1-sbs-receipt-advice-notification-1.xml" parse="xml" xpointer="xpointer(/ProcessSpecification/Package[1])"/> <xi:include href="http://docs.oasis-open.org/ubl/cs-UBL-1.0-SBS-1.0/universal-business-process-1.0-ebBP/ebxmlbp-2.0_ubl-1-sbs-invoice-notification-1.xml" parse="xml" xpointer="xpointer(/ProcessSpecification/Package[1])"/> --> <!-- package with transaction copied from receipt advice process definition (equivalent to using XInclude) --> <Package name="UBL1SBSReceiptAdviceNotification" nameID="UBL1SBSReceiptAdviceNotification"> <Documentation/> <Notification name="Notify Receipt Advice" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_N" isGuaranteedDeliveryRequired="true"> <RequestingRole name="InitiatorUBL1SBSReceiptAdviceNotification" nameID="Initiator_UBL1SBSReceiptAdviceNotification"/> <RespondingRole name="ResponderUBL1SBSReceiptAdviceNotification" nameID="Responder_UBL1SBSReceiptAdviceNotification"/> <RequestingBusinessActivity name="Send Receipt Advice" nameID="SendReceiptAdvice_UBL1SBSReceiptAdviceNotification_ReqBA"> <DocumentEnvelope name="UBL 1.0 SBS Receipt Advice" nameID="ReceiptAdvice_UBL1SBSReceiptAdviceNotification_DE" businessDocumentRef="ReceiptAdvice_UBL1SBSReceiptAdviceNotification_BD" isAuthenticated="transient" isConfidential="transient" isTamperDetectable="transient"/> <ReceiptAcknowledgement signalDefinitionRef="ra2" nameID="RA2_UBL1SBSReceiptAdviceNotification" name="RA2"/> <ReceiptAcknowledgementException signalDefinitionRef="rae2" nameID="RAE2_UBL1SBSReceiptAdviceNotification" name="RAE2"/> <AcceptanceAcknowledgement signalDefinitionRef="aa2" nameID="AA2_UBL1SBSReceiptAdviceNotification" name="AA2"/> <AcceptanceAcknowledgementException signalDefinitionRef="aae2" nameID="AAE2_UBL1SBSReceiptAdviceNotification" name="AAE2"/> </RequestingBusinessActivity> <RespondingBusinessActivity name="Receive Receipt Advice" nameID="ReceiveReceiptAdvice_UBL1SBSReceiptAdviceNotification_ResBA"/> </Notification> <BusinessCollaboration name="Notify Receipt Advice" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_BC" pattern="Notification"> <Documentation/> <Role name="Delivery" nameID="Delivery_UBL1SBSReceiptAdviceNotification"/> <Role name="Despatch" nameID="Despatch_UBL1SBSReceiptAdviceNotification"/> <TimeToPerform/> <Start name="Start Forward Receipt Advice" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_ST"> <ToLink toBusinessStateRef="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_BTA"/> </Start> <BusinessTransactionActivity name="Notify Receipt Advice" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_BTA" businessTransactionRef="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_N" hasLegalIntent="true" isConcurrent="false"> <TimeToPerform/> <Performs currentRoleRef="Delivery_UBL1SBSReceiptAdviceNotification" performsRoleRef="Initiator_UBL1SBSReceiptAdviceNotification"/> <Performs currentRoleRef="Despatch_UBL1SBSReceiptAdviceNotification" performsRoleRef="Responder_UBL1SBSReceiptAdviceNotification"/> </BusinessTransactionActivity> <Success name="Success" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_Success"> <FromLink fromBusinessStateRef="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/> </FromLink> </Success> <Failure name="Failure" nameID="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_Failure"> <FromLink fromBusinessStateRef="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </FromLink> </Failure> </BusinessCollaboration> </Package> <!-- package with transaction copied from invoice process definition (equivalent to using XInclude) --> <Package name="UBL1SBSInvoiceNotification" nameID="UBL1SBSInvoiceNotification"> <Documentation/> <Notification name="Present Invoice" nameID="PresentInvoice_UBL1SBSInvoiceNotification_N" isGuaranteedDeliveryRequired="true"> <RequestingRole name="InitiatorUBL1SBSInvoiceNotification" nameID="Initiator_UBL1SBSInvoiceNotification"/> <RespondingRole name="ResponderUBL1SBSInvoiceNotification" nameID="Responder_UBL1SBSInvoiceNotification"/> <RequestingBusinessActivity name="Send Invoice" nameID="SendInvoice_UBL1SBSInvoiceNotification_ReqBA"> <DocumentEnvelope name="UBL 1.0 SBS Invoice" nameID="Invoice_UBL1SBSInvoiceNotification_DE" businessDocumentRef="Invoice_UBL1SBSInvoiceNotification_BD" isAuthenticated="transient" isConfidential="transient" isTamperDetectable="transient"/> <ReceiptAcknowledgement signalDefinitionRef="ra2" nameID="RA2_UBL1SBSInvoiceNotification" name="RA2"/> <ReceiptAcknowledgementException signalDefinitionRef="rae2" nameID="RAE2_UBL1SBSInvoiceNotification" name="RAE2"/> <AcceptanceAcknowledgement signalDefinitionRef="aa2" nameID="AA2_UBL1SBSInvoiceNotification" name="AA2"/> <AcceptanceAcknowledgementException signalDefinitionRef="aae2" nameID="AAE2_UBL1SBSInvoiceNotification" name="AAE2"/> </RequestingBusinessActivity> <RespondingBusinessActivity name="Receive Invoice" nameID="ReceiveInvoice_UBL1SBSInvoiceNotification_ResBA"/> </Notification> <BusinessCollaboration name="Present Invoice" nameID="PresentInvoice_UBL1SBSInvoiceNotification_BC" pattern="Notification"> <Documentation/> <Role name="Invoice Initiator" nameID="InvoiceInitiator_UBL1SBSInvoiceNotification"/> <Role name="Invoice Receiver" nameID="InvoiceReceiver_UBL1SBSInvoiceNotification"/> <TimeToPerform/> <Start name="Start Present Invoice" nameID="PresentInvoice_UBL1SBSInvoiceNotification_ST"> <ToLink toBusinessStateRef="PresentInvoice_UBL1SBSInvoiceNotification_BTA"/> </Start> <BusinessTransactionActivity name="Present Invoice" nameID="PresentInvoice_UBL1SBSInvoiceNotification_BTA" businessTransactionRef="PresentInvoice_UBL1SBSInvoiceNotification_N" hasLegalIntent="true" isConcurrent="false"> <TimeToPerform/> <Performs currentRoleRef="InvoiceInitiator_UBL1SBSInvoiceNotification" performsRoleRef="Initiator_UBL1SBSInvoiceNotification"/> <Performs currentRoleRef="InvoiceReceiver_UBL1SBSInvoiceNotification" performsRoleRef="Responder_UBL1SBSInvoiceNotification"/> </BusinessTransactionActivity> <Success name="Success" nameID="PresentInvoice_UBL1SBSInvoiceNotification_Success"> <FromLink fromBusinessStateRef="PresentInvoice_UBL1SBSInvoiceNotification_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/> </FromLink> </Success> <Failure name="Failure" nameID="PresentInvoice_UBL1SBSInvoiceNotification_Failure"> <FromLink fromBusinessStateRef="PresentInvoice_UBL1SBSInvoiceNotification_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </FromLink> </Failure> </BusinessCollaboration> </Package> <!-- new combined collaboration, the purpose of this custom, combination process definition --> <!-- NOTE: there has to be careful use of nameID values to avoid id clashes --> <!-- (the id values in the UBP definitions were chosen with such inclusions in mind) --> <Package name="Custom Receipt Advice Invoice" nameID="CustomReceiptAdviceInvoice"> <BusinessCollaboration name="Custom Receipt Advice Invoice" nameID="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_BC" pattern="Notification"> <Documentation/> <Role name="Delivery" nameID="Delivery_CustomProcessUBL1SBSReceiptAdviceInvoice"/> <Role name="Despatch" nameID="Despatch_CustomProcessUBL1SBSReceiptAdviceInvoice"/> <Role name="Invoice Initiator" nameID="InvoiceInitiator_CustomProcessUBL1SBSReceiptAdviceInvoice"/> <Role name="Invoice Receiver" nameID="InvoiceReceiver_CustomProcessUBL1SBSReceiptAdviceInvoice"/> <TimeToPerform/> <Start name="Start Forward Receipt Advice" nameID="NotifyReceiptAdvice_CustomProcessUBL1SBSReceiptAdviceInvoice_ST"> <ToLink toBusinessStateRef="NotifyReceiptAdvice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA"/> </Start> <BusinessTransactionActivity name="Notify Receipt Advice" nameID="NotifyReceiptAdvice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA" businessTransactionRef="NotifyReceiptAdvice_UBL1SBSReceiptAdviceNotification_N" hasLegalIntent="true" isConcurrent="false"> <TimeToPerform/> <Performs currentRoleRef="Delivery_CustomProcessUBL1SBSReceiptAdviceInvoice" performsRoleRef="Initiator_UBL1SBSReceiptAdviceNotification"/> <Performs currentRoleRef="Despatch_CustomProcessUBL1SBSReceiptAdviceInvoice" performsRoleRef="Responder_UBL1SBSReceiptAdviceNotification"/> </BusinessTransactionActivity> <Transition name="Forward Receipt To Present Invoice" nameID="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_ST"> <FromLink fromBusinessStateRef="NotifyReceiptAdvice_CustomProcessUBL1SBSReceiptAdviceInvoice_ST" /> <ToLink toBusinessStateRef="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA"/> </Transition> <BusinessTransactionActivity name="Present Invoice" nameID="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA" businessTransactionRef="PresentInvoice_UBL1SBSInvoiceNotification_N" hasLegalIntent="true" isConcurrent="false"> <TimeToPerform/> <Performs currentRoleRef="InvoiceInitiator_CustomProcessUBL1SBSReceiptAdviceInvoice" performsRoleRef="Initiator_UBL1SBSInvoiceNotification"/> <Performs currentRoleRef="InvoiceReceiver_CustomProcessUBL1SBSReceiptAdviceInvoice" performsRoleRef="Responder_UBL1SBSInvoiceNotification"/> </BusinessTransactionActivity> <Success name="Success" nameID="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_Success"> <FromLink fromBusinessStateRef="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Success"/> </FromLink> </Success> <Failure name="Failure" nameID="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_Failure"> <FromLink fromBusinessStateRef="CustomReceiptAdviceInvoice_CustomProcessUBL1SBSReceiptAdviceInvoice_BTA"> <ConditionExpression expressionLanguage="ConditionGuardValue" expression="Failure"/> </FromLink> </Failure> </BusinessCollaboration> </Package> </ProcessSpecification>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]