EagleML Release Notes - September 2017

The release uses XSD Revision 269

There are four overlay files that are currently packaged as part of the EagleML monthly release. Please refer to About EagleML Overlays for specific details and impact to you.

Enhancements

EagleML    

Added Ability to Create New Extracts to Retrieve Rejections from the ESTAR_EVENT_REJECTION Table

The ability to review rejections and set up dashboards offline was added.

The SQL code was enhanced to incorporate the REJECTIONEXTRACT.
The following were modified in the XSD in order to address the new extract capabilities: eagleml-acc-2-0.xsd, eagleml-acc-shared-2-0.xsd, eagleml-shared-2-0.xsd
The following rules were modified:
-    extracts.rsf
-    extract_acct_rejection.xml
-    extract_acct_rejection.inc
-    t_eagleml-2-0.rsf
-    t_acct_rejection.xml
-    t_eagleml-2-0_streaming.rsf
-    t_acct_rejection_streaming.xml
-    t_acct_rejection_streaming.inc
-    extract_filter_held.inc
        
This issue was tracked as Item #148728.


Added Ability to Join Cost Lot Information from Warehouse and Income Activity Data from ESTAR

EagleML was enhanced with the ability to join the WRHSOPENLOTEXTRACT with the ESTAR_INCOME_ACTIVITY table in order to enable each lot record within the Open Lot Extract to include an All-In Accrual rate.

In order to join lot level positional data with lot level income data from downstream and reporting feeds, a bind was implemented for use of the following key: ASSET_ID + PORTFOLIO_ACCT. This will allow for 1-1 connections between objects.
        
This issue was tracked as Item #152755.
        

Added Peer Group Support

EagleML was enhanced to include support for the Peer Group tables in rulesdbo. The new types are EntityPeerGroupRanking (for ENTITY_PEER_GRP_RANKINGS table) and EntityAnalytic (for ENTITY_ANALYTICS and ENTITY_PEER_GRP_ANALYTICS tables).

With this change, the following files were updated:
- eagle_ml_2_0.pkg
- eagle_ml-2-0_default_out_q.pkg
- eagle_ml-2-0_default_out_streaming_t.pkg
- eagle_ml-2-0_default_out_t.pkg
- w_config.inc
- extract_entity_peer_group_ranking.inc
- extract_entity_peer_group_ranking.xml
- extracts.rsf
- t_eagleml-2-0.rsf
- t_eagleml-2-0_streaming.rsf
- t_entity_peer_group_ranking.xml
- t_entity_peer_group_ranking_streaming.inc
- t_entityl_peer_group_ranking_streaming.xml

This issue was tracked as Item #129973.

Enhanced Filtering of Funds within the Traverse Hierarchy

Additional functionality to resolve Sectors and Masters was implemented within the Traverse Hierarchy.

The logic was enhanced to include SECTOR_TYPE = MASTER or SECTOR.
        
This issue was tracked as Item #152758.
        
Added Structures for Loading of Multiple Data Sets

In order to load multiple data sets representing different things, the addition of structures was required. The batch initialization event would be able to take a structure name identifier, and new columns could be added to the structure.

The passing of Structure Name has been added. The Model Name was resolved in the Data Discovery tool as Vendor Name + ‘_’ + Feed Name. This parameter was passed to the DM2DBO.DM2_LOAD_DEF_PKG.LOAD_INIT stored procedure and then loaded into the DM2_LOAD_STRUCTURE_TBL database table.
The following rules were modified for these additions:
- raw_data_header_load.rsf
- raw_data_header_load.xml
        
This issue was tracked as Item #154084.
        
Enhanced Data Load for Adding Global Values

The new task, stream, and rules have been added to the Data Load process for loading Global Values columns.

The following two stored procedures were called in the rule:
- DM2_LOAD_DEF_PKG.LOAD_DEFINE_COLUMN_NAME, for define type of global columns
- DM2_LOAD_PKG.LOAD_GLOBAL for load global columns
The following rules were modified:
- raw_common_values_load.rsf
- raw_common_values_load.xml
        
This issue was tracked as Item #154086.
        
Extended IncludeExtendedDetails Content with Additional Elements

Additional elements were included in the Extended Details model.

The following elements were added to the Extended Details model XSD schema and extracts:
- SECURITYDBO.DERIVATIVES.CLEARED_SECURITY (Tag 5027)
- RULESDBO.ENTITY.USER_FIELD16 (Tag 1868)
- SECURITYDBO.SECMASTER_DETAIL_EXT.COUNTRY_OF_ISSUE (Tag 10193)
- SECURITYDBO.SECURITY_MASTER.INCOME_CURRENCY (Tag 1186)
- SECURITYDBO.SECURITY_MASTER.MINOR_IND (Tag 1789)
- RULESDBO.ENTITY_ACCT_BASIS.ACCT_PERIOD_FREQ (Tag 624)
        
This issue was tracked as Item #154242.        
        
Added New v2017 Warehouse NAV and Position Analytics Fields

EagleML was enhanced to accomodate the following new fields in v2017 the HOLDINGSDBO NAV and HOLDINGDBO POSITION_DETAIL_ANL_FI tables:
NAV table:
SUBSCRIPTION_EXCH_DOLLARS
SUBSCRIPTION_EXCH_SHARES
REDEMPTION_EXCH_DOLLARS
REDEMPTION_EXCH_SHARES
REINVESTMENT_DOLLARS
REINVESTMENT_SHARES
PREFERRED_DOLLARS
PREFERRED_SHARES

POSITION_DETAIL_ANL_FI table:
DV100_BASE
DV100_LOCAL
SDV01_BASE
SDV01_LOCAL
        
This issue was tracked as Item #154522.
        
Adjusted EagleML Code References

The following rules and includes were updated to remove any 3-4 code letter abbreviations that could potentially be referenced back to a client.
- extract_extension_add_fields.inc
- extract_extension_add_tables.inc
- extract_extension_add_tables_into_join.inc
- xml-ref_issuer.prf
- xml-ref_schedule_ext.xml
- xml-ref_secnotes.xml
        
This issue was tracked as Item #154525.

EJM

Added Option to Receive Consolidated TSRs Only

When a consolidated TSR was delivered, a TSR for each individual task in the workflow was also delivered. The ability to request a consolidated TSR without receiving associated TSRs was unavailable.

The ConsolidatedTSROnly parameter was added, which can be enabled with the CreateConsolidatedTSR – 'Y' parameter.
The ConsolidatedTSROnly – ‘Y’ parameter would prevent the delivery of each TSR except the main workflow. The same logic is activated if CreateConsolidatedTSR is set as 1 in the main Control Message.
However such logic would not work correctly if a Control Message with ConsolidatedTSROnly – 'Y' is executing a workflow via _restart workflow, since it is considered that _restart workflow does execution without parameters.
        
This issue was tracked as Item #152565.
        
Added Ability to Configure and Override Multiple Streams for JMS Replies

The ability to override more than one stream for JMS replies was unavailable. Currently, the ACKs, TSRs, and Extracts can only be configured on a global level and do not support multi-team environments which may expect replies in various queues and through various modes of transport. The current override diverts all but one team's ACKs and TSRs to a wrong queue or location.

EJM logic was enhanced. The replyTo and ackTo nodes should define the Reply JMS and ACK JMS delivery streams, respectively. The ackTo element was added to the XSD to implement this. The following parameters were also implemented to specify JMS delivery streams as RTR task parameters:
- JMSExtractDeliveryStream – defines JMS delivery stream for Extract, has higher priority than -configuration parameter W_JMS_DEF_EXTRACT_STREAM
- JMSAckDeliveryStream – defines JMS delivery stream for Ack, has higher priority than configuration parameter W_JMS_DEF_ACK_STREAM
- JMSReplyDeliveryStream – defines JMS delivery stream for Reply, has higher priority than configuration parameter W_JMS_DEF_REPLY_STREAM
- JMSDeliveryStream – defines JMS delivery stream for Extract/Ack/Reply, in case parameters above are not specified
- MQSExtractDeliveryStream – defines MQS delivery stream for Extract, has higher priority than configuration parameter W_MQS_DEF_EXTRACT_STREAM
- MQSAckDeliveryStream – defines MQS delivery stream for Ack, has higher priority than configuration parameter W_MQS_DEF_ACK_STREAM
- MQSReplyDeliveryStream – defines MQS delivery stream for Reply, has higher priority than configuration parameter W_MQS_DEF_REPLY_STREAM
- MQSDeliveryStream – defines MQS delivery stream for Extract/Ack/Reply, in case parameters above are not specified
        
This issue was tracked as Item #154180.

Software Fixes

EagleML    

Resolved Error with Generated SQL for Open Lot Extract Extended Tables

Errors were generated when dealing with extracts which specified a missing POSITION_ID column in the extended table.

To resolve this issue, the DBBUSINESSKEYS were changed from POSITION_ID to LOT_LEVEL_POSITION and POSITION_DETAIL_ID in order to fix the connection for the WRHSOPENLOTEXTRACT and WRHSPOSITIONEXTRACT extension tables.
        
This issue was tracked as Item #152335.
        
Corrected Syntax in FAIRVALUECOMPARISONEXTRACT Rule

The extract_acct_fair_value_comparison.xml rule had a syntactical error in the code which caused the FAIRVALUECOMPARISONEXTRACT to always result empty.

The code in the extract_acct_fair_value_comparison.xml rule was adjusted to reflect the proper syntax. The exclamation point was moved before the equals sign:

<MSGEXCHANGE NAME="QUERYDATA" CONDITION=":HeaderOnlyTSR: =! 'Y'">

to

<MSGEXCHANGE NAME="QUERYDATA" CONDITION=":HeaderOnlyTSR: != 'Y'">

This issue was tracked as Item #152656.

Resolved Linking Issue Between wrh_egl_gen_interface3.xsl Bind and POS_EGL_GEN_INTERFACE Stored Procedure

An old version of Message Center core binds were installed on  v2017 environments, where bind parameters do not reflect the stored procedure and are not updated from the v2015 environments.

The XSLT expressions were enhanced to reflect correct version comparisons. The string comparison was replaced for a numeric comparison for nodes with discrepancies on the v2017 environment and lower:

<xsl:if test="$EAGLEML_VERSION < ’17.0’">

to

<xsl:if test="$EAGLEML_VERSION < 17">

This issue was tracked as Item #152867.

Modified xml-ef_genericissueanalytic.xml Rule

The generic issue rule required modification to the syntax.

The code was updated to reflect proper syntactical structure:

<COL TAG="varNGParamValues_Add" EXPRESSION="'
PRM:in_which_table: VAL:ALL\n
PRM:in_event_type: VAL:' + :tag55: + ':\n
PRM:in_src_intfc_inst: VAL:' + :tag1168: + ':\n' " />

to

<COL TAG="varNGParamValues_Add" EXPRESSION="'
PRM:IN_WHICH_TABLE:VAL:ALL:\n
PRM:IN_EVENT_TYPEVAL:' + :tag55: + ':\n
PRM:IN_SRC_INTFC_INST:VAL:' + :tag1168: + ':\n' " />

The following code was also added to the varNGParams_10 variable:
PRM:dv100: VAL:' + :tag16836: + '\n
PRM:sdv01: VAL:' + :tag16837: + '\n
        
This issue was tracked as Item #154178.
        
Added entitySectorType for Leveraging Extended Filter Functionality

Incorrect fields were being pulled into the SECTOR_TYPE from the Generic Entity outputs.

Support was added for an entitySectorType entity filter to leverage filtering records by the RULESDBO.ENTTIY_STAR_PROCESSING.SECTOR_TYPE field.
Examples:

    MASTER,SECTOR
    I(MASTER,SECTOR)
    E(MASTER,SECTOR)
    L(MASTER%,SECTOR%)
<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>ENTITYEXTRACT001</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">BT154179_T1_05</correlationId>
        <businessTaskId correlationIdScheme="businessTaskIdScheme">ENTITYEXTRACT</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>ENTITYEXTRACT</value>
        </taskParameter>
        <taskParameter>
            <name>fromdate</name>
            <dataType>S</dataType>
            <value>2017-08-16 10-00-00</value>
        </taskParameter>
        <taskParameter>
            <name>entityselectiontype</name>
            <dataType>S</dataType>
            <value>ENTITYID</value>
        </taskParameter>
        <taskParameter>
            <name>entityselectionvalue</name>
            <dataType>S</dataType>
            <value>L(%4179%)</value>
        </taskParameter>
        <taskParameter>
            <name>entitySectorType</name>
            <dataType>S</dataType>
            <value>MASTER</value>
        </taskParameter>
        <taskParameter>
            <name>maxrows</name>
            <dataType>S</dataType>
            <value>20000</value>
        </taskParameter>
    </taskParameters>
</EagleML>
This issue was tracked as Item #154179.
        
Initiated Clean Up of EagleML and Installer Packages

The references to obsolete and non-existing files required removal.

The following files were affected:
-    tpe/dynamic/msgcenter/eis/ejmsln/eagle_mashupentity.ejmsln - added
-    tpe/dynamic/msgcenter/eis/ejmwf/eagle_mashupentity.ejmwf - added
-    tpe/data/msgcenter/cmw/swagger/eagle_wrf_i2i_sec_alias_sync.json - deleted
-    tpe/data/msgcenter/cmw/swagger/ eagle_wrf_i2i.json - deleted
-    tpe/data/msgcenter/eagle_default/ eagle_default/in/xml/xml-costbasisadj.rsf - deleted
-    tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/tagvalue/curl_ftp_process.inc - deleted
-    tpe/dynamic/msgcenter/custom_includes/eagle_default/in/xml/xml-smf_generic_columns_after.inc - deleted
-    tpe/dynamic/msgcenter/custom_includes /eagle_default/in/xml/xml-smf_generic_columns_before.inc - deleted
-    tpe/dynamic/msgcenter/profile/extracts/profile_SMFEXTRACT_example.txt - deleted
-    tpe/dynamic/msgcenter/eagle_ml-2-0_custom_cm/metadata_extract_schedule.inc - deleted
-    tpe/dynamic/msgcenter/eagle_ml-2-0_custom_cm/metadata_extract_smf.inc - deleted
-    tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/tagvalue/extract_nav_multi_details_fields.inc - deleted
-    /tpe/dynamic/dat/eagle/star/reference/pan-acodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/pan-ccodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/pan-ddcodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/pan-lcodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lcodecat.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lcodecat_short.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lcodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lcodeval_long.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lproc_sec_type-short.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-lsectype.htm - deleted
-    /tpe/dynamic/dat/eagle/star/pan-qlsource.htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/lb_pan-acodeval .htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/lb_pan-ccodeval.htm - deleted
-    /tpe/dynamic/dat/eagle/star/reference/lb_pan-ddcodeval.htm - deleted
-    tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/tagvalue/selfsystem_sch. xml - deleted
-    tpe/dynamic/msgcenter/preprocessors/eagleml_check_checksums.pl - deleted
-    /tpe/dynamic/dat/eagle/star/reference/lb_pan-lcodeval.htm - deleted
-    /tpe/dynamic/custdat/eagle/star/reference/pan-acodeval.custom.xml - deleted
-    /tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/csv/csv_data_distribution.rsf - deleted
-    /tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/csv/csv_data_distribution.xml - deleted
-    /tpe/dynamic/msgcenter/preprocessors/makecopies.sh - deleted
-    /tpe/dynamic/msgcenter/preprocessors/makecopies.cmd - deleted
-    /tpe/dynamic/msgcenter/preprocessors/transform2csv.jar - deleted
-    /tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/csv/pipe_ent_inst_proc.rsf - deleted
-    /tpe/dynamic/msgcenter/eagle_ml-2-0_cm/out/csv/pipe_ent_inst_proc.xml - deleted
-    tpe/dynamic/msgcenter/eis/ejmsln/eagle_wrf_generic_purge.ejmsln - deleted
-    tpe/dynamic/msgcenter/eis/profiles/eagle_wrf_generic_purge.ejmspf - deleted
        
This issue was tracked as Item #154418.
        
Adjusted Extact and Load Side Code to Fix Defaulting to DeltaBased Filter in BatchMode

An error occured when loading an extract into warehouse preprocessing stream due to BatchMode always being enforced during an extract of Warehouse Trade using the DeltaBased filter.

The following include xml-dbdirect_wrhs_delete_statement.inc was modified to address the issue. Additionally, SQL code was added for Trade Delta mode.
        
This issue was tracked as Item #154579.
        
Added Tag Mapping to Populate Values in WORKINGTRIALBALANCEEXTRACT

The includeExcluseCloseoutEntries parameter did not pass a value in the message, even though tag1883 appeared in the extract_acct_working_trial_balance.xml as <COL TAG="1883" EXPRESSION="iif(:lparam_includeexcludecloseoutentries: = 'Y', 'Y', 'N')" />.

The code was enhanced to add tag1883 to the inmap tag list of the panel:

<RUNPANEL NAME="QUERYDATA" CONDITION="1" INMAP="302=tag302,1104=tag1104,21=tag21,937=tag937,7001=tag7001,7002=tag7002,34=tag34,2201=tag2201,5=tag5,1164=tag1164,1257=tag1257,71=tag71,921=tag921,7568=tag7568,7600=tag7600,220=tag220,938=tag938,86=tag86,7191=tag7191,989=tag989,7006=tag7006,1953=tag1953,1233=tag1233,1234=tag1234,961=tag961,14=tag14,1883=tag1883"
OUTMAP=""
RESULTVAR="varQData_tmp"
PANFILENAME="eagle/star/reports/pan-ec_worktrialbalvirtual.htm"
EXECUTEPANEL="YES" />
This issue was tracked as Item #154581.
        
Fixed Extract Failure Upon Load Due to Missing HOLDING.DBO.POSITION_DETAIL_ANL Table

The loading of positions and extracts failed with an error specifying a missing HOLDING.DBO.POSITION_DETAIL_ANL table. The load could not be handled due to the missing table in the region.

The xml-dbdirect_wrhs_delete_statement.inc include was modified to resolve this issue. Now, after a query is made to the database, a list of tables is retrieved, based on which queries can be made.
        
This issue was tracked as Item #154609.
        
Added Mapping to Resolve Root SMF Record Splitting to New History SMF Record

The eagle_ml_smf_underlying_to_gen.xsl extract rule in the smf_mi stream does not parse the fieldCompareFlag and historyOnlyFlag nodes, which subsequently are never passed to the stored procedure. Due to this, the root SMF record is split into a second underlying record with a discrepancy in the effective_date, and to a root record.

In order to permit correct parsing, mapping was added for the fieldCompareFlag and historyOnlyFlag into the eagleml_smf_underlying_to_gen.xsl extract rule with the following parameters:
- historyOnlyFlag = ‘Y’ – This will make sure that only secmaster_history table is updated. Update will be made to the security_master table only using RDC so that the historic loads will not update security_master table.
- fieldCompareFlag =’Y’ – This is expected to compare the fields and insert history record only when any value is changed. So even if we pass a record with a new effective date, it will not create a history record unless any other attributes change which are working as expected in a normal scenario.
        
This issue was tracked as Item #154617.
        
Updated Logic To Address Incomplete Data in TSR for Data Loaded Using eagle_ml-2-0_default_in_xml_smf_mi Stream

Partial and incorrect data was being generated in the TSR, particularly for record count and total record count in the TSR for issuer role load.

The waiting_processor.inc include logic was updated to reflect these changes:
Before:

    <LOOP CONDITION="atoi(:varReqCntLoop:) < atoi(:varReqCntLoopMax:)" TYPE="WHILE">
    <RUNPANEL NAME="Q_STEP_SUMMARY" CONDITION="StringLength(:stepFile:) > 0" INMAP="9482=stepFile,226=n_minutes" OUTMAP="varEndTime745=745" RESULTVAR="DATA_SUMMARY" PANFILENAME="eagle/messagecenter/mc events/pan-mc_file_processing_statistics_log.htm"/>
    <COL TAG="flagReportingProblem" EXPRESSION="if atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) = -1 then      :flagReportingProblem: + 'Error retrieving status information for file '+:stepFile:+'.\n' else     if atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) = 2 then       :flagReportingProblem: + 'Unable to get status information for file '+:stepFile:+'. Possibly the file was not processed.\n'    else :flagReportingProblem:" SCOPE="GLOBAL"/>
    <STATUS EXPR="'Flag = ' + :flagReportingProblem: + '\n' + 'Q step summary = ' + :Q_STEP_SUMMARY_PANEL_STATUS:" CONDITION="1"/>
    <STATUS EXPR="'End Processing Time= ' + :varEndTime745:" CONDITION="1"/>
    <STATUS EXPR=":stepFile:+' file is processed'" CONDITION="atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != 2 and atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != -1 and StringLength(:varEndTime745:)>0"/>
    <BREAK CONDITION="atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != 2 and StringLength(:varEndTime745:)>0"/>

After:

        <LOOP CONDITION="atoi(:varReqCntLoop:) < atoi(:varReqCntLoopMax:)" TYPE="WHILE">
        <RUNPANEL NAME="Q_STEP_SUMMARY" CONDITION="StringLength(:stepFile:) > 0" INMAP="9482=stepFile,226=n_minutes" OUTMAP="" RESULTVAR="DATA_SUMMARY" PANFILENAME="eagle/messagecenter/mc events/pan-mc_file_processing_statistics_log.htm" />
        <COL TAG="flagReportingProblem" EXPRESSION="if atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) = -1 then      :flagReportingProblem: + 'Error retrieving status information for file '+:stepFile:+'.\n' else     if atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) = 2 then       :flagReportingProblem: + 'Unable to get status information for file '+:stepFile:+'. Possibly the file was not processed.\n'    else :flagReportingProblem:" SCOPE="GLOBAL" />
        <STATUS EXPR="'Flag = ' + :flagReportingProblem: + '\n' + 'Q step summary = ' + :Q_STEP_SUMMARY_PANEL_STATUS:" CONDITION="1" />
        <STATUS EXPR="'End Processing Time= ' + :varEndTime745:" CONDITION="1" />
        <STATUS EXPR=":stepFile:+' file is processed'" CONDITION="atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != 2 and atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != -1 and StringLength(:varEndTime745:)>0" />
        <FOREACH DATASOURCE="EXPRESSION" FORMAT="STAR" DATAEXPRESSION=":DATA_SUMMARY:" FILTER=":4038:=:varStreamName:" RECORDSEPARATOR="\n" TAGVALUESEPARATOR=":">
        <COL TAG="varEndTime745" EXPRESSION=":745:" />
        </FOREACH>
        <BREAK CONDITION="atoi(:Q_STEP_SUMMARY_PANEL_STATUS:) != 2 and StringLength(:varEndTime745:)>0" />
This issue was tracked as Item #154671.
        
Fixed Repeating Elements in WRHSNAVMULTIEXTRACT

The following elements were repeating due to distribution shares differing across entries for the same entity, share class, and valuation date:

<transferAgentMillRate></transferAgentMillRate>
<rawNavChange></rawNavChange>
<reportingNavChange></reportingNavChange>

Due to the grouping of elements in the NAV Multi Extract, the transferAgentMillRate, rawNavChange, and reportingNavChange elements were moved in the ONEND code.
        
This issue was tracked as Item #154952.

EJM

Fixed Custom Load Stream Not Appearing in the EJM Steps

The newly adopted EXACT logic in Message Center in 2015 R3.12 and later versions exhibited a loss of EJM information about the CustomLoadStream after switching from LIKE logic for checking information on processing file names.

To mitigate issues with missing loading streams in EJM, the EXACT file name logic was modified to LIKE logic in the create_cstm_load_par.inc include.
        
This issue was tracked as Item #155633.

I2I

Additional Fields Added to I2I Holdings Extract

The I2I Holdings Extract was enhanced to include VAR_MGN and VAR_MNG_LOCAL fields.

The t_warehouse_position_xmldbapi.xml and t_warehouse_position_xmldbapi_streaming.xml rules was adjusted to include mapping for the new elements.
Enhanced t_warehouse_position_xmldbapi.xml code:

<COL TAG="331" EXPRESSION="|FUTURE_FEE_NET_B|" CONDTOINCLUDE="StringLength(|FUTURE_FEE_NET_B|) != 0" XMLPATH="INPUT_PAR\P\n=in_future_fee_net_b" ELEMENTTYPE="XMLNodeList" />
<COL TAG="569" EXPRESSION="|SPD_DELTA_INST|" CONDTOINCLUDE="StringLength(|SPD_DELTA_INST|) != 0" XMLPATH="INPUT_PAR\P\n=in_spd_delta_inst" ELEMENTTYPE="XMLNodeList" />
<COL TAG="570" EXPRESSION="|ADJUSTED_PRICE|" CONDTOINCLUDE="StringLength(|ADJUSTED_PRICE|) != 0" XMLPATH="INPUT_PAR\P\n=in_adjusted_price" ELEMENTTYPE="XMLNodeList" />
<COL TAG="571" EXPRESSION="|PROCESSING_ILB_LTD_B|" CONDTOINCLUDE="StringLength(|PROCESSING_ILB_LTD_B|) != 0" XMLPATH="INPUT_PAR\P\n=in_processing_ilb_ltd_b" ELEMENTTYPE="XMLNodeList" />
<COL TAG="572" EXPRESSION="|PROCESSING_ILB_LTD_L|" CONDTOINCLUDE="StringLength(|PROCESSING_ILB_LTD_L|) != 0" XMLPATH="INPUT_PAR\P\n=in_processing_ilb_ltd_l" ELEMENTTYPE="XMLNodeList" />
<COL TAG="573" EXPRESSION="|URGL_VAR_MGN|" CONDTOINCLUDE="StringLength(|URGL_VAR_MGN|) != 0" XMLPATH="INPUT_PAR\P\n=in_urgl_var_mgn" ELEMENTTYPE="XMLNodeList" />
<COL TAG="574" EXPRESSION="|URGL_VAR_MGN_LOCAL|" CONDTOINCLUDE="StringLength(|URGL_VAR_MGN_LOCAL|) != 0" XMLPATH="INPUT_PAR\P\n=in_urgl_var_mgn_local" ELEMENTTYPE="XMLNodeList" />
<COL TAG="575" EXPRESSION="|VAR_MGN|" CONDTOINCLUDE="StringLength(|VAR_MGN|) != 0" XMLPATH="INPUT_PAR\P\n=in_var_mgn" ELEMENTTYPE="XMLNodeList" />
<COL TAG="576" EXPRESSION="|VAR_MGN_LOCAL|" CONDTOINCLUDE="StringLength(|VAR_MGN_LOCAL|) != 0" XMLPATH="INPUT_PAR\P\n=in_var_mgn_local" ELEMENTTYPE="XMLNodeList" />
<COL TAG="332" EXPRESSION="|PA_CURRENT_BENCHMARK|" CONDTOINCLUDE="StringLength(|PA_CURRENT_BENCHMARK|) != 0" XMLPATH="INPUT_PAR\P\n=in_current_benchmark" ELEMENTTYPE="XMLNodeList" />

Enhanced t_warehouse_position_xmldbapi_streaming.xml code:

<OUTPUT CONDITION="StringLength(:FUTURE_FEE_NET_B:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_future_fee_net_b">]]></OUTPUT><OUTPUT VAR="FUTURE_FEE_NET_B"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:SPD_DELTA_INST:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_spd_delta_inst">]]></OUTPUT><OUTPUT VAR="SPD_DELTA_INST"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:ADJUSTED_PRICE:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_adjusted_price">]]></OUTPUT><OUTPUT VAR="ADJUSTED_PRICE"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:PROCESSING_ILB_LTD_B:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_processing_ilb_ltd_b">]]></OUTPUT><OUTPUT VAR="PROCESSING_ILB_LTD_B"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:PROCESSING_ILB_LTD_L:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_processing_ilb_ltd_l">]]></OUTPUT><OUTPUT VAR="PROCESSING_ILB_LTD_L"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:URGL_VAR_MGN:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_urgl_var_mgn">]]></OUTPUT><OUTPUT VAR="URGL_VAR_MGN"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:URGL_VAR_MGN_LOCAL:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_urgl_var_mgn_local">]]></OUTPUT><OUTPUT VAR="URGL_VAR_MGN_LOCAL"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:VAR_MGN:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_var_mgn">]]></OUTPUT><OUTPUT VAR="VAR_MGN"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:VAR_MGN_LOCAL:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_var_mgn_local">]]></OUTPUT><OUTPUT VAR="VAR_MGN_LOCAL"/></OUTPUT>
<OUTPUT CONDITION="StringLength(:PA_CURRENT_BENCHMARK:) != 0"><OUTPUT><![CDATA[</P>
<P n="in_current_benchmark">]]></OUTPUT><OUTPUT VAR="PA_CURRENT_BENCHMARK"/></OUTPUT>

The XSLT in the wrh_egl_gen_interface3.xsl rule from the eagle_ml-2-0_default_in_xml_warehouse_preproc stream was enhanced with new mapping:

<xsl:if test="normalize-space(eagleml:spdDeltaInst) !=''">
  <P n="in_spd_delta_inst">
    <xsl:value-of select="eagleml:spdDeltaInst" />
  </P>
</xsl:if>                
<xsl:if test="normalize-space(eagleml:adjustedPrice) !=''">
  <P n="in_adjusted_price">
    <xsl:value-of select="eagleml:adjustedPrice" />
  </P>
</xsl:if>
<xsl:if test="normalize-space(eagleml:processingIlbLtdBase) !=''">
  <P n="in_processing_ilb_ltd_b">
    <xsl:value-of select="eagleml:processingIlbLtdBase" />
  </P>
</xsl:if>                
<xsl:if test="normalize-space(eagleml:processingIlbLtdLocal) !=''">
  <P n="in_processing_ilb_ltd_l">
    <xsl:value-of select="eagleml:processingIlbLtdLocal" />
  </P>
</xsl:if>
<xsl:if test="normalize-space(eagleml:urglVariationMargin) !=''">
  <P n="in_urgl_var_mgn">
    <xsl:value-of select="eagleml:urglVariationMargin" />
  </P>
</xsl:if>                
<xsl:if test="normalize-space(eagleml:urglVariationMarginLocal) !=''">
  <P n="in_urgl_var_mgn_local">
    <xsl:value-of select="eagleml:urglVariationMarginLocal" />
  </P>
</xsl:if>
<xsl:if test="normalize-space(eagleml:variationMargin) !=''">
  <P n="in_var_mgn">
    <xsl:value-of select="eagleml:variationMargin" />
  </P>
</xsl:if>                
<xsl:if test="normalize-space(eagleml:variationMarginLocal) !=''">
  <P n="in_var_mgn_local">
    <xsl:value-of select="eagleml:variationMarginLocal" />
  </P>
</xsl:if>

This issue was tracked as Item #154176.