EagleML Release Notes - July 2018
ESP-358: STAR v2017 EagleML - Inbound Cash Tender, Cash Dividend and PIK Bond Corporate Action Announcement failing with required To Security Alias Tag302
When loading Accounting Corporate Actions on version 2017 there were two errors in the security resolution for certain transaction types. A <transType> node with values of ‘TENDER’ of ‘PIKBOND’ would cause the following error: 'To Security Alias: Value required'. Alternatively values of ‘ADDPUT’ and ‘ADDCALL’ would procedure the error: 'Security Does Not Have Call or Put or Refund or Lottery Bond Provisions and is not a Private Placement'.
Due to the changes to security resolution some required mappings were not present in the corresponding panels used for preocessing. For all the transTypes listed below, the mappings for Security Alias (tag10) and To Security Alias (tag302) were added. For the ‘ADDPUT’ and ‘ADDCALL’ transTypes the additional mappings for the Processing Security Type (tag3931), Call Flag (tag1182), Put Flag, (tag1546), Muni Refunding Indicator (tag3132), Lottery Flag (tag11303) and Private Placement (tag1421) were added to the pan-addcallput.htm panel.
• varTransType = CASHDIV - panel pan-acorpactcashdiv.htm
• varTransType = ADDPUT or ADDCALL - panel pan-addcallput.htm
• varTransType = TENDER - panel pan-addmcshtender.htm
• varTransType = STOCKDIV - panel pan-addstockdiv.htm
• varTransType = CREDITEVENT - panel pan-addcreditevt.htm
• varTransType = ADDFACTOR or FACTOR - panel pan-addfactorca.htm
• varTransType = BSSB - panel pan-addbssb.htm
• varTransType = ADMIN - panel pan-addnamechg.htm
• varTransType = NOMINAL or NOMVALCHG - panel pan-addnominal.htm
• varTransType = SPLIT - panel pan-addstocksplit.htm
• varTransType = SINKSCHED - panel pan-addscheduleca.htm
• varTransType = ROC - panel pan-addroc.htm
• varTransType = PIKBOND - panel pan-addpikbnd.htm
• varTransType = PIK - panel pan-addpayinkind.htm
Rule changed:
• eagle_default/in/xml/xml-ref_ca.xml
ESP-359: EagleML: Re-design xml-ref_smf_factor to not to use the Corporate Actions load and regenerate binds based on environments core stored procedure for Factor
There was a request to change the inbound logic for the factor object.
A new rule was created that loads factors using the stored procedure directly instead of using panels. The default behavior for the load is still to use the old rule and call the panels. To use the new functionality the accountingValidationFlag has to be set as “N” in the incoming file.
List of files changed:
eagle/estar/tpe/dynamic/metadata/bind/eagleml_reference.xml
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/xml-ref_objects.rsf
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/xml-ref_smf_factor.xml
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/xml-ref_smf_factor_generic.xml
ESP-361: EagleML - eagle_wrf_generic_extract_accounting_objects.wrf missinga parameter for the accountingvalidationflag when processing the UNAPPROVEDVARMARGINEXTRACT
Both the stored procedure and dynamic SQL modes for the UNAPPROVEDVARMARGINEXTRACT were failing if the todate or enddate filters were present in the run task request.
This issue was related to the missing replace logic for the “-“ symbol in the date format. This was corrected to apply the date filters are passed with correct date formats.
Example of run task request:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" eaglemlType="RunTaskRequest">
<header>
<messageId>SMFEXTRACT</messageId>
<sentBy>http://www.eagleinvsys.com/</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_control_message</sendTo>
<creationTimestamp>2016-02-03T14:01:58-05:00</creationTimestamp>
</header>
<taskIdentifier>
<correlationId correlationIdScheme="correlationIdScheme">asUNAPPRVVARMARGIN_180618_SP1</correlationId>
<businessTaskId correlationIdScheme="businessTaskIdScheme">UNAPPROVEDVARMARGINEXTRACT</businessTaskId>
</taskIdentifier>
<taskParameters>
<taskParameter>
<name>ActionType</name>
<dataType>S</dataType>
<value>EXTRACT</value>
</taskParameter>
<taskParameter>
<name>StreamName</name>
<dataType>S</dataType>
<value>eagle_ml-2-0_default_out_q</value>
</taskParameter>
<taskParameter>
<name>FeedType</name>
<dataType>S</dataType>
<value>UNAPPROVEDVARMARGINEXTRACT</value>
</taskParameter>
<taskParameter>
<name>accountingvalidationflag</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
<taskParameter>
<name>entityselectiontype</name>
<dataType>S</dataType>
<value>EntityID</value>
</taskParameter>
<taskParameter>
<name>entityselectionvalue</name>
<dataType>S</dataType>
<value>36136101</value>
</taskParameter>
<taskParameter>
<name>todate</name>
<dataType>S</dataType>
<value>2018-06-30</value>
</taskParameter>
</taskParameters>
</EagleML>
Rules changed:
• eagle_ml-2-0_cm/out/tagvalue/extract_acct_unapproved_var_margin.inc
ESP-366: EagleML - GENCORPACTIONSEXTRACT – support additional filters
The Generic Corporate Action extract required support for some new filters.
The parameters for transType, cpStatus, clientSpecificCAId, cpReason, sweepdate, fromsweepdate, and tosweepdate were all added to the core rules to enable the filters to be used in the extract.
Example of RTR
<EagleML xsi:type="RunTaskRequestSync" eaglemlType="RunTaskRequest" eaglemlVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<messageId>CC59ADD40E1E069</messageId>
<sentBy>user</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_control_message</sendTo>
<replyTo>http://www.client.com/Eagle Control Messages</replyTo>
</header>
<taskIdentifier>
<correlationId>ESP-366_GENCORPACTIONSEXTRACT_XML</correlationId>
<businessTaskId>Generic_Corporate_Action_Extract</businessTaskId>
</taskIdentifier>
<taskTypeEnum>LOAD</taskTypeEnum>
<taskParameters>
<taskParameter>
<name>ActionType</name>
<dataType>S</dataType>
<value>EXTRACT</value>
</taskParameter>
<taskParameter>
<name>StreamName</name>
<dataType>S</dataType>
<value>eagle_ml-2-0_default_out_q</value>
</taskParameter>
<taskParameter>
<name>FeedType</name>
<dataType>S</dataType>
<value>GENCORPACTIONSEXTRACT</value>
</taskParameter>
<taskParameter>
<name>fromsweepdate</name>
<dataType>S</dataType>
<value>2017-01-01</value>
</taskParameter>
<taskParameter>
<name>tosweepdate</name>
<dataType>S</dataType>
<value>2018-06-02</value>
</taskParameter>
<taskParameter>
<name>transType</name>
<dataType>S</dataType>
<value>CASHDIV</value>
</taskParameter>
<taskParameter>
<name>cpReason</name>
<dataType>S</dataType>
<value>CASHDIV</value>
</taskParameter>
<taskParameter>
<name>cpStatus</name>
<dataType>S</dataType>
<value>RD</value>
</taskParameter>
<taskParameter>
<name>clientSpecificCAId</name>
<dataType>S</dataType>
<value> CASHDIV_1001</value>
</taskParameter>
<taskParameter>
<name>maxrows</name>
<dataType>S</dataType>
<value>20</value>
</taskParameter>
</taskParameters>
</EagleML>
Files changed:
- extract_generic_corporate_actions.xml
- extract_generic_corporate_actions.inc
- extract_filter_date.inc
ESP-372: EagleML: Add the link to the autoinclude before ref_issuerating_all after the xsl rating_data_model
The eagle_default/in/xml/xml-ref_issuerating_all.xml rules was updated with new logic to include the rating_data_model XS.
The reference to an autoinclude was added in the \xml-ref_issuerating_all.xml file.
File changed: \msgcenter\eagle_default\in\xml\xml-ref_issuerating_all.xml
ESP 373: EagleMl: Issuer Role - Skip returned record from the issuer_query_result if the returned issuer_alias does not match the incoming issuer alias
Logic for the W_ISSUEROLE_UPDATE_CLOSED_ALLOWED variable was updated to allow skipping certain files returned by the issuer_query_result.
The logic now uses the security alias, issuer alias, begin date and role type to retrieve the closed records. If the values for any of these do not match the values in the incoming file the record will not be updated.
Files changed:
xml-ref_issuerrole_common.inc
ESP-375: EJM: Enhance EAS Alert functionality to support time zones, business calendars and date offsets
There was an issue with the local time and server time being different. This resulted in days off and specific file delivery times to be inconsistent.
Support for a time zone sensitive business calendar was introduced. This functionality is only available for the Unix platform. The values for this calendar’s parameter can be specified in the w_config_sustom.inc file.
The parameter names are:
- W_EAS_TIME_ZONE_NAME
- W_BUSINESS_CALENDAR_NAME
read_task_info.inc - changed
check_business_date.inc - added
ESP-379: EagleMl: Add new security columns.
New security columns were added to several model groups from the SECMASTER_DETAIL_EXT, SECTOR, DERIVATIVES and EQUITY_DETAIL tables.
The Derivatives.model, SMExtension.model, UDF.model, and Equity.model were all changed in the XSD to reflect these additions.
Files changed:
eagleml-sec-shared-2-0.xsd
t_smf.xml
t_smf_streaming_eml.inc
ESP-380: EagleML - Enhancement Request to extract data from the securitydbo.NON_UNIQUE_XREFID table
A new ‘instance’ field was added to the SMFIdentifierConfig interfaces.
An extract for this interface was created by building an outbound rule. The feed type is XREFCONFIGEXTRACT and it is supported in both Oracle and MSSQL but is only available in streaming mode.
Filters:
date filters (fromdate, todate, updatedate)
common filters (maxrow)
deltabased - Y
own filters (xrefqualifier, xrefidtype, investmenttype)
Support for the inbound and outbound interfaces for this object type were added to the generic extract and generic load solutions.
Generic Load - eagle_generic_load_system_objects - load_smfidentifier_config
File Mask - _SMFIDENTIFIERCONFIG_
Generic Extract - eagle_generic_extract_ref_independent_objects - eagle_generic_extract_system_objects - extract_smf_identifier_config
Example of RTR:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" eaglemlType="RunTaskRequest">
<header>
<messageId>WRHSNAVEXTRACT001</messageId>
<sentBy>http://www.client.com</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_control_message</sendTo>
<replyTo>http://www.client.com/Eagle Control Messages</replyTo>
<creationTimestamp>2012-08-02T22:13:32.272-05:00</creationTimestamp>
</header>
<taskIdentifier>
<correlationId correlationIdScheme="correlationIdScheme">XREFCONFIGEXTRACT_tst_11</correlationId>
<businessTaskId correlationIdScheme="businessTaskIdScheme">XREFCONFIGEXTRACT</businessTaskId>
</taskIdentifier>
<taskTypeEnum>NEW</taskTypeEnum>
<taskParameters>
<taskParameter>
<name>ActionType</name>
<dataType>S</dataType>
<value>EXTRACT</value>
</taskParameter>
<taskParameter>
<name>StreamName</name>
<dataType>S</dataType>
<value>eagle_ml-2-0_default_out_q</value>
</taskParameter>
<taskParameter>
<name>FeedType</name>
<dataType>S</dataType>
<value>XREFCONFIGEXTRACT</value>
</taskParameter>
<taskParameter>
<name>fromdate</name>
<dataType>S</dataType>
<value>2000-06-29 00-00-00</value>
</taskParameter>
<taskParameter>
<name>maxrows</name>
<dataType>S</dataType>
<value>100</value>
</taskParameter>
<taskParameter>
<name>investmenttype</name>
<dataType>S</dataType>
<value>DERV</value>
</taskParameter>
<taskParameter>
<name>xrefqualifier</name>
<dataType>S</dataType>
<value>DUPLICATE</value>
</taskParameter>
<taskParameter>
<name>xrefidtype</name>
<dataType>S</dataType>
<value>INTERNAL</value>
</taskParameter>
<taskParameter>
<name>XSDValidation</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
</taskParameters>
</EagleML>
Rules affected:
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\tagvalue\extracts.rsf
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\tagvalue\extract_ref_smfidentifierconfig.xml
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\tagvalue\extract_ref_smfidentifierconfig.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\t_eagleml-2-0_streaming.rsf
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\t_ref_smfidentifierconfig_streaming.xml
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\t_ref_smfidentifierconfig_streaming.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\extract_upd_timestamp.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\extract_filter_smf.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\extract_fields_query.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\w_config.inc
estar\tpe\dynamic\eagleml\schema\eagleml-shared-2-0.xsd
estar\tpe\dynamic\eagleml\schema\eagleml-ref-2-0.xsd
eagle\estar\tpe\dynamic\msgcenter\eagle_ml-2-0_workflows\eagle_wrf_generic_load
eagle\estar\tpe\dynamic\msgcenter\eagle_ml-2-0_workflows\eagle_wrf_generic_load_system_objects
eagle\estar\tpe\dynamic\msgcenter\eagle_ml-2-0_workflows\eagle_wrf_generic_extract
eagle\estar\tpe\dynamic\msgcenter\eagle_ml-2-0_workflows\eagle_wrf_generic_extract_reference_objects_ind
eagle\estar\tpe\dynamic\msgcenter\eagle_ml-2-0_workflows\eagle_wrf_generic_extract_system_objects
ESP-429: EagleML: Make issuer resolution consistent in all issuer-related rules
The issuer resolution logic was changed for the elementOverride, entityIssuerRelationship, issuerRegulatory, and issuerRelationship objects.
The issuer resolution logic for deleting issuerOrganization, issuerRelationship, and RoleModel (also for MI interface) was changed as well.
All issuer related objects are now using the issuer_xref_resolution.inc file.
Following files are changed:
issuer_xref_resolution.inc
t_eagle_ml-2-0_default_in_xml_delete_issuer.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_mi_issuer_id.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_mi_organization.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_mi_relationship.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_organization.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_relationship.xml
t_eagle_ml-2-0_default_in_xml_delete_issuer_role_model.xml
xml-ref_elementoverride.xml
xml-ref_issuerentityrelationship.xml
xml-ref_issuerregulatory.xml
xml-ref_issuerrelationship.xml
ESP-458: RDC Pricing - Eagle ML Upload Stream
There was a request to add the ability of loading price records into Reference Data Center (RD)
A new flag and global variable were introduced to allow loading prices to RDC. The flag is: useRdcPricing and the variable is W_USE_RDC_PRICING (located in w_config.inc). the following new elements were added to the inbound rule: openPriceCondition, dirtyPriceCondition, commentsOverrideFlag.
Files changed:
xml-ref_issuepcprice.xml
ESP-805: Enable support of Chain Extracts to call multiple feed types within a single request
A new Chain Extract task was added to the generic extract workflow. This task can run multiple extracts sequentially which lowers the load on the system due to less files being created. For small datasets this is the preferred method of extraction especially targeted for a single entity being extracted.
To enable this functionality the run task request should include the following parameter:
<taskParameter>
<name>ChainExtract</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
Changed files:
eagle_wrf_generic_extract workflow(*.wrf, *.sln, *.ejmwf)
compress_extract.inc
extract_eofw.inc
extract2t.inc
get_w_custom_params.inc
Added new extract file:
extract_chain.xml
ESP 865: EagleMl: Adjust xml-smf_underling_common to have DELETE functionality by switch
There was a request to add functionality that would allow re-inserting underlying records.
To accomplish this the W_UNDERLYINGSMF_DELETE_REINSERT_SWITCH global variable and underlyingDeleteReinsertSwitch RTR parameter were introduced. With a value of “Y” these parameters allow deleting an underlying SMF record based on the security alias and issuer alias. The new records will then be loaded.
<taskParameter>
<name>underlyingDeleteReinsertSwitch</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
Files changed:
xml-smf_underling_common.inc
xml-smf_underling.xml
ESP-985: EagleML - Load Add Entity failure for Control Center mapping
The functionality around adding an entity was failing when attempting to load Control Center related elements. The ccDailyMap and ccMeMap elements were mapped incorrectly in the Control Center data block in entity records.
The new ccDailyMapName and ccMeMapName elements were added. Mappings for the ccDailyMap and ccMeMap elements were added along with resolution logic for these fields based on their names. Finally the controlCenterEntityTests element were moved from the <acctBasis> node to the <genericEntity> root node.
Changed files:
csv-entity_columns.inc
entity_acct.inc
entity_aliases.inc
entity_panels.inc
eagleml_entity.xml
xml-ent_entitygeneric.xml
extract_entity.inc
t_entity_streaming.inc
t_entity_streaming_eml.inc
ESP 995: Security Fields to be included in Warehouse Extracts in Extended Model
The countryOfRisk and pricingCusip fields were added to the extended model which is present in the warehouse extracts.
Files changed:
extract_asset_properties_fields.inc
extract_std_table_names.inc
t_asset_properties_fields.inc
t_asset_properties_fields_streaming.inc
ESP-1040: EagleML ENTITYEXTRACT fails when using an Element Reduction profile that does not include any element referencing the Entity Star Processing table
The ENTITYEXTRACT was failing when applying an Element Reduction profile as a join to a required table was not present. The Element Reduction profile required the inclusion of an element from the RULESDBO.ENTITY_STAR_PROCESSING table.
Without a reference to the required table, the request failed when using an Element Reduction profile. The reason was that request contained tables in the SELECT section, but did not have the fields in the FROM section, as these tables were not described in the custom profile.
To resolve, moved the EAB_LEDGER_GRAN_RULE_NAME and the ESP_ENTITY_SOURCE_RULE_NAME fields definition under the IncludeEntityRuleKeys filter and set the profile check to include the IncludeEntityRuleKeys fields in common request. The inclusion of the IncludeEntityRuleKeys set to Y is required to return these elements.
A profile check was added for the IncludeExtendedDetails filter.
Files changed:
extract_entity.inc
extract_entity_fields.inc
ESP-1069: Duplicate messages from the generic extractor and compression
There was an issue with the compression and distribution logic which was producing duplicated archived files when using the JMS stream to run the extracts.
Compression and distribution logic was introduced to the generic extract workflow which would override the global and RTR settings for these functionalities. This was accomplished by adding default values for the Compress and ExtractDeliveryMethod parameters.
The default values for these parameters are: Compress = N, ExtractDeliveryMethod = FILE.
A new option for specifying the compression type for a single extract file was introduced into Generic Extract Workflow. Each extract file willnow support being able to be created in a separate archive.
<taskParameter>
<name>SingleExtractCompress</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
This parameter relates with option:
<taskParameter>
<name>Compress</name>
<dataType>S</dataType>
<value>GZIP</value>
</taskParameter>
If Compress type is not specified the default value is ZIP. Any available compression can be used.
Please note, that if you want files to be sent to JMS or MQ, the compression type should include B64.
For example: GZIP+B64
Changed files:
eagle_wrf_generic_extract workflow(*.wrf, *.sln, *.ejmwf)
ESP-1187: Additional Characters in the extracted file
There was an issue that would occur if the compression functionality was launched in SingleExtract mode. This would result in several extracts with the same name to write to the same files instead of creating individual ones.
The files inside the archive now have the process Id added to the file name so that all the individual files are created with the proper contents.
This option is controlled by the W_COMPRESS_WITH_CORR_ID global variable in the w_config.inc file.
Changed files:
compress_extract.inc
ESP-1228: Create Extract for Exceptions
The Accounting Rejection Extract received new database binds for some of its filter parameters.
Binds were added for:
eventType
updateSource
eventId.
Examples of bind parameters in the extract SQL:
WHERE (1=1)
AND ESTAR_EVENT_REJECTION.MESSAGE_SUBTYPE IN (:1) -- eventType
AND ESTAR_EVENT_REJECTION.REJECTION_SOURCE IN (:2) -- updateSource
AND ESTAR_EVENT_REJECTION.EVT_ID IN (:3) -- eventId
Files changed:
- extract_acct_rejection.inc
ESP-1420: EagleML - GLACTIVITYEXTRACT - @RecordCount on the GLACTIVITYEXTRACT is not matching the DB count
When ExtractNamePatternEx parameter is included in the RTR used to kick of the generic extract workflow the record count on the GLACTIVITYEXTRACT would not match the DB count.
This issue was introduced as part of the May2018 release and changes were rolled back to correct the logic for the :totalCount: variable which is responsible for the record count. These changes allowed the record count to once again match the DB count.
List of files changed:
eagle_ml-2-0_cm/extract_filter_gl_activity.inc
eagle_ml-2-0_cm/out/xml/t_acct_gl_activity.xml
eagle_ml-2-0_cm/out/xml/t_acct_gl_activity_streaming.inc
ESP-1426: allow to provide xrefId and xrefIdType instead of entityId in KEY files for warehouse objects
Warehouse objects rely on a file key o perform batch roll up and this key had to include the entity_id and not the XrefAccountID.
An option to use the xref Id and xref type in the key file was added. The <ENTITY_XREF> node was introduced to allow resolution of the entity id based on the xrefs. The XMLDBAPI request now looks as follows:
<LOT_EGL_GEN_INTERFACE>
<EagleDBMLRequest>
<BATCH_KEY>ENTITYID^EFFECTIVE_DATE^SRC_INTFC_INST</BATCH_KEY>
<ENTITY_XREF>XREFACCOUNTID^XREFACCOUNTIDTYPE</ENTITY_XREF>
<REQUEST>
<MSG_TYPE>MTADMIN</MSG_TYPE>
<SUB_MSG_TYPE>ROLLUP_EGL_GEN_INTERFACE</SUB_MSG_TYPE>
</REQUEST>
</EagleDBMLRequest>
</LOT_EGL_GEN_INTERFACE>
The eofp rule will automatically run the roll up once the warehouse record has been loaded. To disable this functionality, set the W_ROLLUP_FLAG global variable was set to “N”. This allows executing the roll up with the key file.
Files changes:
estar\tpe\dynamic\msgcenter\eagle_default\in\xml\ xml-dbdirect_invar_rollup.xml
ESP-1427: @recordCount in filename not matching test bed records for the WRHSOPENLOTEXTRACT when passing the <IncludeAccrualRate> task parameter
ESP-1543: Totalcount in extract file name mismatch the real records count
The AccrualIncome sub-query logic was changed to return only one value for any OPEN_EVENT_ID or TRADE_DT. This value will be derived by taking the larger value from the ESTAR_INCOME_ACTIVITY.TRADE_DT and ESTAR_INCOME_ACTIVITY.OPEN_EVENT_ID fields. This logic is triggered when the IncludeAccrualRate parameter is included.
<taskParameter>
<name>IncludeAccrualRate</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
This change hindered performance slightly since neither one of the queried fields are indexed. If custom indexes for these fields are added the performance will be improved.
Before:
left outer join (SELECT COUPON,OPEN_EVENT_ID,TRADE_DT FROM ESTAR.ESTAR_INCOME_ACTIVITY
WHERE INSTANCE NOT IN (SELECT INSTANCE FROM ESTAR.ESTAR_CXL_INCOME_ACTIVITY) GROUP BY OPEN_EVENT_ID, TRADE_DT,COUPON ) ESTAR_INCOME_ACTIVITY
on LOT_LEVEL_POSITION.ORIG_LOT_NUMBER = ESTAR_INCOME_ACTIVITY.OPEN_EVENT_ID AND
LOT_LEVEL_POSITION.EFFECTIVE_DATE = ESTAR_INCOME_ACTIVITY.TRADE_DT
After:
left outer join (SELECT COUPON,OPEN_EVENT_ID,TRADE_DT FROM ESTAR.ESTAR_INCOME_ACTIVITY,
( SELECT max(INSTANCE) INSTANCE FROM ESTAR.ESTAR_INCOME_ACTIVITY
WHERE INSTANCE NOT IN (SELECT INSTANCE FROM ESTAR.ESTAR_CXL_INCOME_ACTIVITY)
GROUP BY OPEN_EVENT_ID, TRADE_DT) SUB_ESTAR_INCOME_ACTIVITY WHERE ESTAR.ESTAR_INCOME_ACTIVITY.INSTANCE = SUB_ESTAR_INCOME_ACTIVITY.INSTANCE) ESTAR_INCOME_ACTIVITY
on LOT_LEVEL_POSITION.ORIG_LOT_NUMBER = ESTAR_INCOME_ACTIVITY.OPEN_EVENT_ID AND
LOT_LEVEL_POSITION.EFFECTIVE_DATE = ESTAR_INCOME_ACTIVITY.TRADE_DT
ESP 1554: EagleM: Issue with logic for the tag3931/tag11/tag14/tag1432/85/961 in the underlying_smf_ins_upd.
Logic for loading an underlying SMF record based on the main SMF data was added.
The W_UNDERLYINGSMF_AUTO_ENRICH_DATA_SWITCH global variable and underlyingAutoEnrichDataSwitch Control Message parameter were added to control this functionality. If either has a value of “Y” the underlying SMF will be created and loaded based on the generic SMF fields: tag3931, tag11, tag1432, tag85, tag961
Set in the w_config_custom.inc to run globally across the full environment:
<COL TAG=" W_UNDERLYINGSMF_AUTO_ENRICH_DATA_SWITCH" EXPRESSION="'Y'"/>
To set in an individual Control Message:
<underlyingAutoEnrichDataSwitch>Y</underlyingAutoEnrichDataSwitch>
Files changed:
underlying_smf_ins_upd.inc
ESP-1561: WRHSPOSITIONEXTRACT - Revise Portfolio Valuation Daily Query to maximize use of the Table Index
ESP-1562: WRHSOPENLOTEXTRACT - Revise Portfolio Valuation Daily Query to maximize use of the Table Index
ESP-1563: WRHSOPENLOTEXTRACT - Revise Portfolio Valuation Monthly Query to maximize use of the Table Index
ESP-1564: WRHSPOSITIONEXTRACT - Revise Portfolio Valuation Monthly Query to maximize use of the Table Index
During throughput testing, an optimization was identified related to a single sub-query for the PREV_EFFECTIVE_DATE field in the Portfolio Valuation extract.
A left join in the sub-query was changed to an inner join which will increase performance. The join to the main table is now done based on the POSITION_DETAIL_ID field for the positions extract. Since this field is indexed it works more efficiently than the Local Currency and Long Short Indicator fields.
Changed files:
extract_holding_ext_port_valuation_fields.inc
ESP-1566: ENTITYACCOUNTINGSTATUSEXTRACT - need modification to resolve entityid to it's master when an individual sector id is requested
The entity extract was returning no data if the run task request included a sector filter.
An inner join in the sub-select as well as some conditional logic for the SECTOR_TYPE field were removed from the outbound rule. Incorrect mappings in this rule were also fixed.
This change enables the ability to pass in an individual sector and it will display the status of its Master
Files changed:
extract_entity_accounting_status.inc
extract_entity_fields.inc
ESP-1615: Open lot with extension stored procedure is created incorrectly
To support loading records with extensions there is functionality that allows stored procedures to be generated dynamically based on the core stored procedure as well as additional pieces corresponding to the extension fields.
To grab the core stored procedure there is a query to the source table, but since clients can have varying permission levels to certain database tables, this query would occasionally not return any data due to access rights.
Asecond table (dba_source) was created and is now queried in the case the first query returns no data. This allows a client to consistently be able to retrieve the core stored procedure regardless of the database table permissions.
All changes were made in the file:
generate_sp_on_fly.inc
ESP-1616: Add Newly Created Decryption Code to the Core EML Stream
Added decryption to the logic in the eagle_ml-2-0_default_cm_ndfa_exec stream. The stream is now capable of decrypting all files with gpg and pgp extensions.
By default this functionality is only applied to files that are using extensions but this can be controlled with the W_NDFA_INCOMING_ENCRYPTED global variable. The following values have the corresponding behaviors:
* EXTENSION BASED or no value - extensions only. This enables mode when only files with .gpg or .pgp extension (case insensitive) are considered as encrypted files and decryption is performed on files with this kind of extension. Type of decryption utility to use (gpg or pgp) is determined based on the file extension.
* ALL - handle all files as encrypted. The type of decryption is determined by region configuration.
* NONE - disable decryption of all incoming files.
ESP-1653: Support new field elements available in the WRHSTRADEEXTRACT
The following columns were requested as additions to the WRHSTRADEEXTRACT: from the TRADESDBO.TRADE_EXT table:
ElementName | DBField | Field Type / Length |
---|---|---|
stGainSecLocal | ST_GAIN_SEC_L | NUMBER(38,12) |
stLossSecLocal | ST_LOSS_SEC_L | NUMBER(38,12) |
stGainSecBase | ST_GAIN_SEC_B | NUMBER(38,12) |
stLossSecBase | ST_LOSS_SEC_B | NUMBER(38,12) |
stGain | ST_GAIN | NUMBER(38,12) |
stLoss | ST_LOSS | NUMBER(38,12) |
stGainCurrency | ST_GAIN_CRRCY | NUMBER(38,12) |
stLossCurrency | ST_LOSS_CRRCY | NUMBER(38,12) |
ltGainSecLocal | LT_GAIN_SEC_L | NUMBER(38,12) |
ltLossSecLocal | LT_LOSS_SEC_L | NUMBER(38,12) |
ltGainSecBase | LT_GAIN_SEC_B | NUMBER(38,12) |
ltLossSecBase | LT_LOSS_SEC_B | NUMBER(38,12) |
ltGain | LT_GAIN | NUMBER(38,12) |
ltLoss | LT_LOSS | NUMBER(38,12) |
ltGainCurrency | LT_GAIN_CRRCY | NUMBER(38,12) |
ltLossCurrency | LT_LOSS_CRRCY | NUMBER(38,12) |
clsAmortLocal | CLS_AMORT_LOCAL | NUMBER(38,12) |
clsAmortBase | CLS_AMORT_BASE | NUMBER(38,12) |
clsOidLocal | CLS_OID_L | NUMBER(38,12) |
clsOidBase | CLS_OID_B | NUMBER(38,12) |
clsIlbIncLtdLocal | CLS_ILB_INC_LTD_LOCAL | NUMBER(38,12) |
clsIlbIncLtdBase | CLS_ILB_INC_LTD_BASE | NUMBER(38,12) |
gainCurrency988 | GAIN_CRRCY_988 | NUMBER(38,12) |
lossCurrency988 | LOSS_CRRCY_988 | NUMBER(38,12) |
gainLossCurrency988 | GAIN_LOSS_CRRCY_988 | NUMBER(38,12) |
washsaleDisallowedReversalLocal | WS_DISALLOW_REV_L | NUMBER(38,12) |
washsaleDisallowedReversalBase | WS_DISALLOW_REV_B | NUMBER(38,12) |
impairmentLtdLocalExt | IMPAIRMENT_LTD_LOCAL | NUMBER(38,12) |
impairmentLtdBaseExt | IMPAIRMENT_LTD_BASE | NUMBER(38,12) |
impairmentFxLtd | IMPAIRMENT_FX_LTD | NUMBER(38,12) |
Files changed:
extract_warehouse_trade.inc
t_warehouse_trade_streaming_eml.inc
t_warehouse_trade.xml
ESP-1673: Entitlement Trade Date missing from Cash Activity EML Extract
There was a request to include the entitlement date in the cash activity extract.
The entitlement date element was added as entitlementTradeDate to the outbound rules for the Warehouse Cash Activity Extract.
Changed files:
• t_warehouse_cash_activity_streaming_eml
• t_warehouse_cash_activity_streaming.inc
ESP-1716: Regression: Warehouse Roll Up in Single Mode
The Warehouse Position and OpenLot loads were failing on several regions. The issue was caused by an inbound JMS streams that was changing the value in the msgcenter_dbo.msg_detail database table.
The table value checks from the single load mode warehouse roll up query were removed for the msgcenter_dbo.msg_detail table.
Files changed:
xml-dbdirect_invar_eofp.xml
ESP-1757: Incorrect resolution of the primary key 'GLDP_ID' for joining to an extension table
Currently the GLDP_ID resolution logic is based on an incorrect field. The assetcurrency field is used in place of the localcurrency field. Additionally the extensions logic is unable to override the ‘LongShortIndicator’ and ‘ShareClass’ fields. In the core stored procedure these over rides are present which allows records to load successfully.
The logic from this stored procedure was replicated in the custom_field.inc to allow loading with extensions. The GLDP_ID resolution was also changed to use the localcurrency field instead of the assetcurrency.
To include the extension fields in the extract the EscapeExtensionExtract parameter has to have a value of “N”.
<taskParameter>
<name>EscapeExtensionExtract</name>
<dataType>S</dataType>
<value>N</value>
</taskParameter>
Files changes:
estar\tpe\dynamic\msgcenter\eagle_default\in\xml\xml-wh_gl_detail_posting.xml
estar\tpe\dynamic\msgcenter\eagle_default\in\xml\include\custom_fields.inc