ID Sequence for Incoming BODs
An incoming BOD can
contain multiple IDs: a universal ID and IDs used by individual applications. Before a BOD is
offered to the business interface implementation in LN, the technology layer ensures that the
relevant ID for the receiving LN fortress is listed first. The business interface
implementation only has to check the first ID. This action is done for all sets of IDs
included in the BOD.
More specifically, if multiple elements having name 'ID' are listed sequentially (without other nodes in between), then the ID having an attribute schemeAgencyID equal to i.logical.id will be moved if necessary, it is the first one in the sequence.
(Aside: actually the noun part of a BOD is responsibility of the business interface implementation / application. This method is an exception to the rule, to reduce the development efforts needed to create a business interface implementation in the LN Studio.)
For example, if the logical ID for the receiving LN application instance is "infor.ln.2" and incoming BOD contains:
...
<PartyID>
<AnotherElement1>value</AnotherElement1>
<ID accountingEntity="ae" location="loc" variationID="2">X123</ID>
<ID schemeName="System" schemeAgencyID="infor.ln.1">Y456</ID>
<ID schemeName="System" schemeAgencyID="infor.ln.2">Z456</ID>
<ID schemeName="System" schemeAgencyID="infor.sl.1">Q789</ID>
<AnotherElement2>value</AnotherElement2>
</PartyID>
...
then the BOD will be changed to:
...
<PartyID>
<AnotherElement1>value</AnotherElement1>
<ID schemeName="System" schemeAgencyID="infor.ln.2">Z456</ID>
<ID accountingEntity="ae" location="loc" variationID="2">X123</ID>
<ID schemeName="System" schemeAgencyID="infor.ln.1">Y456</ID>
<ID schemeName="System" schemeAgencyID="infor.sl.1">Q789</ID>
<AnotherElement2>value</AnotherElement2>
</PartyID>
...
If the BOD does not contain an ID having schemeAgencyID equal to the
logical ID then the BOD will be unchanged. For example, if the logical ID is "infor.ln.2"
and incoming BOD contains:
...
<PartyID>
<ID schemeName="System" schemeAgencyID="infor.sl.1">Q789</ID>
<ID schemeName="System" schemeAgencyID="infor.ln.1">Z456</ID>
<ID accountingEntity="ae" location="loc" variationID="2">X123</ID>
</PartyID>
...
then the BOD will not be changed.