About Warehouse Objects

Warehouse Objects Structure

The diagram below illustrates the Warehouse Objects structure and the relationships 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

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
bind_wrhs_performance.xml

PERFORMDBO.EGL_GEN_PERFORM.PRO_EGL_GEN_INTERFACE
PERFORMDBO.EGL_GEN_PERFORM.PRF_EGL_GEN_INTERFACE

Y

entityId^^endEffectiveDate^sourceName^frequencyCode^dictionaryName^perfSummaryType
entityXrefId^EntityXrefIdType^endEffectiveDate^sourceName^frequencyCode^dictionaryName^perfSummaryType

ENTVALUE^^20130713^EAGLE PACE^D^DICTIONARY1^S
E001^CLIENT^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
TRADESDBO.PENDING_TRADE.UPD_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

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.

CSV Processing Sequence

Warehouse objects (supported objects are listed in the table below) are loaded into DB via the following streams:

  • eagle_default_in_csv_warehouse - This is PRF stream which consist of two steps transform and load.

  • eagle_ml-2-0_default_in_xml_warehouse_preproc or eagle_ml-2-0_default_in_xml_warehouse (Depending on the Output format of Transformation step)

    • If EagleML then eagle_ml-2-0_default_in_xml_warehouse_preproc

    • If XMLDBAPI then eagle_ml-2-0_default_in_xml_warehouse

  • eagle_default_in_csv_warehouse_t - CSV to EagleML (or CSV to XMLDBAPI) transformation. On this step one of the corresponding rules is used

Object Type

Inbound Rule

Output Format

Object Type

Inbound Rule

Output Format

Warehouse Cash Activity

csv-wrhs_cash_activity_xmldbapi.xml

XMLDBAPI request

Warehouse Close Lot

close_lot.xml

EagleML

Warehouse Open Lot

csv-wrhs_open_lot_xmldbapi.xml

XMLDBAPI request

Warehouse Performance

performance.xml

EagleML

Warehouse Position

csv-wrhs_position_xmldbapi.xml

XMLDBAPI request

Warehouse Trade

trade.xml

EagleML

To load or update data in Warehouse tables, send your CSV message to the eagle_default_in_csv_warehouse stream.

Pipe-delimited Processing Sequence

Warehouse Performance as PIPE is loaded to database with the following streams:

  • eagle_default_in_pipe_warehouseCLP - This is PRF stream which consist of two steps transform and load.

  • ​eagle_default_in_pipe_warehouseCLP_t - transformation PIPE to XMLDBAPI

  • eagle_ml-2-0_default_in_xml_warehouse – loading data into the database. In this step the rule eagle_default/in/xml/xml-dbdirect_invar.xml ​is used.

To load or update data in Warehouse Performance tables, send your pipe-edelimited message to the eagle_default_in_pipe_warehouseCLP stream.

Warehouse Position as PIPE is loaded to database with the following streams:

  • eagle_default_in_pipe_pos - This is PRF stream which consist of two steps transform and load.

  • ​eagle_default_in_pipe_pos{_}t - transformation PIPE to XMLDBAPI

  • eagle_ml-2-0_default_in_xml_warehouse – loading data into the database. In this step the rule eagle_default/in/xml/xml-dbdirect_invar.xml ​is used.

To load or update data in Warehouse Position tables, send your pipe-delimited message to the eagle_default_in_pipe_warehouse stream.

Please keep in mind that pipe-delimited messages are loaded without header elements.

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

 

Â