EagleML Release Notes - June 2018
ESP-317 - Correct XSD schema for the CASHPROJECTIONSEXTRACT
XSD validation for the CASHPROJECTIONSEXTRACT was producing an error during validation.
The reportType type was modified to correct the error and pass validation.
<xsd:element name="reportType" type="xsd: normalizedString" minOccurs="0">
ESP-356: EagleML - WRHSTRADEEXTRACT - Add Task Parameter on the TradedCashActivity Extract to have the ability to exclude cash from Trades
Originally delivered in March 2017, the EagleML TradedCashActivity Extract was validated to include a task parameter which will exclude cash from trades. To exclude Cash, the value of CashEventSpawned is leveraged in the table. The optional parameter, ExcludeTradeCash, filters out the data set. If set to Y or null, then all records are returned. If set to N, then only the events where the CashEventSpawned <> Y are returned.
<taskParameter>
<name>ExcludeTradeCash</name>
<dataType>S</dataType>
<value>N</value>
</taskParameter>
ESP-360 EagleML Populate User Admin Web Site Settings
The new inbound and outbound interfaces have been created according to the Web Settings tab in User Administration center.
XSD complex type: Entitlement (User XSD group).
DB table: PACE_MASTERDBO.STARSEC_GROUP_DETAIL
Available values of Actions and Values of Web Settings:
• CLOSEIEONLOGOFF (Close Client Browser on Log Off) – 1,0
• SHOWINACCESSIBLEACTIONS (Show Inaccessible Actions) – 1,0
• USERSESSIONSDEFAULTACCESS (Show “User Sessions”) – 1,0
• OPENMENUINNEWWINDOW (Open Menu in a New Window) – 1,0
• SHOW_SERVER_IP_IN_TITLE (Show Web Server in the Window Title) – 1,0
• SHOW_SERVER_STATUS (Show Web Server in the Windows Title) – 1,0
• MAXATTEMPTS (Maximum Unsuccessful Attempts Count) – 1,2,3…
• IDLETIME (Idle Period (in Minutes)) – 1,2,3…
• MINUSERNAMELENGTH (Minimum User Name Length) – 1,2,3…
Mapping to XSD fields – type Entitlement:
• RESOURCE_FIELD - <resource>
• PROPERTY_NAME - <action>
• PROPERTY_VALUE - <value>
Changes in XSD schema: added element value to the Entitlement.model group
Inbound rule: available UPDATE action of specified above Web Settings.
Outbound rules:
Feed type: USERENTITLEMENTEXTRACT.
Available filters: PropertyName (by Action), Common filter.
Both interfaces are supported on Oracle and MSSQL.
Example:
<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>USERENTITLEMENTEXTRACT</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">USERENTITLEMENT_10</correlationId>
<businessTaskId correlationIdScheme="businessTaskIdScheme">USERENTITLEMENTEXTRACT</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>USERENTITLEMENTEXTRACT</value>
</taskParameter>
<taskParameter>
<name>PropertyName</name>
<dataType>S</dataType>
<value>CLOSEIEONLOGOFF,SHOWINACCESSIBLEACTIONS,USERSESSIONSDEFAULTACCESS,OPENMENUINNEWWINDOW,SHOW_SERVER_IP_IN_TITLE,SHOW_SERVER_STATUS,MAXATTEMPTS,IDLETIME,MINUSERNAMELENGTH</value>
</taskParameter>
</taskParameters>
</EagleML>
Filed added: xml-user_entitlement.xml, extract_user_entitlement.xml, extract_user_entitlement.inc, t_user_entitlement_streaming.xml
Files changed: eagleml-user-shared-2-0.xsd, xml-user_objects.rsf, extracts.rsf, t_eagleml-2-0_streaming.rsf.
ESP-381 - EagleML - SOURCEEXTRACT - New extract from the PACE_MASTERDBO.INTERFACES table
Created a new outbound interface for the PACE_MASTERDBO.INTERFACES table. The Feedtype is named SOURCEEXTRACT.
The extract supports the following filters (task parameters):
sourcename
updatedate, fromdate, todate
sourceinstance
Example:
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequestSync" eaglemlType="RunTaskRequest" eaglemlVersion="2.0">
<header>
<messageId>CC59ADD40E1E069</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>
</header>
<taskIdentifier>
<correlationId>AC_SOURCEEXTRACT_28</correlationId>
<businessTaskId>AC_SOURCEEXTRACT</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>SOURCEEXTRACT</value>
</taskParameter>
</taskParameters>
</EagleML>
ESP-384 - Corrected issue with the updateSource field mapping in the xml-ref_loc_entity.xml rule
Additional logic was incorporated into the xml-ref_loc_entity.xml and xml-ref_loc_issuer.xml rules to correct mapping for the source name element. This incorrect mapping was causing failures on the LOC Entity loads if the source name element was included in the incoming message. In addition, the LOC Entity and LOC Issuer interfaces did not check to see if the FacilityID included exists.
To resolve, the mapping of sourceName parameter was revised along with a check introduced to determine if the value passed for the Facility Id exists in Database for the LOCEntity and LOC Issuer interfaces. Also, further improved the load procedure to use dynamically generated stored procedures instead of direct database calls
Files changed:
xml-ref_line_of_credit.xml
xml-ref_loc_entity.xml
xml-ref_loc_issuer.xml
ESP-394 and ESP-396 - Real-Time processing: Develop logic for RTR task parameters processing and realtime_task_reporter
A new approach for processing RTRs with embedded data was implemented. The major change is the introduction of RealTime Processing which eliminates the unnecessary creation of files on the back end. This opens up the potential to process all reference data in one straem as long as proper dependencies are observed.
In order to achieve this the new process consisting of two steps was developed:
RTR processor – This step receives the RTR message (in most of the cases reads them from queue) with base64 encoded archive data. The rules use the python utility processing and create from a single EagleML message, which contains all objects that are sorted in accordance with the generic loader dependencies. The process is sent to the second step using the ProcessInStream rule element.
This step uses the eagle_ml-2-0_default_in_xml_ref_no_split stream, the same as core stream eagle_ml-2-0_default_in_xml_reference, but with the splitting parameter set to No. This setting assures that within a single EagleML message (generated from the prior step), objects will be processed in the proper sequence. The trigger is then sent to the eagle_ml-2-0_default_cm_task_reporter stream.
The stream eagle_ml-2-0_default_cm_task_reporter was updated to be able to collect errors from messages based on the transaction id from each message instead of the processed files, because in the RealTime Processing approach, it does not work with files.
Rules Affected:
tpe\dynamic\msgcenter\eagle_default\in\xml\xml-create_tsr.xml
tpe\dynamic\msgcenter\eagle_default\in\xml\xml-ref_generic_ca.xml
tpe\dynamic\msgcenter\eagle_default\in\xml\xml-ref_issuevarrate.xml
tpe\dynamic\msgcenter\eagle_default\in\xml\xml-ref_objects.rsf
tpe\dynamic\msgcenter\eagle_default\in\xml\include\generic_smf_fields_logic.inc
tpe\dynamic\msgcenter\eagle_default\in\xml\include\reference_common_header_aliases.inc
tpe\dynamic\msgcenter\eagle_default\in\xml\include\set_transaction_id_content.inc
tpe\dynamic\msgcenter\eagle_default\in\xml\xslt\eagleml_smf_gen_fields.xsl
tpe\dynamic\msgcenter\eagle_default\include\collect_transation_ids.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\cm_checks.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\collect_task_parameters.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\reporter_dist.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\reporter_dist_methods.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\eagleml_load.xml
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\realtime_rtr.rsf
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\realtime_rtr.xml
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\runtaskrequest.xml
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\task_reporter.xml
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\task_reporter_gen_step_summary.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\task_reporter_gen_task_unit_realtime.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\task_reporter_generate_task_unit.inc
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\taskacknowledgement.xml
ESP-404: EagleML - XREFEXTRACT - incorporate the Asset Properties Model
To provide additional content on an opt-in basis, the Asset Properties Model was added to the XREFEXTRACT. The following fields have been added to XREFEXTRACT:
<issueDescription>
<investmentType>
<processingSecurityType>
<securityType>
<releaseStatus>
<issueCountryCode>
<couponTypeCode>
<smSettlementCurrency>
<smSecurityType>
<securityType2>
<securitySubType>
<maturityDate>
To enable this functionality, the user must include the IncludeAssetProperties parameter with a value of Y.
<taskParameter>
<name>IncludeAssetProperties</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
List of files changed:
eagle_ml-2-0_cm\out\tagvalue\extract_xref.inc
eagle_ml-2-0_cm\out\xml\t_xref_streaming.inc
eagle_ml-2-0_cm\out\xml\t_xref.xml
ESP-408 EagleML - Select/Insert/Update/Delete data for SECURITYDBO.FX_RATES_DEMAND, RULESDBO.PRICING_SYSTEM_SETTINGS and PACE_MASTERDBO.PACE_SYSTEM
3 inbound and outbound interfaces have been created for DB tables SECURITYDBO.FX_RATES_DEMAND, RULESDBO.PRICING_SYSTEM_SETTINGS and PACE_MASTERDBO.PACE_SYSTEM.
1. Interfaces for DB table SECURITYDBO.FX_RATES_DEMAND
XSD type: IssueFxRateDemand, Reference group
Inbound rule:
Available Insert, Update and Delete mode.
If specified element header/action = 'DELETE', the record will be deleted by set of fields SECURITY_ALIAS+SRC_INTFC_INST+FROM_SECALIAS+PERIOD
In other case record will be updated by the same key or inserted.
Outbound rules:
Feedtype: ISSUEFXRATEDEMANDEXTRACT
Available filters: Security, Held, Source, Date (by Update Date), Common.
Example
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<header xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<messageId>1XZ412A79763343423XZ</messageId>
<sentBy></sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_control_message</sendTo>
</header>
<taskIdentifier>
<correlationId>ESP-408-FXDEM_QRY_01</correlationId>
<businessTaskId>ESP-408-FXDEM_QRY</businessTaskId>
</taskIdentifier>
<synchronousexecution>no</synchronousexecution>
<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>ISSUEFXRATEDEMANDEXTRACT</value>
</taskParameter>
</taskParameters>
</EagleML>
2. Interfaces for DB table RULESDBO.PRICING_SYSTEM_SETTINGS
XSD type: PricingSystemSetting, Reference group
Inbound rule:
Available Insert, Update and Delete mode.
Data is inserted, updated and deleted to/from the main DB table PRICING_SYSTEM_SETTINGS and to/from history DB table PRICING_SYSTEM_SETTINGS_HIST.
If specified element header/action = 'DELETE', the record will be deleted by the field CODE.
In other case record will be updated by the same key (in the main table) and by set of fields CODE+VALUE (in the history table) or inserted.
Outbound rules:
Feedtype: PRICINGSYSSETTINGEXTRACT
Available filters: Date (by Update Date), Common, Code (by CODE DB field)
Example
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<header xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<messageId>1XZ412A79763343423XZ</messageId>
<sentBy></sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_ml-2-0_default_cm_control_message</sendTo>
</header>
<taskIdentifier>
<correlationId>ESP-408-QRY_PRICE_SYS_SET_${=import java.text.SimpleDateFormat ; new SimpleDateFormat("YYMMddHHmmssS").format(new Date())}</correlationId>
<businessTaskId>ESP-408-QRY_PRICE_SYS_SET</businessTaskId>
</taskIdentifier>
<synchronousexecution>yes</synchronousexecution>
<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>PRICINGSYSSETTINGEXTRACT</value>
</taskParameter>
</taskParameters>
</EagleML>
3. Interfaces for DB table PACE_MASTERDBO.PACE_SYSTEM
XSD type: PaceSystem, Reference group
Inbound rule:
Available Insert, Update and Delete mode.
If specified element header/action = 'DELETE', the record will be deleted by the field SYS_ITEM.
In other case record will be updated by the same key or inserted.
Outbound rules:
Feedtype: PACESYSEXTRACT
Available filters: Date (by Update Date), Common, Sysitem (by SYS_ITEM Db field)
Example
<EagleML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RunTaskRequest" eaglemlVersion="2-0" actualBuild="1" xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<header xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0">
<messageId>1XZ412A79763343423XZ</messageId>
<sentBy></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>2018-05-21T20:34:28</creationTimestamp>
</header>
<taskIdentifier>
<correlationId>ESP-408-QRY_10</correlationId>
<businessTaskId>ESP-408-QRY_PACE_SOURCE</businessTaskId>
</taskIdentifier>
<synchronousexecution>yes</synchronousexecution>
<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>PACESYSEXTRACT</value>
</taskParameter>
</taskParameters>
</EagleML>
All interfaces are supported on Oracle and MSSQL.
Rules added: xml-ref_fxratedemand.xml, xml-ref_pricingsystemsetting.xml, xml-ref_pacesystem.xml, extract_issue_fx_rate_demand.xml, extract_issue_fx_rate_demand.inc, extract_pricing_system_setting.xml, extract_pricing_system_setting.inc, extract_pace_system.xml, extract_pace_system.inc, t_issue_fx_rate_demand_streaming.xml, t_issue_fx_rate_demand_streaming.inc, t_pricing_system_setting_streaming.xml, t_pricing_system_setting_streaming.inc, extract_pace_system.xml, extract_pace_system.inc.
Rules changed: xml-ref_objects.rsf, extracts.rsf, t_eagleml-2-0_streaming.rsf, generate_sp_on_fly.inc.
ESP-410 Support Taxlot extension for data load/extract
Added a new rule to the eagle_ml-2-0_default_cm_w_setup stream. This rule has three different modes:
1. Convert IWS profile for an extension to the Meta Data extension
2. Generate Binds - for a specific FeedType or ALL objects
3. Generate stored procedure on the fly, for the extension table
At the moment these enhancements are only available for the WarehouseOpenLot feed. Automation will be added in the future, but for now there are a few manual steps:
1. Create extension in IWS
2. Send EagleML message to the eagle_ml-2-0_default_cm_w_setup stream, which will convert the extension profile into MetaExtension files:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
<header>
<messageId messageIdScheme="http://www.eagleinvsys.com/coding-scheme/message-id-2-0">GenerateExtMetaData</messageId>
<sentBy>MTADMIN</sentBy>
<creationTimestamp/>
</header>
<referenceTransaction>
<header>
<objectType>WarehouseOpenLot</objectType>
<action>GenerateExtMetaData</action>
</header>
</referenceTransaction>
</EagleML>
3. Send EagleML message to the eagle_ml-2-0_default_cm_w_setup stream, which will create an SP for the extension table:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
<header>
<messageId messageIdScheme="http://www.eagleinvsys.com/coding-scheme/message-id-2-0">GenerateExtMetaData</messageId>
<sentBy>MTADMIN</sentBy>
<creationTimestamp/>
</header>
<referenceTransaction>
<header>
<objectType>WarehouseOpenLot</objectType>
<action>GenerateExtStoredProcedure</action>
</header>
</referenceTransaction>
</EagleML>
4. Restart all Message Center instances.
Files changed:
Rules:
w_setup_eagle_version.xml
w_setup_dynamic_objects.xml
Include:
call_eagleml2csv_tool.inc
generate_sp_on_fly.inc
setup_bind.inc
Jar File:
transform2csv.jar
ESP-411: Support General Ledger extension for data load/extract
Support for loading and extracting Warehouse GL Balance with extension fields was added.
Files changed:
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
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\dbkeysmap.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\t_warehouse_gl_detail_posting_streaming.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\tagvalue\extract_warehouse_gl_detail_posting.inc
ESP-412: Support FX extension for data load/extract
Support for loading and extracting IssueFxRate objects with extension fields was added.
Files changed:
estar\tpe\dynamic\msgcenter\eagle_default\in\xml\xml-ref_fxrate.xml
estar\tpe\dynamic\msgcenter\eagle_default\in\xml\include\custom_fields.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\xml\extract_issue_fx_rate.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\out\tagvalue\t_issue_fx_rate_streaming.inc
estar\tpe\dynamic\msgcenter\eagle_ml-2-0_cm\dbkeysmap.inc
ESP-432 EJM shortening the processing file name during inbound processing
When the "-" was included in the filename without timestamp information at the end of the file, the filename was truncated.
This issue has been resolved by renaming the file within the exec_ndfa stream. Modified the read_datamaps.inc and improved support for replacing date timestamp.
ESP-433 Improve the delete functionality for the IssuerRole interface
Added support within the IssuerRole interface to be able to delete multiple records at a time.
Introduced the following rules:
xml-ref_delete.xml
Created the following rules:
ref_issuerrole_delete_aliases.inc
ref_issuerrole_delete.inc
Modified the xml-ref_objects.rsf rule to utilize the new rules.
In order to delete records, the EagleML/referenceTransaction/header/action tag must be set to DELETE.
Example:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
<referenceTransaction>
<header>
<objectType>IssuerRole</objectType>
<action>DELETE</action>
</header>
<issuerRole>
<objectType>IssuerRole</objectType>
<objectId>IssuerRole</objectId>
<sourceName>EAGLE PACE</sourceName>
<updateSource>MCADMIN</updateSource>
<effectiveDate>2014-11-17</effectiveDate>
<noLoadValidationFlag>N</noLoadValidationFlag>
<accountingValidationFlag>N</accountingValidationFlag>
<primaryAssetId>ESP433_SMF</primaryAssetId>
<primaryAssetType>INTERNAL</primaryAssetType>
<issueName>ESP433_SMF NAME</issueName>
<issueDescription>ESP433_SMF DESC</issueDescription>
<primaryExchange>US</primaryExchange>
<primaryExchangeCode>US</primaryExchangeCode>
<assetCurrency>USD</assetCurrency>
<issuerId>ESP433_ISORG_ID</issuerId>
<issuerName>ESP433_ISORG_NAME</issuerName>
<roleType>P</roleType>
<startDate>2014-11-17</startDate>
<endDate>2014-12-17</endDate>
<percentOwned>622.432</percentOwned>
<irdUpdateDate>2014-11-23</irdUpdateDate>
<irdChar1>Comment</irdChar1>
</issuerRole>
</referenceTransaction>
</EagleML>
ESP-444: Add mask and translator for Warehouse Cash Activity and Cancel Cash Activity objects in XMLDBAPI format to the eagle_wrf_generic_load workflow
A translator and translator mask were added for the Warehouse Cash Activity and Cancel Cash Activity object into the eagle_wrf_generic_load workflow and routed to the eagle_ml-2-0_default_in_xml_warehouse .xml in order to be loaded via xmldbapi.
List of files changed:
• /eis/ejmwf/eagle_wrf_generic_load.ejmwf
• /eis/ejmwf/eagle_wrf_generic_load_warehouse_objects.ejmwf
ESP-450:Correct XSD schema for the GENCORPACTIONSEXTRACT
XSD validation for theGENCORPACTIONSEXTRACT was producing an error during validation. The transType value SINKSCHED was invalid against the XSD. There were several values identified in the transtype element that were used in the rules, but were not present in the current XSD.
The values SINKSCHED, CREDITEVENT, CASHDIV, ADDPUT, ADDCALL, TENDER, EXCHANGE, ACORPACTION, DIVREINVEST, ASSIMILATION, ADDFACTOR, SHARECASHTENDER, BSSB, UNITSEP, NOMINAL, PREREFUNDING and REDENOMINATION were added to the CATransTypeEnum in eagleml-enum-2-0.xsd
File changed:
eagleml-enum-2-0.xsd
ESP-451: Correct XSD schema for the WRHSTRADEEXTRACT
The WRHSTRADEEXTRACT was failing the validation against the XSD. Analysis revealed that the elements in the result extracts had improper data types.
A new custom element type, named DateOrDateTime, was created to support values of the atomic types [xs-date] and [xs-dateTime].
File changed:
eagleml-wh-shared-2-0.xsd
ESP-452:Correct XSD schema for the SMFEXTRACT
SMF records containing gicsSector elements were failing validation against the XSD due to an incorrect ordering of elements in the rule files.
The order of the PRIVATE_REGISTRATION_RIGHTS and EQ_CALL_PUT_FLAG elements was switched in the ‘t_smf.xml’, ‘t_smf_streaming.inc’, and ‘t_smf_streaming_eml.inc’ rules to conform to their order in the XSD.
Files changed:
t_smf.xml
t_smf_streaming.inc
t_smf_streaming_eml.inc
ESP-453 Create a new stream for XSD validation
Created a new validation stream for XSD validation, eagle_ml-2-0_default_cm_validate_by_xsd.
Features include:
Windows support
Error handling when the incorrect path is used for XSD or for data location
Error description messages in the TSR
Files changed:
eagle_default_cm_validation_by_xsd.xml
validation_by_xsd.inc
ESP-831 Improve the delete functionality for the GenericSMF and MultilegSMF interfaces
Support for deleting multiple GenericSMF and MulitlegSMF records through the eagle_ml-2-0_default_in_xml_smf_generic stream was added.
The following rules were created:
xml-smf_delete.xml
parse_security_xrefs.inc
smf_genericsmf_delete.inc
smf_multileg_delete.inc
We changed:
xml-smf_generic_objects.rsf
To delete records the EagleML/referenceTransaction/header/action tag has to have a value of 'DELETE'.
Example:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
<referenceTransaction>
<header>
<action>DELETE</action>
<objectType>GenericSMF</objectType>
</header>
<genericSMF>
<objectType>GenericSMF</objectType>
<objectId>GenericSMF</objectId>
<objectDescription>SMF</objectDescription>
<sourceName>EAGLE PACE</sourceName>
<updateSource>AFASTOVICH</updateSource>
<effectiveDate>2014-11-22</effectiveDate>
<accountingValidationFlag>Y</accountingValidationFlag>
<issueName>ESP831_SWP1 NAME</issueName>
<primaryAssetId>ESP831_SWP1</primaryAssetId>
<primaryAssetType>INTERNAL</primaryAssetType>
<xrefIdentifiers>
<xId>
<xId>ESP831_SWP1xId</xId>
<xIdType>SWPXTYPE1</xIdType>
</xId>
</xrefIdentifiers>
<primaryExchangeCode>ALL</primaryExchangeCode>
<assetCurrency>USD</assetCurrency>
<investmentType>FI</investmentType>
<processingSecurityType>SWCDCO</processingSecurityType>
<securityType>ABS</securityType>
<settlementCurrency>USD</settlementCurrency>
<incomeCurrency>USD</incomeCurrency>
<quantityType>PAR</quantityType>
<priceMultiplier>0.01</priceMultiplier>
<quantityScale>1</quantityScale>
<issueCountryCode>US</issueCountryCode>
<issueTaxType>ALL</issueTaxType>
<maturityDate>2033-11-30</maturityDate>
<tradingFlat>N</tradingFlat>
<optiondescr>B</optiondescr>
<FixedIncomeModel>
<coupon>2</coupon>
<couponTypeCode>F</couponTypeCode>
<dayCountBasis>30/360</dayCountBasis>
<paymentFrequencyCode>MAT</paymentFrequencyCode>
<issuePrice>100</issuePrice>
<issueDate>2014-11-04</issueDate>
<datedDate>2014-11-04</datedDate>
<firstCouponDate>2033-11-30</firstCouponDate>
<lastCouponDate>2033-11-30</lastCouponDate>
<maturityPrice>0</maturityPrice>
<sinkFundIndicator>N</sinkFundIndicator>
<delayDays>14</delayDays>
<floaterFlag>N</floaterFlag>
</FixedIncomeModel>
</genericSMF>
</referenceTransaction>
</EagleML>
ESP-833 Improve the delete functionality for the IssuerOrganization interface
Added support within the IssueOrganization interface to be able to delete multiple records at a time.
Introduced the following rules:
xml-ref_delete.xml
parse_issuer_xref.inc
ref_issuerorganization_delete.inc
Modified the xml-ref_objects.rsf rule to utilize the new rules.
In order to delete records, the EagleML/referenceTransaction/header/action tag must be to DELETE.
Example:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" eaglemlVersion="2-0" eaglemlType="ReferenceTransactionMessage" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0eagleml-main-2-0.xsd" xsi:type="ReferenceTransactionMessage">
<header>
<sentBy>http://www.eagleinvsys.com/</sentBy>
</header>
<referenceTransaction>
<header>
<objectType>IssuerOrganization</objectType>
<action>DELETE</action>
</header>
<issuerOrganization>
<objectType>IssuerOrganization</objectType>
<objectId>IssuerOrganization</objectId>
<objectDescription>IssuerOrganization</objectDescription>
<updateTimestamp>2018-03-05T13:15:21</updateTimestamp>
<sourceName>EAGLE PACE</sourceName>
<updateSource>MCADMIN</updateSource>
<effectiveDate>2018-03-09</effectiveDate>
<issuerId>ESP833_1</issuerId>
<issuerName>ESP833_1 NAME</issuerName>
<countryOfIncorporationCode>US</countryOfIncorporationCode>
<currency>USD</currency>
</issuerOrganization>
</referenceTransaction>
</EagleML>
ESP-855: Adjust switch DERIVE_OPT_PST to populate ProcessingSecurityType for Options
There was previously no logic that would allow derivation of the processing security types for options.
The DERIVE_OPT_PST switch was utilized to create the W_GENERICCMF_DERIVE_OPT_PST parameter. When this is set to a value of "Y" the following logic will be applied:
if <processingSecurityType> for Underlying SMF starts with “DB” - for the main SMF tag 3931 should become OPOPDB;
if <processingSecurityType> for Underlying SMF starts with “IN” - for the main SMF tag 3931 should become OPOPIX;
if <processingSecurityType> for Underlying SMF starts with “FT” - for the main SMF tag 3931 should become OPOPCM;
if <processingSecurityType> for Underlying SMF starts with “EQ” - for the main SMF tag 3931 should become OPOPEQ;
This functionality is only available when <accountingValidationFlag> = N.
List of files changed:
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/include/smf_core_mapping_tmp.inc
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/include/smf_derive_opt.inc
eagle/estar/tpe/dynamic/msgcenter/eagle_default/in/xml/include/underlying_smf_ins_upd.inc
ESP-858 Enable a conditional parameter to manage the routing for splitting and processing for the Generic Loader Workflow
When the RealTime RTR processing stream receives an RTR there is now an option to resend that RTR to the eagle_ml-2-0_default_cm_control_message stream.
To turn on this option the W_RESEND_TO_REQUEST_STREAM variable should be added to the w_config_custom.inc with the desired value.
Example: <CODE>:W_RESEND_TO_REQUEST_STREAM: :='EXPR#iif(Find(\5C3AIN_MESSAGE\5C3A,\'<value>some_workflow_name</value>\')\5C21=-1,\'Y\',\'N\')'; </CODE>
Rule affected:
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\realtime_rtr.xml
ESP-859 Enable a new RTR parameter to make the ACK generation conditional during the generic load workflow
To improve real time processing, a task parameter was introduced to control the ACK generation. The EnableACKSwitch now allows control within an RTR to return an ACK. When the EnableACKSwitch is Y or omitted then the ACK will be produced. If theEnableACKSwitch = N, the ACK will not be sent.
<taskParameter>
<name>EnableACKSwitch</name>
<dataType>S</dataType>
<value>N</value>
</taskParameter>
Rule affected:
tpe\dynamic\msgcenter\eagle_ml-2-0_cm\in\xml\realtime_rtr.xml
ESP-860 Add Split Rule to Entity
A split key was added to the inbound entity interface for cases when HistoryMode = "N". The split key expression is the concatenation of the entityId and effectiveDate fields.
Simultaneously loading sever GenericEntity objects with the same entity id would create errors in the journaling step in the stored procedure. The addition of the split key mitigates these errors.
ESP-872 Entity Extension - insert/update logic not matching entity core logic
Previously entity extension fields with blank values would override already populated non-blank values in the database.
Logic was changed to allow skipping the update of such fields that already have a value populated in the database but do not have any value for the same field present in the incoming message.
ESP-987 Include Tag 1418 - nra_tax_country into the EagleML Security Resolution
Incorporated thenra_tax_country as an option for security resolution.
The following rules were modified.
match_all_new_record_check.inc
match_all_sec_resolution.inc
security_resolution_generic.inc
ESP-989: WarehousePerfomance records failed to load with statusFlag = F
Errors were noticed when loading warehouse performance records outside of batch mode and with statusFlag and reloadFinalFlag both set to "Y". These errors were being caused by the roll-up since this functionality is only available in batch mode.
Logic was changed for when this load is executed with the statusFlag and reloadFinalFlag both set to "Y". Now this load will only be executed in batch mode.
File changed:
xml-dbdirect_common.inc
ESP-998 Problem after changes in ndfa stream in Feb 2018 EagleML release
Code was changed to truncate file names that had no GUID prefix whose length exceeded 17 characters.
The logic for renaming files was changed. A new fileGUID parameter was added to the ndfa.prf file and corrected renaming conventions were added to the read_datamaps.inc file.
ESP-1005: Eliminate duplicate mapping for the legalName node in the xml-ent_entitygeneric.xml
Entity records contain two references to the same database field. These have different paths: legalName and legalEntityId\legalName. Previously if one of these nodes was left blank the RULESDBO.ENTITY.LEGAL_NAME would not be populated.
New logic was added that allows the inbound entity record to have no value in the leaglEntityId\legalName node and still load the value from the legalName root node to the database.
Files changed:
xml-ent_entitygeneric.xml
eagleml_entity.xml
ESP-1023 Write of the Task Status Response (TSR) failing during FTP distribution with a success status displayed in EJM
When the FTP delivery method was used for the reply message in the Task Status Response (TSR), the TSR was failing, but reflecting success in EJM. Updated the underlying logic to display a status of Failed if the TSR distribution also fails.
Modified the reporter_dist_methods.inc to include new parameters. Added the parameters varDistributionErrors and varDistributionStatus for the FTP method. The variables are set during the distribution step in the reporter_dist.inc file. After the distribution step is completed, the task reporter rule evaluates the distribution status. If the distribution fails, the task reporter modifies the TSR message (setting the status to FAILED and adds the error description) and updates the overall task status to "FAILED". The w_ignore_distribution_errors parameter should be set to 1 to disable this feature (by default the parameter is undefined) in the "w_config_custom.inc".
ESP1035 W_CREATE_UNDERLYING should work for SMF MI stream and be able to prevent underlying shell security creation
The SMF MI stream was not preventing the creation of underlying shell security records even when the W_CREATE_UNDERLYING parameter was set to "N".
The logic for creating underlying shell records was moved from the SMF MI stream to the generic SMF stream. This stream already had support for the W_CREATE_UNDERLYING_FLAG and would skip creation if the parameter was set to a value of "N".
Files changed:
smf_core_mapping_tmp.inc
smf_egl_gen_interface_template.xsl
smf_egl_gen_interface_template_mssql.xsl
underlying_link_ins_upd.inc
underlying_smf_ins_upd.inc
xml-smf_generic_batch.prf
eagleml_smf.xsl
ESP-1056 - Performance Improvements for the EagleML - SMFEXTRACT when the historyonlyflag passed with a Source filter
Improved the logic within the Generic SMF extract when the historyonlyflag set to Y and a source or sources included.
<taskParameter>
<name>historyonlyflag</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
<taskParameter>
<name>datasources</name>
<dataType>S</dataType>
<value>EAGLE PACE,STARDIRECT</value>
</taskParameter>
The original logic was updated:
Original Logic:
FROM SECURITYDBO.SECMASTER_HISTORY SECMASTER_HISTORY,
...
WHERE (1=1)
...
AND EXISTS (SELECT I.SHORT_DESC
FROM PACE_MASTERDBO.INTERFACES I
WHERE I.INSTANCE = SECMASTER_HISTORY.SRC_INTFC_INST
AND TRIM(I.SHORT_DESC) IN ('EAGLE PACE','STARDIRECT'))
Updated logic:
FROM SECURITYDBO.SECMASTER_HISTORY SECMASTER_HISTORY,
PACE_MASTERDBO.INTERFACES INTERFACES,
...
WHERE (1=1)
AND SECMASTER_HISTORY.SRC_INTFC_INST = INTERFACES.INSTANCE(+)
...
AND SECMASTER_HISTORY.SRC_INTFC_INST in (:1,:2)
Files changed:
- extract_smf.inc
- extract_filter_sources.inc
ESP-1180 Regression - The Extract file name in the TSR intermittently not matching the actual name of the extract file created when the ExtractNamePatternEx task parameter uses the @DateTimeStamp
When applying the ExtractNamePatternEx parameter (e.g. SMPL_EML_@FeedType_@DateTimeStamp_@CorrelationID_@RecordCount.xml), the extract file name created in the Extract file name in the TSR did not match at times the actual name of the extract file.
<taskParameter>
<name>ExtractNamePatternEx</name>
<dataType>S</dataType>
<value>SMPL_EML_@FeedType_@DateTimeStamp_@CorrelationID_@RecordCount.xml</value>
</taskParameter>
The modification was to update the extract_eofw.inc file by removing duplicate code that was managing the transformation of the extract file name
ESP 1181: Issuer Role non-parametrized select in eagle_ml-2-0_default_in_xml_reference stream
IssuerRole objects received an increase in performance.
The select for this interface was not utilizing bind parameters, causing it to not execute as fast as it could if it did use them.
Once the bind parameters were added, a significant performance improvment was noted.
ESP-1192 Support additional columns in the XSD for pricing and pricing center
Updated the XSD to support new fields in the SECURITYDBO.PRICE and SECURITYDBO.PRICE_EXCHANGE tables.
The following elements have been added to the IssuePrice.model (included to IssuePrice and ExchangePrice XSD complex types):
percentChange1m
percentChange3m
percentChange6m
percentChange1yr
percentChangeWtd
percentChangeMtd
percentChangeQtd
percentChangeYtd
pxDirtyClean
pxSettle
pxSettleLastDate
quotedSpec
File changed: eagleml-ref-shared-2-0.xsd
ESP-1193 Update the analytics XSD to reflect additional elements
Additional fields have been introduced into the analytics functionality. The new fields incorporated into the SECURITYDBO.SECURITY_ANALYTICS_FI, SECURITYDBO.SECURITY_ANALYTICS_DERV and SECURITYDBO.SECURITY_ANALYTICS_EXT DB tables have been added to the XSD schema.
The following elements have been added to the AnalyticFI.model (included in the GenericIsueAnalyticModel.model group):
dv01Bid
dv01Ask
dv01Mid
sdv01Bid
sdv01Ask
sdv01Mid
dv100Bid
dv100Ask
dv100Mid
2. The group AnalyticDerv.model has been added to the schema and to the complex type AnalyticDervModel with the following elements:
deltaBid
deltaAsk
deltaMid
deltaLast
gammaBid
gammaAsk
gammaMid
gammaLast
vegaBid
vegaAsk
vegaMid
vegaLast
impliedVolatility
impliedVolatilityBid
impliedVolatilityAsk
impliedVolatilityMid
impliedVolatilityLast
intrinsicValue
tradeMatchVolatilityPrice
theoreticalValue
optionUndNotionallRisk
optionBeyRisk
optionPointValue
daysToExpiration
ctdBeyRisk
financeRate
financeRateCurrency
3. The group AnalyticExt.model has been added to the schema and to the complex type AnalyticExtModel with the following elements:
roundLotSize
priceToCashFlow
tradeLotSize
sortinoRatio
abbrevTradingPeriod
averageVolume5d
averageVolume20d
interpolYieldSpread
interpolYieldSpreadGovt
zBasisConstMaturity
assetSwapSpread
ytmBid
ytmAsk
ytmMid
pricePositionMultiplier
maxDrawdownLength
maxDrawdownPercent
dvdYield12m
peRatioEst
epsLtg
downsideRisk
totalVotingShares
totalNonVotingShares
4. Created the analyticDervModel to include the complex type AnalyticDervModel and analyticExtModel of complex type AnalyticExtModel. These elements have been added to the GenericIssueAnalyticModel.model.
The group GenericIssueAnalyticModel.model is included in the GenericIssueAnalytic complex type.
Files changed: eagleml-ref-2-0.xsd, eagleml-ref-shared-2-0.xsd, eagleml-shared-2-0.xsd.