There are two main types of EagleML messages and there is a high level of relationship between their message headers:
1. Control Messages (also known as CMs or RunTaskRequest (RTRs)):
- Message level header is very important for control messages.
- Transaction level header is omitted in control messages.
- For more information, see Format the Control Message Header.
2. Data Messages:
- Data messages should contain a Transaction level header.
- Some of its nodes may be involved in processing logic (this varies for different objects).
The headers for control messages and data messages have common elements that are encapsulated in most base type MessageHeader. However, they also have specific elements based on the purpose of the message to reflect integration patterns such as Message ID, Correlation ID, and Message Address.
Note
Transaction Level Header for Data Messages
This table describe the transaction level header for a data message.
Node | Description | Optional/Required |
---|---|---|
transactionDate | Transaction date | optional |
batchKey | Contains information on the so-called batch key used to group data (EntityID^EffectiveDate^sourcename) | usually optional but required when you load Warehouse objects in batch mode. |
subBatchKey | ||
action | Defines whether to add, delete or update data in database (ADD, DELETE, UPDATE) | optional |
correlationId | Unique message identifier processed and displayed by Message Center | optional |
businessTaskId | Business task identifier processed and displayed by Message Center | optional Allows the use of special symbols: ~ ! @ # $ % ^ _ + / \ } [ || ] { : ; - * (please note, that this is not recommended) |
sequenceNumber | Defines file number in the sequence | usually optional but required when you are using Sequencer |
isLastInSequence | Makes the Sequencer turn off after processing this file, if its value is TRUE. | usually optional but required when you are using Sequencer |
totalCount | Counter | usually optional but required when you are using Sequencer |
objectType | Router sends the message to a specific rule according to this node. Case-sensitive node. | required |
objectId | Object Identifier | optional |
objectDescription | Object description | optional |
updateTimestamp | optional | |
procedureSwitch | ||
deltaBased | ||
checkActivity | ||
processingOptions | ||
enableSourceMappingFlag | ||
codeTranslations | If codeTranslations node contains ‘primaryExchangeCode’ – <codeTranslations>primaryExchangeCode</codeTranslations> then Primary Exchange Code value (<primaryExchangeCode> node will be mapped to the Code Translation lookup pan-lcode-translation.htm as incoming value for tag 1176 (From Code Value). The output value – tag 1103 (To Code Value) will be mapped to GenericSMF stored procedure and Security Resolution logic (to tag 1981 and tag 17) if this value is not null. This logic supports the following inbound interfaces:
|
Examples of Transaction Level Headers
Reference Data Object Transaction Level Header
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage"> <referenceTransaction> <header> <objectType>Calendar</objectType> </header> <calendar> ...
Warehouse Data Object Transaction Level Header
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="WarehouseTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" xsi:type="WarehouseTransactionMessage"> <warehouseTransaction> <header> <batchKey>entity^20140126^EAGLE PACE</batchKey> <objectType>WarehouseOpenLot</objectType> </header> <warehouseOpenLot> ...