In this page:
Warehouse Objects Structure
The diagram below illustrates Warehouse Objects structure and relations between them.
The following Warehouse objects are available:
Object Type | Inbound Rule | Outbound Rule | Bind File Name | SP Name (ORA DB) | Batch Mode Support | Batch Key Pattern | Batch Key Example |
---|---|---|---|---|---|---|---|
Warehouse Open Lot | xml-warehouse_v2.xml | extract_warehouse_openlot.xml | bind-std_interfaces_dbdir.xml | HOLDINGDBO.EGL_GEN_HOLDING.LOT_EGL_GEN_INTERFACE | Y | entityId^effectiveDate^sourceName | my_entity^20140120^EAGLE PACE |
Warehouse Position | xml-warehouse_v2.xml | extract_warehouse_position.xml | bind-std_interfaces_dbdir.xml | HOLDINGDBO.EGL_GEN_HOLDING.POS_EGL_GEN_INTERFACE | Y | entityId^effectiveDate^sourceName | my_entity^20140120^EAGLE PACE |
Warehouse Trade | xml-warehouse_v2.xml | extract_warehouse_trade.xml | bind-std_interfaces_dbdir.xml | TRADESDBO.EGL_GEN_TRADE.TRD_EGL_GEN_INTERFACE | Y | entityId^effectiveDate^sourceName | my_entity^20140120^EAGLE PACE |
Warehouse Close Lot | xml-warehouse_v2.xml | extract_warehouse_closelot.xml | bind-std_interfaces_dbdir.xml | TRADESDBO.EGL_GEN_TRADE.CLL_EGL_GEN_INTERFACE | Y | entityId^effectiveDate^sourceName | my_entity^20140120^EAGLE PACE |
Warehouse Cash Activity | xml-warehouse_v2.xml | extract_warehouse_cash_activity.xml | bind-std_interfaces_dbdir.xml | CASHDBO.EGL_GEN_CASH.CSA_EGL_GEN_INTERFACE | Y | entityId^effectiveDate^sourceName |
|
Warehouse Performance | xml-warehouse_v2.xml | extract_warehouse_performance.xml | bind-std_interfaces_dbdir.xml | PERFORMDBO.EGL_GEN_PERFORM.PRO_EGL_GEN_INTERFACE | Y | entityId^^endEffectiveDate^sourceName^frequencyCode^dictionaryName^perfSummaryType | ENTVALUE^^20130713^EAGLE PACE^D^DICTIONARY1^S |
Warehouse Broker Trade Quote | xml-wh_brokertradequote_v2.xml | extract_warehouse_brokertradequote.xml | bind_trade_quote.xml | TRADESDBO.TRADE_QUOTE_UPLOAD.TRADE_QUOTE_INSUPD | Y | masterTicketNumber | 1200303M |
Warehouse Pending Trade | xml-warehouse_v2.xml | extract_warehouse_pending_trades.xml | bind-wrhs_pending_trade.xml | TRADESDBO.PENDING_TRADE.INS_PENDING_TRADE |
|
|
|
Warehouse Cash Flow Projection | xml-warehouse_v2.xml | extract_warehouse_cash_flow_proj.xml | bind_wrhs_cashflowproj.xml | CASHDBO.EGL_GEN_CASH_PROJ.INS_UPD_CASH_FLOW_PROJ |
|
|
|
Warehouse GL Balances | xml-warehouse_v2.xml | extract_warehouse_gl_detail_posting.xml | bind_wrhs_gl_balanes.xml | LEDGERDBO.SPD_LEDGER.LED_EGL_GEN_INTERFACE |
|
|
|
Warehouse NAV | xml-warehouse_v2.xml | extract_warehouse_nav_multi.xml | bind_wrhs_nav.xml | HOLDINGDBO.EGL_GEN_HOLDING.MFP_NAV_PERF_EGL_GEN |
|
|
|
Warehouse NAV Multi | xml-warehouse_v2.xml | extract_warehouse_nav.xml | bind_wrhs_nav_multi.xml | ESTAR.ESTAR_PKG_NAV.INS_UPD_NAV_MULTI |
|
|
|
Custody Restriction Activity | - (extract only) | extract_warehouse_custody_activity.xml |
|
|
|
|
|
Custody Restriction Balance | - (extract only) | extract_warehouse_custody_balance.xml |
|
|
|
|
|
Common Elements
Element | Optional/Required | Value type |
---|---|---|
sourceName | Required | string |
updateSource | Optional | string |
effectiveDate | Required | date |
entityId | Required | string |
Asset Identifiers | Required | Asset Identifiers Model Group |
Stream Logic
EagleML Processing Sequence
All the Warehouse are loaded into DB via eagle_ml-2-0_default_in_xml_warehouse_preproc in two steps:
- XSLT transformation. XSLT rule 'eagle_default/in/xml/xslt/wrh_egl_gen_interface3.xsl' is used.
- Loading data into the database. The 'eagle_default/in/xml/xml-warehouse_v2.xml' rule is used (xml-wh_brokertradequote_v2.xml for Broker Trade Quotes).
Note
To load or update data in Warehouse database tables send an EagleML message into the eagle_ml-2-0_default_in_xml_warehouse_preproc stream.
eagle_ml-2-0_default_in_xml_warehouse is retired since the September 2015 EagleML release, but it is still used in the Generic Load workflow (because Warehouse Position and Open Lot objects are extracted in XMLDBAPI format).
Any overlay includes you were using with eagle_ml-2-0_default_in_xml_warehouse will be "taken" by eagle_ml-2-0_default_in_xml_warehouse_preproc , thus providing backward compatibility.
Load Modes
Note
Batch Mode
In batch mode multiple rows can be loaded into DB by one EagleML message. In this mode the warehouseTransaction element usually contains several complex elements, specific for each object type, for example, warehouseCloseLot.
The data from each element will be loaded into a separate database row.
Important Note
Batch Key
The complex objects in the batch are "tied" together by the batch key element.
Example of use:
<warehouseTransaction> <header> <batchKey>entity^20150306^EAGLE PACE</batchKey> <objectType>WarehouseCloseLot</objectType> </header> <warehouseCloseLot>
Note
When you load a Warehouse in batch mode, first of all the stream takes the warehouseTransaction/batchKey element from your incoming EagleML message, resolves a specific DB key from the batch key and deletes all records with the same DB key from DB (if they exist). Only then inserting new records is performed.
Using Batch Error Mode
If some errors occur when you load a Warehouse object in Batch mode, there are two modes to display them:
- Default mode: only the first error is reported in the Task Status Response (TSR).
- Batch Error mode: all errors are reported in the TSR. To enable this mode add the following line to {}w_config_custom.inc:
<CODE> :EAGLEML_WAREHOUSE_BATCH_ERROR_MODE::='Y'; </CODE>
See a comparison of error reports for Default mode vs Batch Error mode
Single Row UPSERT Mode
The UPSERT mode is used if the Batch Key element (warehouseTransaction/batchKey element) is not present or null in the incoming EagleML message. The message should contain a logical unique Object key for each Warehouse object instead.
For single row mode the warehouseTransaction node can contain only one specific complex element (e.g. warehouseCloseLot).
Procedure Mode
Note
The mode - INSERT or UPDATE - can be defined automatically or by the Procedure Mode element .
Leave the Procedure Mode element (warehouseTransaction/.../procedureMode) empty and in this case the SP will decide itself whether to update the data in DB tables (if the row already exists) or to insert it (if it does not).
Valid values: 'INSERT', 'UPDATE'.