About BOD Elements and Attributes
This topic includes miscellaneous information that you might find helpful when creating BOD (Business Object Document) replication documents.
The BOD Header
The BOD_Name/ApplicationArea/BODID element contains the NID in this format:
NIDID(DerBODID)?BODNOUN()&verb=BODVERB()
In most cases, you do not need to edit this element. However, if you want the NID's location value populated, change the NIDID macro to LNIDID.
See Value Expression, Replication Document Elements.
When you create the associated IDO or custom load method used to populate the BOD, you must include a property named DerBODID that contains the key value for the BOD. For example, for the PurchaseOrder BOD, you must define a DerBODID property that contains the purchase order number.
The BOD Body
When adding elements to the body of a BOD, you must:
- Specify a BOD Tag Name that becomes the actual element tag.
- Specify the Value Type of the element,
whether it is:
- A Literal value, to be specified in the Value Expression field
- A Property Tag value that is mapped to a data element in an IDO collection, using the Property Name field
- A Dynamic Subcollection
, that uses an IDO collection as specified in
the
Dynamic Subcollection IDO
Name
field.
See Adding a Collection of Elements from a SQL Table or IDO to a BOD.
- Specify any additional information required by the Value Type that the element is to be.
If any element includes an attribute - that is, the BOD tag looks like this:
<element attribute=xxx>
then click Replication Document Elements form, filtered for the current element. (Notice that the element's sequence number is displayed for reference.)
to display theOn the Attributes tab, specify this information for the attribute:
- For the Attribute Name, enter the actual attribute included in the XML. The attribute name is case-sensitive.
- Specify whether the value of the attribute is a literal value or a property (that is, mapped to a data element in an IDO collection).
- If the value is a literal, specify the Value Expression. If the value is a property, speciy the Property Name. The property name is a property on the IDO listed on the parent BOD form, or a property on a subcollection IDO linked to that IDO.
Tips for Constructing the Body
- An XML document inbound to
this application from an application that does not use the Infor BOD format
must include the following XML element:
<DocumentData TargetSite="target_site" SourceSite="source_site" Verb="verb" Noun="noun">
- When building BODs for
applications that use the
Infor
BOD format, be aware of this information:
- For the main ID
element in the Noun section of the BOD (this is often, but not always, called
DocumentID):
- Specify the BOD Tag Name.
- Set Value Type to Literal.
- Set Property Name to DerBODID.
- For reference elements, the ID should be populated with the key value (DerBODID) used by the BOD being referenced.
- If the BOD is used to publish deleted data, only two elements in the Noun section of the body need to be mapped: the main ID element and the status element.
-
All values published in an ID element or reference ID element must have leading spaces trimmed. If an ID element is populated with concatenated columns of data, each column of data must have leading spaces trimmed.
This example shows concenation and trim logic:
ltrim(VendVch.vend_num) + '~' + ltrim(cast(VendVch.voucher as nvarchar(7)))
If vend_num = 200 and voucher = 5000 then the value published would look like this:
200~5000
- For the main ID
element in the Noun section of the BOD (this is often, but not always, called
DocumentID):
- If a parent tag contains
no data and has no attributes, you do not need to define an element record for
it in the metadata. If a child tag element is defined in the Elements form, the
system automatically generates the parent tag in the XML. For example, if you
define metadata for this element:
ProcessCustomerPartyMaster/DataArea/CustomerPartyMaster/Location/Name
but you have not defined metadata for the parent
ProcessCustomerPartyMaster/DataArea/CustomerPartyMaster/Location
the system includes any missing parent tags in the XML, like this:
<DataArea> <CustomerPartyMaster> <Location> <Name>MyCo</Name> </Location> </CustomerPartyMaster> </DataArea>
-
When an element is populated with multiple columns of data concatenated together, the approved concatenation character is ~ (tilde). For example, if concatenating cust_num and cust_seq together to be published together as one value in an element, specify it as shown here: cust_num~cust_seq
If cust_num = C000001 and cust_seq = 5 then the value published looks like this: C000001~5
- Use the Documentation tabs and fields on the various forms to enter implementation information for the BOD and its elements and attributes. This information can be used to create data mapping or implementation reports.
- You can create a custom
load method whose source is a view that contains all the information you need in
the BOD. The CLM returns the result set of the view. This may produce speed
improvements over using an IDO.
Note: If this application is used only to facilitate integration between two other applications, then the CLM in this application runs a corresponding CLM (via a remote method call) in the actual application.
Generating Replication Document Scripts
To generate a replication document script, use the Repl Doc Script Generator form and then, optionally, check the script into a source code control system. This allows you to include your custom replication document information in system upgrades.