<?xml version="1.0" encoding="UTF-8"?>
<ProcessSpecification xmlns="http://www.ebxml.org/BusinessProcess" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ebxml.org/BusinessProcess ebBPSS1.04.xsd" name="CPPA-Negotiation" uuid="bpid:ebXML:CPPA-Negotiation" version="R02.00">
	<Documentation>This business process describes CPPA negotiation process</Documentation>
	<!--CPA Offer Document-->
	<BusinessDocument name="CPA Offer Doc" nameID="CPA_Offer_Doc"/>
	<!--CPA Counter Offer Document-->
	<BusinessDocument name="CPA Accept Offer Doc" nameID="CPA_Accept_Offer_Doc"/>
	<!--CPA Counter Pending Offer Document-->
	<BusinessDocument name="CPA Counter Pending Offer Doc" nameID="CPA_Counter_Pending_Offer_Doc"/>
	<!--CPA Counter Offer Document-->
	<BusinessDocument name="CPA Counter Offer Doc" nameID="CPA_Counter_Offer_Doc"/>
	<!--CPA Reject Offer Document-->
	<BusinessDocument name="CPA Reject Offer Doc" nameID="CPA_Reject_Offer_Doc"/>
	<!--Changed 09/16 CPA Document. This will probably come from the CPA specification-->
	<BusinessDocument name="CPA Final Doc" nameID="CPA_Final_Doc"/>
	<!--Changed 09/16 . Response to final CPA Document. This will probably come from the CPA specification-->
	<BusinessDocument name="CPA Final Response DOC" nameID="CPA_Final_Response_Doc"/>
	<!-- Changed 09/16. Business Transaction for sending the CPA. This CPA is sent by the party finally accepting the offer-->
	<BusinessTransaction name="CPA Final BT" nameID="CPA_Final_BT">
		<RequestingBusinessActivity name="Final_CPA_BT_ReqBA" nameID="Final_CPA_BT_ReqBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Final Doc" businessDocumentIDRef="CPA_Final_Doc" isAuthenticated="none" isConfidential="none" isTamperProof="none"/>
		</RequestingBusinessActivity>
		<RespondingBusinessActivity name="Final_CPA_BT_RespBA" nameID="Final_CPA_BT_RespBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Final Response Doc" businessDocumentIDRef="CPA_Final_Response_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="true" isTamperProof="none"/>
		</RespondingBusinessActivity>
	</BusinessTransaction>
	<!-- Business Transaction for the original negotiation cppa -->
	<BusinessTransaction name="CPA Offer BT" nameID="CPA_Offer_BT">
		<RequestingBusinessActivity name="CPA_Offer_BT_ReqBA" nameID="CPA_Offer_BT_ReqBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Offer" businessDocumentIDRef="CPA_Offer_Doc" isAuthenticated="none" isConfidential="none" isTamperProof="none"/>
		</RequestingBusinessActivity>
		<RespondingBusinessActivity name="CPA_Offer_BT_RespBA" nameID="CPA_Offer_BT_RespBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Accept Offer Doc" businessDocumentIDRef="CPA_Accept_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="true" isTamperProof="none"/>
			<DocumentEnvelope businessDocument="CPA Reject Offer Doc" businessDocumentIDRef="CPA_Reject_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="false" isTamperProof="none"/>
			<DocumentEnvelope businessDocument="CPA Counter Pending Offer Doc" businessDocumentIDRef="CPA_Counter_Pending_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="true" isTamperProof="none"/>
		</RespondingBusinessActivity>
	</BusinessTransaction>
	<!-- Business Transaction for sending the counter offer -->
	<BusinessTransaction name="CPA Counter Offer BT" nameID="CPA_Counter_Offer_BT">
		<RequestingBusinessActivity name="CPA_Counter_Offer_BT_ReqBA" nameID="CPA_Counter_Offer_BT_ReqBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationReceiptRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Counter Offer" businessDocumentIDRef="CPA_Counter_Offer_Doc" isAuthenticated="none" isConfidential="none" isTamperProof="none"/>
		</RequestingBusinessActivity>
		<RespondingBusinessActivity name="CPA_Counter_Offer_BT_RespBA" nameID="CPA_Counter_Offer_BT_RespBA" isAuthorizationRequired="false" isIntelligibleCheckRequired="false" isNonRepudiationRequired="false">
			<DocumentEnvelope businessDocument="CPA Accept Offer Doc" businessDocumentIDRef="CPA_Accept_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="true" isTamperProof="none"/>
			<DocumentEnvelope businessDocument="CPA Reject Offer Doc" businessDocumentIDRef="CPA_Reject_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="false" isTamperProof="none"/>
			<DocumentEnvelope businessDocument="CPA Counter Pending Offer Doc" businessDocumentIDRef="CPA_Counter_Pending_Offer_Doc" isAuthenticated="none" isConfidential="none" isPositiveResponse="true" isTamperProof="none"/>
		</RespondingBusinessActivity>
	</BusinessTransaction>
	<!-- Main collaboration for negotiation business process -->
	<BinaryCollaboration name="CPA Negotiation BC" nameID="CPA_Negotiation_BC" initiatingRole="CPA_Negotiation_Initiator_Role">
		<!-- Role for initiator for negotiation process -->
		<Role name="CPA Negotiation Initiator" nameID="CPA_Negotiation_Initiator_Role"/>
		<!-- Role for initial responder of business collaboration -->
		<Role name="CPA Negotiation Responder" nameID="CPA_Negotiation_Responder_Role"/>
		<Start toBusinessState="CPA_Offer_BTA"/>
		<BusinessTransactionActivity name="CPA Offer BTA" nameID="CPA_Offer_BTA" businessTransaction="CPA Offer BT" businessTransactionIDRef="CPA_Offer_BT" fromRole="CPA Negotiation Initiator" fromRoleIDRef="CPA_Negotiation_Initiator_Role" toRole="CPA Negotiation Responder" toRoleIDRef="CPA_Negotiation_Responder_Role" isLegallyBinding="false" isConcurrent="false"/>
		<CollaborationActivity name="CPA Counter Offer CA" binaryCollaboration="CPA Negotiation Counter Offer BC" binaryCollaborationIDRef="CPA_Negotiation_CounterOfferBC" fromRole="CPA Negotiation Counter Offer Initiator" fromRoleIDRef="CPA_Negotiation_CounterOfferInitiator_Role" toRole="CPA Negotiation Counter Offer Responder" toRoleIDRef="CPA_Negotiation_CounterOfferResponder_Role" preCondition="Initiating Role for this activity corresponds to Responding Role in CPA Offer BTA"/>
		<BusinessTransactionActivity name="CPA Final BTA" nameID="CPA_Final_BTA" businessTransaction="CPA Final BT" businessTransactionIDRef="CPA_Final_BT" fromRole="CPA Negotiation Responder" fromRoleIDRef="CPA_Negotiation_Responder_Role" toRole="CPA Negotiation Initiator" toRoleIDRef="CPA_Negotiation_Initiator_Role" isLegallyBinding="false" isConcurrent="false"/>
		<!-- If final CPA BTA goes through fine, then overall collaboration is marked success -->
		<Success fromBusinessState="CPA Final BTA" conditionGuard="Success"/>
		<!-- If inner collaboration goes through fine, then overall collaboration is marked success. Inner collaboration
			Would have gone through the transaction that ends up with either the final CPA (Signed if needed) -->
		<Success fromBusinessState="CPA Counter Offer CA" conditionGuard="Success"/>
		<!-- If Reject offer document is sent for offer bta collaboration is marked as failure-->
		<Failure fromBusinessState="CPA Offer BTA" conditionGuard="BusinessFailure">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Reject Offer Doc"/>
		</Failure>
		<!-- If Final CPA BTA fails for some reason, then collaboration is marked as failure -->
		<Failure fromBusinessState="CPA Final BTA" conditionGuard="Failure"/>
		<Failure fromBusinessState="CPA Counter Offer CA" conditionGuard="Failure"/>
		<!-- Transition to Final CPA offer  binary Transaction if the responder for main transaction accepts the initial offer -->
		<Transition fromBusinessState="CPA Offer BTA" toBusinessState="CPA Final BTA">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Accept Offer Doc"/>
		</Transition>
		<!-- Transition to counter offer  binary collaboration if the responder for main transaction returns a counter offer pending message -->
		<Transition fromBusinessState="CPA Offer BTA" toBusinessState="CPA Counter Offer CA">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Counter Pending Offer Doc"/>
		</Transition>
	</BinaryCollaboration>
	<BinaryCollaboration name="CPA Negotiation Counter Offer BC" nameID="CPA_Negotiation_CounterOfferBC" initiatingRole="CPA_Negotiation_CounterOfferInitiator_Role">
		<Role name="CPA Negotiation Counter Offer Initiator" nameID="CPA_Negotiation_CounterOfferInitiator_Role"/>
		<Role name="CPA Negotiation Counter Offer Responder" nameID="CPA_Negotiation_CounterOfferResponder_Role"/>
		<!-- This collaboration starts with the negotiation process responder sending the counter offer -->
		<Start toBusinessState="CPA Counter Offer 1 BTA"/>
		<!-- This transaction activity is for negotiation process responder sending the counter offer -->
		<BusinessTransactionActivity name="CPA Counter Offer 1 BTA" nameID="CPA_Counter_Offer_1_BTA" businessTransaction="CPA Counter Offer BT" businessTransactionIDRef="CPA_Counter_Offer_BT" fromRole="CPA Negotiation Counter Offer Initiator" fromRoleIDRef="CPA_Negotiation_CounterOfferInitiator_Role" toRole="CPA Negotiation Counter Offer Non Initiator" toRoleIDRef="CPA_Negotiation_CounterOfferResponder_Role" isLegallyBinding="false" isConcurrent="false" postCondition="Parties reverse roles they play"/>
		<!-- This transaction acitvity is for negotiation process initiator sending the counter offer -->
		<BusinessTransactionActivity name="CPA Counter Offer 2 BTA" nameID="CPA_Counter_Offer_2_BTA" businessTransaction="CPA Counter Offer BT" businessTransactionIDRef="CPA_Counter_Offer_BT" fromRole="CPA Negotiation Counter Offer Responder" fromRoleIDRef="CPA_Negotiation_CounterOfferResponder_Role" toRole="CPA Negotiation Counter Offer Initiator" toRoleIDRef="CPA_Negotiation_CounterOfferInitiator_Role" isLegallyBinding="false" isConcurrent="false" postCondition="Parties reverse roles they play"/>
		<BusinessTransactionActivity name="CPA Final BTA Init Initiator" nameID="CPA_Final_BTA_init_Initiator" businessTransaction="CPA Final BT" businessTransactionIDRef="CPA_Final_BT" fromRole="CPA Negotiation Counter Offer Initiator" fromRoleIDRef="CPA_Negotiation_CounterOfferInitiator_Role" toRole="CPA Negotiation Counter Offer Responder" toRoleIDRef="CPA_Negotiation_CounterOfferResponder_Role" isLegallyBinding="false" isConcurrent="false"/>
		<BusinessTransactionActivity name="CPA Final BTA Init Responder" nameID="CPA_Final_BTA_init_Responder" businessTransaction="CPA Final BT" businessTransactionIDRef="CPA_Final_BT" fromRole="CPA Negotiation Counter Offer Responder" fromRoleIDRef="CPA_Negotiation_CounterOfferResponder_Role" toRole="CPA Negotiation Counter Offer Initiator" toRoleIDRef="CPA_Negotiation_CounterOfferInitiator_Role" isLegallyBinding="false" isConcurrent="false"/>
		<!-- Inner collaboration succeeds if the final BTA which involves sending final CPA succeeds -->
		<Success fromBusinessState="CPA Final BTA Init Initiator" conditionGuard="Success"/>
		<!-- Inner collaboration succeeds if the final BTA which involves sending final CPA succeeds. This is
		  	the same as above but the difference is this initiated by a different party -->
		<Success fromBusinessState="CPA Final BTA Init Responder" conditionGuard="Success"/>
		<!-- Inner collaboration fails if the final BTA which involves sending final CPA fails -->
		<Failure fromBusinessState="CPA Final BTA Init Initiator" conditionGuard="Failure"/>
		<!-- Inner collaboration fails if the final BTA which involves sending final CPA fails. This is
		  	the same as above but the difference is this initiated by a different party -->
		<Failure fromBusinessState="CPA Final BTA Init Responder" conditionGuard="Failure"/>
		<Failure fromBusinessState="CPA Counter Offer 1 BTA" conditionGuard="BusinessFailure">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Reject Offer Doc"/>
		</Failure>
		<Failure fromBusinessState="CPA Counter Offer 2 BTA" conditionGuard="BusinessFailure">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Reject Offer Doc"/>
		</Failure>
		
<!-- If the negotiation process responder (initiator in this innercollaboration) sends  an acceptace offer, negotiation process responder sends the final CPA -->
		<Transition fromBusinessState="CPA Counter Offer 2 BTA" toBusinessState="CPA Final BTA Init Initiator">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Accept Offer Doc"/>
		</Transition>
		
		 <!-- If the negotiation process initiator (responder in this inner collaboration) sends an acceptace offer, negotiation process initiator sends the final CPA -->
		<Transition fromBusinessState="CPA Counter Offer 1 BTA" toBusinessState="CPA Final BTA Init Responder">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Accept Offer Doc"/>
		</Transition>
		
		<!-- If the negotiation process responder sends counter offer and negotiation process initiator sends a counter offer, negotiation process initiator sends the counter offer next time -->
		<Transition fromBusinessState="CPA Counter Offer 1 BTA" toBusinessState="CPA Counter Offer 2 BTA">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Counter Pending Offer Doc"/>
		</Transition>
		<!-- If the negotiation process initiator sends a counter offer and negotiation process responds sends a counter offer, negotiation process responder sends the counter offer next time, hence the transition back to original BTA-->
		<Transition fromBusinessState="CPA Counter Offer 2 BTA" toBusinessState="CPA Counter Offer 1 BTA">
			<ConditionExpression expressionLanguage="DocumentEnvelopeLanguage" expression="CPA Counter Pending  Offer Doc"/>
		</Transition>
	</BinaryCollaboration>
</ProcessSpecification>

