CPAId Element Work-Around to Support Cleo Communications Applications

Background

The ebXML Message Service (ebMS) specification version 2 states: The value of a CPAId element MUST be unique within a namespace mutually agreed by the two parties.

The NEXUSe2e developers interpreted this to mean that the scope of any CPAId's uniqueness may be in the context of two trading partners, as long as the parties mutually agree. Developers of one or more other messaging systems require globally unique CPAId values, regardless of a mutually agreed more narrow namespace. For some connectivity scenarios, these two implementations are incompatible when CPAId values are the same across two or more trading partner pairs.

Work-Around

 

 

Work-Around Description, Submitted by Simplot

From Tammy Creswell, on 2013-03-07:

Excerpt from the ebMS 2 specification regarding CPA ID: “The value of a CPAId element MUST be unique within a namespace mutually agreed by the two parties.”.

CPAId is usually a concatenation of the two trading partner party IDs.  “CNInvoice” or “GenericFile” alone is more like a service or action value than a CPAId, and violates the ebMS 2 specification.  Adding party IDs to the CPAId like they are doing (e.g. uri://nexuse2e/Cleo/GenericFile) in essence makes it a unique ID between two parties.

Cleo’s decision not to change their software was because it would change the behavior, violates the specification, impacts interoperability and breaks the inbound processing.  This was primarily based upon the specification and any changes to the CPAId would impact their Drummond Certification.

AgGateway Specs:

Once this notification has been sent out to the AgGateway members, will the ebxml specifications need to be updated?  They clearly state below that the CPAId is not unique.

CPAId element : The CPAId element is a REQUIRED ebXML element.

AgGateway does not utilize the ebXML CPA specification to form an agreement between Trading Partners, so the convention to identify the from and to party in the CPAID element is not necessary. The AgGateway convention for naming the CPAId is to use the Document message name unless the business message is used to close a conversation, in which case it would use the name of the message to which the response is being made (See Table 1 below). An example is below:

<eb:MessageHeader eb:version="2.0" SOAP-ENV:mustUnderstand="1">
<eb:From>
<eb:PartyId eb:type="DUNS">878542765</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="DUNS+4">0503651210000</eb:PartyId>
</eb:To>
<eb:CPAId>OrderCreate</eb:CPAId>

Link to ebxml: http://s3.amazonaws.com/aggateway_public/AgGatewayWeb/eConnectivity/XML/2010-08-12_AgGateway-ebMS%202_0%20Specification_Ver3.02.pdf