About Warehouse Objects
On this page
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).
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
Some of the objects do not support all load modes. Please refer to their specification pages to get more details.
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.
The stored procedure for batch mode supports only inserting data into the database. All data is inserted by batch commit, which means one transaction for all records specified in one incoming message. You can not UPDATE the data in batch mode. Use Single Row mode to do that.
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>
The Batch key pattern is different for all Warehouse objects. To choose the right one, please refer to their wiki pages.
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
Procedure Mode setting is supported for Warehouse Open Lot and Warehouse Position only.
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'.
Grouped Single Mode
Grouped single mode is the load mode when a group of records is sent and loaded to DB separately (unlike Batch mode, when several records are considered as a batch and are sent in one event and are loaded to DB in one event.
Before load all position details are deleted
After load RollUp is performed
In EagleML this structure looks like several <warehousePosition> clusters under a single <warehouseTransaction> message. Batch key has no sense, so the header should look like this:
<warehouseTransaction>
<header>
<objectType>WarehouseCloseLot</objectType>
</header>
<warehouseCloseLot>
Sub-Batch Load Mode
Supported for Warehouse Open Lot and Warehouse Position only
In Sub-Batch load mode the incoming file is split into several files, one file for each batch (the data for one batch cannot be split into different files!) and each batch is split into sub-batches to decrease its size:
Batch Keys for these sub-batches must be enhanced to express their relation, for example, with security alias numbers (this is important, batch key with 4 elements defines sub-batch mode):
Batch key:Â entity1^20150306^EAGLE PACE
Sub-Batch key:Â entity1^20150306^EAGLE PACE^212
<warehouseTransaction>
<header>
<batchKey>entity^20150306^EAGLE PACE^212</batchKey>
<objectType>WarehousePosition</objectType>
</header>
<warehousePosition>
Automatic RollUp in some cases may work not properly (the latter sub-batches overwrite the earlier sub-batches) - in this case automatic RollUp should be switched of before load attempt and performed manually by dropping a special file with all batch keys from the source file
Â
Â