EagleML Processing Options Explained

EagleML supports RTR level options that may be applied during execution time or set as a Global parameter in the w_custom_config.inc. These “processingOptions” provide the user with opt-in controls to manage and configure processes. Each option is often Load specific (e.g. GenericSMF).


Examples of usage

  • Example of the processingOptions usage

<header>    <objectType>PriceClassification</objectType>    <processingOptions>PRICECLASSIFICATION_TRUE_REBOOK</processingOptions> </header>
  • Example of the Global Parameter usage within the w_config_custom

<COL TAG="W_PRICECLASSIFICATION_TRUE_REBOOK" EXPRESSION= "'Y'"/>

or

<CODE> :W_PRICECLASSIFICATION_TRUE_REBOOK: := 'Y'; </CODE>


GenericSMF Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

SEC_SHELL_RECORD_ONLY

W_SEC_SHELL_RECORD_ONLY

GenericSMF

By default, during initial load the tag 1257 (HISTORY ONLY) is not sent to the Stored Procedure even when it is populated in incoming file. As a result, the data is loaded into the master table fully.

The option allows load initial security in History mode, as a result only specific list of tags will be inserted into master table.

BATCH_BY_SCHEDULE_TYPE

-

GenericSMF (SMF MI)

By default, Schedule records are deleted by the key SRC_INTFC_INST + SECURITY_ALIAS via scripts DELETE_SCH_BATCH and DELETE_CPA_BATCH.

This option includes the scheduleType element into the key for the delete process from two tables: SECURITYDBO.SCHEDULE and TRADESDBO.CORP_ACT_HIST. It also maintains previously loaded records with different scheduleType types in the database.

The additional Key supported for delete is SRC_INTFC_INST + SECURITY_ALIAS + scheduleType

ISSUER_ROLE_GROUPING

-

GenericSMF (SMF MI)

Enables batch mode (also enables ISSUE_ROLE_UPSERT_MODE, USE_LATEST_START_DATE by default) .

ISSUE_ROLE_UPSERT_MODE

-

GenericSMF (SMF MI)

Prevents delete of existing records that preserves history about previous ownership

USE_LATEST_START_DATE

-

GenericSMF (SMF MI)

Finds the latest start date in the incoming message and uses it for each incoming record as the start date.

DIRECT_ISSUER_ROLE_OPTIONS

-

GenericSMF (SMF MI)

Counter-flag for ISSUER_ROLE_GROUPING, allows to set options directly.

ISSUER_ROLE_PROCESSING_TYPE

-

GenericSMF (SMF MI)

Set as ISSUER_ROLE_PROCESSING_TYPE_I()__PROCESSING_TYPE where in I() you should set Issuer Role types which you want to be loaded in certain mode.

APPLY_DIRECT_MAPPING

-

GenericSMF

This option allows to not replace empty value in one model by not empty value from another model. Only for SP mode. (accountingValidationFlag = 'N')

For now, this option works with:

  • FixedIncomeModel/delayDays and MBSModel/delayDays

DISABLE_HOLDINGS_EDITCHECK

W_SEC_DISABLE_HOLDINGS_EDITCHECK

GenericSMF

If the PACE Holding exists for the Security record, then the fields: Asset Currency/tag85, Quantity Type/tag12, Price Multiplier/tag18 and Quantity Scale/tag19 may not be updated for this Security and the Error is shown.

This option allows to turn off Error and show Warning instead in case of existing PACE Holdings

-

W_SKIP_DELISTED_SECURITY

 

 

GLOBAL_SWITCH

GLOBAL_SWITCH

GenericSMF, MultilegSMF

If incoming message includes xreferences with numbers greater than 10, EagleML can remap them into xIds with lower number consecutive with regular ones. This changes avaliable for genericSMF and multilegSMF both on MC and MC2 engines.

 

 

 

 


UnderlyingSMF Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

UNIQUE_RECORD_PER_UNDERLYING_TYPE

W_UNDERLYINGSMF_UNIQUE_RECORD_PER_TYPE_SWITCH

UnderlyingSMF

The option with the following logic while loading Underlying SMF:
There will be only one record, meaning that only one underlying SMF will be open for a combination of Main SMF + Underlying Type.
If there is an open record for the same combination of Main SMF and Underlying Type as that of the incoming record, the open record will now be closed with the end date = incoming begin date -1.
This option may be turned on via the global flag W_UNDERLYINGSMF_UNIQUE_RECORD_PER_TYPE_SWITCH set to Y or within the incoming file

This option may be used independently or in combination with the W_UNDERLYINGSMF_DELETE_REINSERT_SWITCH.
If both the W_UNDERLYINGSMF_DELETE_REINSERT_SWITCH and W_UNDERLYINGSMF_UNIQUE_RECORD_PER_TYPE_SWITCH are set to Y, the expected behavior is as follows:

  1. The existing records with the same security alias (main security) + underlying alias (underlying security) as that of the incoming record are deleted before load.

  2. All open records with the same Main security and Underlying Type will be closed with the end date = incoming begin date -1.

  3. An error is thrown when the incoming begin date is less than the existing begin date in the database.

  4. A new record is stored in the database.

UNDERLYING_UPSERT_MODE

-

UnderlyingSMF

Batch Underlying Load process deletes all existing Underlying records with the following key: security + underlying type and after that loads incoming records.

Processing option UNDERLYING_UPSERT_MODE allows to avoid delete step for Batch Underlying Load process.


GenericEntity Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

USE_GUID_AUTO_GEN_ENTITY_ID

W_USE_GUID_AUTO_GEN_ENTITY_ID

GenericEntity

Enables a “GUID” method to generate a unique dummy entity id. It will generate and return a combination of eight alphanumeric characters. An additional check will be executed that checks the uniqueness of this combination in the DB using the entity lookup. If it is not unique, then a new combination will be generated.


IssuerRole Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

ISSUER_ROLE_GROUPING

-

IssuerRole

Enables batch mode (also enables ISSUE_ROLE_UPSERT_MODE, USE_LATEST_START_DATE by default) .

ISSUE_ROLE_UPSERT_MODE

-

IssuerRole

Prevents delete of existing records that preserves history about previous ownership

USE_LATEST_START_DATE

-

IssuerRole

Finds the latest start date in the incoming message and uses it for each incoming record as the start date.

DIRECT_ISSUER_ROLE_OPTIONS

-

IssuerRole

Counter-flag for ISSUER_ROLE_GROUPING, allows to set options directly.

ISSUER_ROLE_PROCESSING_TYPE

-

IssuerRole

Set as ISSUER_ROLE_PROCESSING_TYPE_I()__PROCESSING_TYPE where in I() you should set Issuer Role types which you want to be loaded in certain mode.

DISABLE_ENDDATE_DERIVING

W_ISSUE_ROLE_DISABLE_ENDDATE_DERIVING

IssuerRole

This option changes issuer role processing logic to work in the following way:

  • If the processing flag is not set, the logic goes as default

  • If the processing flag is set and endDate field in the incoming message is less then startDate, then all open period record with role type + sec alias key will be closed with end date = incoming end date and a new record will be inserted with data taken from the incoming message and NO END DATE

  •  If the processing flag is set and endDate is null or not present in the incoming message, new record will be inserted with start date similar to the incoming message and ALL open records will remain open for role type + sec key 

  • If the processing flag is set and endDate is greater than startDate in the incoming message, then all open records in the DB will be closed with end date = incoming start date – 1 + new record will be inserted with incoming data and end date from the incoming message (closed record will be inserted)

Such approach allows to create open records with a different start date and automatically close open records with a set end date.

W_ISSUER_ROLE_USE_DB_START_DATE config parameter allows to take startDate from DB, not from the incoming file - and to avoid overwriting startDate column


IssuerRelationship Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

ISSUER_RELATIONSHIP_EXIST_CHECK_MODE

W_ISSUER_RELATIONSHIP_SKIP_IF_EXIST_CHECK

IssuerRelationship

The option only works with the skipIfExistFlag flag:

  1. If the skipIfExistFlag is set to Y and no processingOptions is specified, the record will be skipped without a check by default.

  2. If the skipIfExistFlag is not set, but <processingOptions>ISSUER_RELATIONSHIP_EXIST_CHECK_MODE</processingOptions> is set, then a default load will take place.

  3. If the skipIfExistFlag is set to Y, and <processingOptions>ISSUER_RELATIONSHIP_EXIST_CHECK_MODE</processingOptions> is also set, then a skipifexist check takes place and the record is skipped in case it exists in the DB.

ISSUER_RELATIONSHIP_HISTORY_MODE

W_ISSUER_RELATIONSHIP_GENERATE_HISTORY_RECORDS

IssuerRelationship

The Issuer Relationship history mode allows emulating period by period ownership information in the SECURITYDBO.ISSUER_RELATIONSHIP for each record based on the key SOURCE + FROM ISSUER + ROLE TYPE. Periods will be processed based on an effective date.

ISSUER_BUILD_COMPLIANT_SWITCH

W_ISSUER_BUILD_COMPLIANT_SWITCH

IssuerRelationship

The option provides the ability to identify and delete records for the following KEY: ROLE TYPE + SOURCE + FROM ISSUER if the <fromIssuer> and <toIssuer> are the same in the incoming file or the <toIssuer> is Null.


AccountingTrade Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

ALLOW_PRINCIPAL_CHECK

W_ACCTTRADE_ALLOW_PRINCIPAL_CHECK

AccountingTrade

Enables the Principal Check logic.
For ILB securities (DBFLTP), the logic calculates the Principal based on the Index Ratio and compares it to the Principal from the incoming file, taking into account the provided or default Tolerance.
For MBS securities (DBFBFB, DBFBPO, DBFBIO, DBFBAL, DBFBCC, DBIBTR), the logic calculates the Principal based on the Factor and compares it to the Principal from the incoming file taking into account the provided (PRINCIPAL_CHECK_TOLERANCE_VALUE) or default Tolerance (0).

Example:
<processingOptions>ALLOW_PRINCIPAL_CHECK,PRINCIPAL_CHECK_TOLERANCE_VALUE=0.03</processingOptions>

PRINCIPAL_CHECK_TOLERANCE_VALUE

W_ACCTTRADE_TOLERANCE_VALUE

AccountingTrade

An additional processing option for ALLOW_PRINCIPAL_CHECK that adds the Tolerance value.

Example:
<processingOptions>ALLOW_PRINCIPAL_CHECK,PRINCIPAL_CHECK_TOLERANCE_VALUE=0.03</processingOptions>


MultipleLegAccountingTrade Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

SINGLE_LEG_PANEL

-

MultipleLegAccountingTrade

Enable the feature to book Single-row IRS and TRS trades.


LedgerPostingDualEntry Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

USE_PRIOR_FX_RATE

-

LedgerPostingDualEntry

This option indicates to use the prior FX Rate before the accounting date (accountingDate). The message will retrieve the most recent FX Rate and use the returned value in the posting.


AccountingCA Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

CA_TRANS_TYPE_TWINS

W_CA_TRANS_TYPE_TWINS

AccountingCA

If this option is specified and the CA Transaction Type is CASHDIV or ROC, then additional logic is enabled which will trigger a set of lookups to search for a TWIN CA records based on the following parameters:
Tag1695/lookup Client Specific Id based on incoming Client Specific Id;
Tag54/lookup Cp Status: PD, or NC, or RD;
Tag1257/lookup Trans Type: CASHDIV if an incoming Trans Type is ROC;
Tag1257/lookup Trans Type: ROC if an incoming Trans Type is CASHDIV

If a twin CA record is found, check the Cp Status (tag 54).
If the cpStatus of a twin CA record is PD/Pending or NC/Incomplete, then the twin CA record generates a Delete CA announcement and a new ROC or CASHDIV corporate action will be created. When processed, the original corporate action will be deleted.
If the cpStatus of a twin CA record is RD/Released, then it must have a unique subpriority when using the accountingValidationFlag set to Y in order to pass the business and system edits. The twin CA record will generate a Cancel Corporate Action announcement and a new ROC or CASHDIV corporate action. When processed, the original corporate action will be canceled.

USE_TOASSET_CHECK

W_GENERICCA_IGNORE_EDITCHECK302

AccountingCA

By default, the message is not failed if tag 302 is not resolved and throws only a WARNING.

If tag 302 is not resolved, you can choose to fail such messages by setting this option.


IssueVariableRate Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

VARRATE_TRUE_REBOOK

W_VARRATE_TRUE_REBOOK

IssueVariableRate

Enable a check to see if the record exists prior to processing and if already exists, to ignore the message and maintain the existing Variable Rate information. If the Variable Rate data is loaded for a second time without changes, then the database check logic will ignore the message.


PriceClassification Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

PRICECLASSIFICATION_TRUE_REBOOK

W_PRICECLASSIFICATION_TRUE_REBOOK

PriceClassification

Enable a check to see if the record exists prior to processing and if already exists, to ignore the message.


Rating Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

SKIP_UNCHANGED_RATING

-

Rating

The logic for the Rating inserts a new record when both the effective date and the Rating are different than the existing values in the database.

The logic checks if the latest rating record (highest effective date) for the same key (Security + Issue Name + Source) has a different alpha rating or the same rating. If the new record matches the existing alpha rating, the record is skipped, otherwise a new record is created.


Schedule Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

SCHEDULE_TRUE_REBOOK

W_SCHEDULE_TRUE_REBOOK

Schedule

Enable rebook logic that will check if a record exists prior to the load.

The comparison logic includes the list of fields that will be validated in order to skip a record update:
EagleML/referenceTransaction/schedule/nextCallDate
EagleML/referenceTransaction/schedule/nextCallPrice
EagleML/referenceTransaction/schedule/nextPutDate
EagleML/referenceTransaction/schedule/nextPutPrice
EagleML/referenceTransaction/schedule/stepUpCoupon
EagleML/referenceTransaction/schedule/stepUpDate
EagleML/referenceTransaction/schedule/scheduleStatus EagleML/referenceTransaction/schedule/scheduleFloat1

Schedule type dependent fields:
EagleML/referenceTransaction/schedule/bypassSinkCheckSwitch (CSTMSINK)
EagleML/referenceTransaction/schedule/scheduleAmount (EXINTSCH, CSTMSINK, CPNRESET, PIKMTM, SINK)
EagleML/referenceTransaction/schedule/price, EagleML/referenceTransaction/schedule/rate (REFUND, CALL, PUT)
EagleML/referenceTransaction/schedule/preRefundedDate (REFUND)
EagleML/referenceTransaction/schedule/scheduleDate1 (EXINTSCH)
EagleML/referenceTransaction/schedule/resetDate (CPNRESET)
EagleML/referenceTransaction/schedule/fixingDate (CPNRESET)
EagleML/referenceTransaction/schedule/cashPaymentDate (CPNRESET)
EagleML/referenceTransaction/schedule/endDate (CPNRESET, PIKMTM)

SINK_MANAGER

-

Schedule (SINK)

Special option for SINK Schedules to be processed by eagle_ml-2-0_default_in_xml_sink_schd_manager stream. You should have Eagle Core version higher than 2017 R2.43 or have a table SECURITYDBO.SINK_SCHEDULE_KEYS and use global option to skip version check W_SKIP_SINK_SCHEDULE_MANAGER_VERSION_CHECK.


User Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

REINSERT

-

User

Enable User update in REINSERT mode.

In this mode, all Center and PACE roles are removed from the user and assigned only roles from the incoming User file.


IssuePrice Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

PRICE_RESOLVE_SW_BY_XREF

W_PRICE_RESOLVE_SW_BY_XREF

IssuePrice

By default, SWAP resolution for prices has specific logic based on Processing Security Type and only one leg could be priced.

The option allows to switch on SWAP resolution based on xreferences, ignoring PST.

PRICE_RESOLVE_SW_BY_PAYRECIND

W_PRICE_RESOLVE_SW_BY_PAYRECIND

IssuePrice

SWAP resolution for Issue Prices has specific logic based on Processing Security Type and only one leg could be priced. This option was added to support SWAP resolution based on Primary Asset Id and Pay Receive Indicator.


ExchangePrice Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

PRICE_RESOLVE_SW_BY_XREF

W_PRICE_RESOLVE_SW_BY_XREF

ExchangePrice

By default, SWAP resolution for prices has specific logic based on Processing Security Type and only one leg could be priced.

The option allows to switch on SWAP resolution based on xreferences, ignoring PST.

PRICE_RESOLVE_SW_BY_PAYRECIND

W_PRICE_RESOLVE_SW_BY_PAYRECIND

ExchangePrice

SWAP resolution for Exchange Prices has specific logic based on Processing Security Type and only one leg could be priced. This option was added to support SWAP resolution based on Primary Asset Id and Pay Receive Indicator.


IssuePcPrice Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

PRICE_RESOLVE_SW_BY_XREF

W_PRICE_RESOLVE_SW_BY_XREF

IssuePcPrice

By default, SWAP resolution for prices has specific logic based on Processing Security Type and only one leg could be priced.

The option allows to switch on SWAP resolution based on xreferences, ignoring PST.

PRICE_RESOLVE_SW_BY_PAYRECIND

W_PRICE_RESOLVE_SW_BY_PAYRECIND

IssuePcPrice

SWAP resolution for Issue PC Prices has specific logic based on Processing Security Type and only one leg could be priced. This option was added to support SWAP resolution based on Primary Asset Id and Pay Receive Indicator.


IssuerOrganization Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

ISSUER_ID_CASE_SENSITIVE

 

IssuerOrganization

IssuerAnalytic
IssuerEntityRelationship
IssuerRating
IssuerRelationship
IssuerRole
IssuerESG
IssuerXref
EntitySecurityLending
EntityCollateralSumm
ReferenceElementOverride

By default, IssuerId converted to uppercase for resolution and load.
For backward compatibility, there is an ISSUER_ID_CASE_SENSITIVE processing option that returns the old resolution and load process.

VoluntaryCAElection Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

USE_ENTITY_BANK_ALIAS

-

voluntaryCAElection

The processing option is used to verify the entity bank alias element is provided in the load


Other Processing Options

Option Name

Global Parameter

Supported EagleML Objects

Description

Option Name

Global Parameter

Supported EagleML Objects

Description

ENABLE_TSR_LOGGING

-

All

The feature to display the TSR is optional. The TSR will be displayed in case the ENABLE_TSR_LOGGING flag is set in <processingOptions> for the payload message, or if the EnableTSRLogging task parameter is set to 'Y' in RTR, or if the process fails.