EagleML Release Notes - March 2021
Enhancements:
SDP-47654 Revised the PRICINGREPORTEXTRACT to set the pricePercentChange to 0 when the price and priorPrice are both 0
The PRICINGREPORTEXTRACT sources data from multiple tables including the Position Detail, Portfolio Valuation and Pricing tables. When the portfolio valuation process is executed, there are instances where the PRICE from the Position_Detail and the Prior Price are both 0 where the pricePercentChange reflects as 100.
Isolated to the PRICINGREPORTEXTRACT only, when the prior price and the price are both set to 0, the pricePercentChange will be set to 0. No additional parameters are required as this will be the default behavior.
Files changed:
eagle_ml-2-0_cm/out/tagvalue/extract_pricing_report.inc
SDP-47602 The mapping for the amountIssued element was corrected
The Amount Issued value was not populated to the corresponding database field in the Accounting mode when the accountingValidationFlag was passed with a value of Y to process through the panels. The mapping was corrected and the issue was fixed as the value was being nullified prior to submission as the same value is used when processing buy sell back securities. The change evaulates if the amountIssued field is populated and when populated, this value is used else the notionalAmount is applied when included..
SECURITYDBO.FIXED_INCOME.ISSUE_AMOUNT – Tag 1537
Xpath:
EagleML/referenceTransaction/genericSMF/FixedIncomeModel/amountIssued
Files changed:
eagle_default/in/xml/include/bssbsmf_model.inc
SDP-47477 The EntityToEntity interface was improved to support the database table RULESDBO.ENTITY_DETAIL_HISTORY on Update
The existing logic of the EntityToEntity interface was improved to support the database table RULESDBO.ENTITY_DETAIL_HISTORY on an Update.
To enable additional logic allowing data updates in the history table, the submitOptionFlag was introduced as part of the incoming file:
<submitOptionFlag>H</submitOptionFlag>
Without the flag (by default), the prior logic is in place, and only the database table RULESDBO.ENTITY_DETAIL will be updated.
The file changed is:
eagle_default/in/xml/xml-ent_entitytoentity.xml
SDP-47417 The Realized Gain Loss Extract was improved
The REALIZEDGAINLOSSEXTRACT was adjusted to be in sync with the core Stored Procedure RPT_DISP_LOTS_NSRP by supporting an additional parameter - in_inc_exc_writedowns.
A new RTR parameter, includewritedowns, was added. The default value is set to Y.
Usage:
<taskParameter>
<name>includewritedowns</name>
<dataType>S</dataType>
<value>Y</value>
</taskParameter>
File changed:
eagle_ml-2-0_cm/out/tagvalue/extract_acct_realized_gain_loss.inc
SDP-46940 The Resolution Service was enhanced
The definition of the Asset Resolution and Entity Resolution was updated.
The list of the Asset Resolution options have been updated. Supported options are:
eagle-resolution:assetMatchFirst (code value = MATCH_ITER, 1st Match, specified in the assetResolutionOption element)
eagle-resolution:assetMatchAll (code value = MATCH_ALL, specified in the assetResolutionOption element)
eagle-resolution:assetAll (code value = ALL, specified in assetResolutionOption element)
eagle-resolution:assetCurrency (code value = ASSET_CURRENCY, option element = assetCurrency, specified in the assetResolutionOption element)
eagle-resolution:xrefExchange (code value = XREF_EXCHANGE, option element = primaryExchangeCode, specified in the assetResolutionOption element)
eagle-resolution:nraTaxCountry (code value = NRA_TAX_COUNTRY, option element = issueCountryCode, specified in the assetResolutionOption element)
eagle-resolution:maturityDate (code value = MATURITY_DATE, option element = maturityDate, specified in the assetResolutionOption element)
eagle-resolution:assetBattingOrder (option element = battingOrder)
Example of the Asset option description:
{
"@id": "eagle-resolution:xrefExchange",
"@type": "eagle-resolution:Option",
"eagle-resolution:hasOptionElement": {
"@id": "eagle-vocab:primaryExchangeCode"
},
"eagle-resolution:hasOptionCode": {
"eagle-resolution:hasOptionCodeElement": {
"@id": "eagle-vocab:assetResolutionOption"
},
"eagle-resolution:hasCodeValue": "XREF_EXCHANGE",
"eagle-resolution:hasOptionName": "xrefExchange"
},
"rdfs:label": "xref exchange option"
},
The list of Entity Resolution options have been updated. Supported options:
eagle-resolution:entityBattingOrder (option element = entityBattingOrder)
eagle-resolution:entityXrefMap (option element = entityXrefMap)
Example of Entity option description:
{
"@id": "eagle-resolution:entityBattingOrder",
"@type": "eagle-resolution:Option",
"eagle-resolution:hasOptionElement": {
"@id": "eagle-vocab:entityBattingOrder"
},
"eagle-resolution:hasOptionCode": {
"eagle-resolution:hasOptionName": "battingOrder"
},
"rdfs:label": "entity batting order"
},
Files changed:
metadata/core/ontology/eagle-resolution.json
SDP-46709 The Asset Resolution Service was enhanced to support the Xref Exchange option
The Xref Exchange option has been added to Resolution Service for Asset. The option works the same way as the Xref Exchange option in MC rules:
If the incoming element <assetResolutionOption> contains 'XREF_EXCHANGE', and <primaryExchangeCode> element is present in an incoming message, then the Security Alias is resolved by the Security Xreference identifiers + Xref Exchange (DB field SECURITYDBO.XREFERENCE.EXCHANGE).
If the incoming element <assetResolutionOption> contains 'XREF_EXCHANGE,ASSET_CURRENCY', Xref Exchange option is combined with the option Asset Currency. In this case, the Security Alias is resolved by the Xreference identifiers + Xref Exchange + Asset Currency.
Example:
<assetResolutionOption>XREF_EXCHANGE</assetResolutionOption><primaryExchangeCode>ALL</primaryExchangeCode>
Files changed:
metadata/core/ebs/defaultassetresolutionservice.json
metadata/core/ebs/resolution_service_all_identifiers.json
SDP-46708 Option Asset Currency has been added to Resolution Service for Asset
The Asset Currency option has been added to the Resolution Service for Asset.
The option works the same way as the Asset Currency option in the MC rules:
If an incoming element, <assetResolutionOption>, contains 'ASSET_CURRENCY' and the <assetCurrency> element is present in an incoming message, then the Security Alias is resolved by the Security Xreference identifiers + Asset Currency (DB field SECURITYDBO.SECURITY_MASTER.CURRENCY_CODE).
Example:
<assetResolutionOption>ASSET_CURRENCY</assetResolutionOption>
<assetCurrency>USD</assetCurrency>
SDP-46308 The EDS Load and Extract exchangeprice interface
As part of the EagleML modernization effort, the EDS Load and Extract exchangeprice interface is now available as a metadata-driven interface.
Use the eagle_ml-2-0_default_cm_exec_eds stream to trigger the load via the Control Message.
In-flow EDS resource “exchangeprice” utilizes the same stored procedures as the corresponding EagleML exchangePrice object:
ESTAR.INS_UPD_PRICE_EXCHANGE to insert price records
PACE_MASTERDBO.PRICING_PACE.PRICE_UPLOAD to update the status of the specific price
Please note that:
priceExchangeCode is a required element in the incoming message.
The extended update option is currently not supported for compatibility within all v17.R2.x versions.
RTR example:
<EagleML xmlns:ns2="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ml="http://www.eagleinvsys.com/2011/wsdl/EagleML-2-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:RunTaskRequest"
eaglemlVersion="2.0" eaglemlType="RunTaskRequest">
<header>
<messageId>2R4PSASHHDABVISK6</messageId>
<sentBy><http://www.eagleinvsys.com/eqlrest</sentBy>>
<sendTo><http://www.eagleinvsys.com/eagle_default_ruleservice</sendTo>>
<replyTo><http://www.eagleinvsys.com/eqlrest</replyTo>>
</header>
<taskIdentifier>
<correlationId>exchangeprice_in</correlationId>
<businessTaskId>exchangeprice_in</businessTaskId>
</taskIdentifier>
<taskTypeEnum>NEW</taskTypeEnum>
<taskParameters>
<taskParameter>
<name>ServiceName</name>
<dataType>S</dataType>
<value>EBS</value>
</taskParameter>
<taskParameter>
<name>ServiceMethodName</name>
<dataType>S</dataType>
<value>load</value>
</taskParameter>
<taskParameter>
<name>ResourceName</name>
<value>exchangeprice</value>
</taskParameter>
<taskParameter>
<name>inFileName</name>
<value>load_func_test/data_exchangeprice_1.xml</value>
</taskParameter>
</taskParameters>
</EagleML>
The extract is also supported, the Out-flow exchangeprice EDS resource:
Supported filters:
toeffectivedate
fromeffectivedate
effectivedate
sourcename
todate
fromdate
processingsecuritytype
securitytype
investmenttype
securityalias
releasestatus
primaryassetid
xrefid
ticker
securitysubtype
RTR 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>E30X5FTN4N317JFF</messageId>
<sentBy>MC2EJM</sentBy>
<sendTo><http://www.eagleinvsys.com/eagle_default_ruleservice</sendTo>>
<creationTimestamp>2018-04-13T09:52:39.73-05:00</creationTimestamp>
<expiryTimestamp/>
<expiryLoadFlag/>
</header>
<taskIdentifier>
<processingSequenceNumber/>
<correlationId>exchangeprice_extract</correlationId>
<businessTaskId>exchangeprice_extract</businessTaskId>
<sequenceNumber/>
</taskIdentifier>
<taskTypeEnum>NEW</taskTypeEnum>
<synchronousExecution>yes</synchronousExecution>
<taskParameters>
<taskParameter>
<name>ServiceName</name>
<value>EBS</value>
</taskParameter>
<taskParameter>
<name>ServiceMethodName</name>
<dataType>S</dataType>
<value>extract</value>
</taskParameter>
<taskParameter>
<name>ResourceName</name>
<value>exchangeprice</value>
</taskParameter>
</taskParameters>
</EagleML>
Files added:
ontology/reference/exchangeprice.json
ontology/reference/exchangeprice-models.json
ontology/reference/exchangeprice_in.json
sql/eagle_ref_exchangeprice_insertupdate.txt
Files changed:
ontology/definition/eagle-vocab-definition-ref-shared.json
ontology/eagle-vocab-enumerations.json
ontology/eagle-vocab-ref-shared.json
ontology/eagle-vocab-shared.json
eagle_ml-2-0_cm/generate_sp_on_fly.inc
SDP-45724 The GenericSMF Inbound and Outbound Interfaces were enriched to support additional MBS Elements
The Accounting GenericSMF Interface did not load all the MBS fields via the eagle/star/reference/pan-addsecmastermbs.htm due to missed mapping in the panel.
All necessary MBS tags were added in the FORCEADDTAGS parameter to load them directly via the rules.
The GenericSMF Inbound Interface was also updated to support two additional fields for the Load and Extract:
SECURITYDBO.MBS.UMBS_LEGACY_POOL_NUMBER - Tag 17545
SECURITYDBO.MBS.UMBS_LEGACY_POOL_CUSIP – Tag 17546
This change works in tandem for the Accounting Model effective with the core v17.R2.26 Release.
Xpath:
EagleML/referenceTransaction/genericSMF/MBSModel/umbsLegacyPoolIdentifier
EagleML/referenceTransaction/genericSMF/MBSModel/umbsLegacyPoolCusip
Files changed:
eagle_default/in/xml/include/smf_panels.inc
eagle_default/in/xml/include/smf_aliases.inc
eagle_default/in/xml/include/mbs_model.inc
eagle_default/in/xml/include/mbs_extension.inc
eagle_default/in/xml/xslt/smf_egl_gen_interface_template.xsl
eagle_default/in/xml/xslt/smf_egl_gen_interface_template_mssql.xsl
eagle_ml-2-0_cm/out/xml/t_smf.xml
eagle_ml-2-0_cm/out/xml/t_smf_streaming.inc
eagle_ml-2-0_cm/out/xml/t_smf_streaming_eml.inc
SDP-45651 Modified EDS code to set a single row transaction in the processing rules for reference resources
Updated the core code to set single row transaction processing by default for all reference resources.
Files changed:
src/eagleinvsys/rdf_metadata/rdf_meta_utils.py
SDP-44550 The EDS Load codevalue resource
The EDS Load codevalue is now available as a metadata-driven interface as part of the EagleML modernization effort.
The load and extract of long descriptions for code values is now supported, for up to 255 characters with multilingual options.
The implemented solution reused the existing code-value translation database table PACE_MASTERDBO.EGL_GENERIC_XLATION_ML.
Before upload, the desired language ID should be set up in the database PACE_MASTERDBO.EGL _LANGUAGES.
To upload a long Code Value Description, it is necessary to specify the language id in the incoming data file.
For instance, the languageId set to 0 is aligned to the English language: <languageId>0</languageId>
If the languageId provided in the file does not exist in the database, then an exception error will be thrown upon load/update.
If the languageId is not specified in the incoming file for a new code value record, then it will be loaded as previously, with a 50-symbol restriction for the codeValueDescription field/LONG_DESC.
If the language Id is not specified in the incoming file, but an incoming code value record already exists in the database with a defined language id, then it could be possible to upload a long Code Value Description, up to 255 symbols in length.
The Long Code Value Description is fully stored in the PACE_MASTERDBO.EGL_GENERIC_XLATION_ML.DESCRIPTION field, and the first 50 symbols from the Long Code Value Description value is stored in the PACE_MASTERDBO.CODE_VALUES.LONG_DESC database field.
The extract of the long Code Value Description, if one exists, is supported by default.
Use the eagle_ml-2-0_default_cm_exec_eds stream to trigger the load via the Control Message:
<EagleML xmlns:ns2="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ml="http://www.eagleinvsys.com/2011/wsdl/EagleML-2-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:RunTaskRequest"
eaglemlVersion="2.0" eaglemlType="RunTaskRequest">
<header>
<messageId>2R4PSASHHDABVISK6</messageId>
<sentBy>http://www.eagleinvsys.com/eqlrest</sentBy>
<sendTo>http://www.eagleinvsys.com/eagle_default_ruleservice</sendTo>
<replyTo>http://www.eagleinvsys.com/eqlrest</replyTo>
</header>
<taskIdentifier>
<correlationId>codevalue_in</correlationId>
<businessTaskId>codevalue_in</businessTaskId>
</taskIdentifier>
<taskTypeEnum>NEW</taskTypeEnum>
<taskParameters>
<taskParameter>
<name>ServiceName</name>
<dataType>S</dataType>
<value>EBS</value>
</taskParameter>
<taskParameter>
<name>ServiceMethodName</name>
<dataType>S</dataType>
<value>load</value>
</taskParameter>
<taskParameter>
<name>ResourceName</name>
<value>codevalue</value>
</taskParameter>
<taskParameter>
<name>inFileName</name>
<value>load_func_test/datafile.xml</value>
</taskParameter>
</taskParameters>
</EagleML>
Files changed:
metadata/core/ontology/reference/codevalue-models.json
metadata/core/ontology/reference/codevalue_in.json
metadata/core/ontology/reference/codevalue.json
metadata/core/sql/eagle_ref_codevalue_insertupdate.txt
SDP-44086 The Warehouse Trade Inbound and Outbound interfaces were enhanced to support new MiFid trade fields
The Warehouse Trade inbound and outbound interface (WRHSTRADEEXTACT) were updated to support new fields:
TRADESDBO.TRADE_DETAIL_EXT.MIFID_TRADETIME (tag 17755)
TRADESDBO.TRADE_DETAIL_EXT.MIFID_ORDERTYPE (tag 17756)
TRADESDBO.TRADE_DETAIL_EXT.MIFID_TRADINGVENUE (tag 17757)
Xpath:
EagleML/warehouseTransaction/warehouseTrade/mifidTradeTime
EagleML/warehouseTransaction/warehouseTrade/mifidOrderType
EagleML/warehouseTransaction/warehouseTrade/mifidTradingVenue
Files changed:
eagle_default/in/xml/xslt/wrh_egl_gen_interface3.xsl
eagle_ml-2-0_cm/out/xml/t_warehouse_trade_streaming.inc
Production Bugs:
SDP-47517 The Factor inbound interface was improved
The rule logic was corrected to fail the record when tag10 is not resolved.
File changed:
eagle_default/in/xml/xml-ref_smf_factor_generic.xml
SDP-47516 The ENTITYEXTRACT was corrected to address issues with entityDetails node missing in History Mode
The Entity Extract with History Only Flag was working incorrectly as not all history records were extracted from the entity detail history table.
The issue was linked to an incorrect database table name. The issue was fixed by correcting the table name RULESDBO.ENTITY_DETAIL_HISTORY in the rule.
Files changed:
eagle_ml-2-0_cm/out/tagvalue/extract_entity.inc
SDP-47489 SQL Injection validation script was corrected
The SQL Injection validation script was improved for the not_in_conditions clause. The parentheses are no longer required.
Files changed:
metadata/core/securitypolicy.json
SDP-47369 The Entity Resolution logic was fixed to allow proper update of the cdscLoadYear1 element
The cdscLoadYear1 field was set to null on Updates when the Entity Resolution took place.
The parsing of the result from the database during Entity Resolution was corrected to allow the correct update of the element value - entityTransaction/genericEntity/cdscLoadYear1 .
Files changed:
eagle_default/in/xml/include/entity_xref_resolution.inc