EagleML Release Notes - January 2017
This release uses XSD Revision 241.
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
Inbound/outbound support for Multi-Lingual tables in Generic Entity Interface
EagleML was enhanced to allow for the loading data to/extracting data from the Multi-Lingual tables in the generic entity interface. A languageId model group was added to the GenericEntity complex type. An inbound and outbound rules were created to allow access to loads and extracts. Finally an IncludeLangInfoFlag flag was created to control the presence of language data from a control message and an equivalent W_INCLUDE_LANG_INFO_FLAG flag was included in w_config_custom.inc.
This issue was tracked as Item #145566.
Added Support for over 26 Characters When Using Custom Extension
The parameter EscapeExtensionExtract=N.allows for custom extensions to be used with the extract. However, if it not support if the custom extension table had field over 26 character limit. Extensions for Generic SMFs were created and the extract_extension_add_fields.inc file was edited to support the new extensions.
This issue was tracked as Item #146193.
Added Date Rule Functionality to RATINGSEXTRACT
The RATINGSEXTRACT feed type was enhanced for the maxeffectivedate parameter. The idea is to populate this maxeffectivedate parameter through the available date rule. This rule calculates the maximum effective date and only extracts the most recent record which fits the maxeffectivedate criteria. Logic was added to the outbound ratings interface which would allow the leverage of the date rule for calculating the maximum effective date.
This issue was tracked as Item #146798.
Created Consistency Between Inbound and Outbound Exception Interfaces
EagleML was enhanced to ensure consistency between inbound and outbound exception interfaces. Previously, the inbound rule was loading data into the ESTAR.ESTAR_EAGLE_EXCEPTION table while the outbound rule was additionally attempting to extract data form the EGL_ERROR and EGL_ERROR_ML tables. A new complex type called ErrorDefinition was added to the XSD. Now all regions of version less than 13 use the inbound stored procedure:
PACE_MASTERDBO.ESTAR_EXCEPTION.INSERT_UPDATE_EAGLE_EXCEPTION
and the outbound store procedure:
PACE_MASTERDBO.ESTAR_EXCEPTION.INSERT_UPDATE_EAGLE_EXCEPTION_ML
All regions with a version of 13 or greater uses the stored procedure
SP PACE_MASTERDBO.ESTAR_ERRORS.INSERT_UPDATE_EAGLE_ERROR
in its inbound rule and
SP PACE_MASTERDBO.ESTAR_ERRORS.INSERT_UPDATE_EAGLE_ERROR _ML
in the outbound rule.
This issue was tracked as Item #147152.
Added Delete Functionality to Code Value
Previously there were no ways to delete code value objects from the database by sending a message. The only way to delete records was through panel calls. Logic was created that allows a regular inbound code value message to be sent to the same stream, but with a specific flag. When the rule recognizes this flag, a call is made to the delete panel which executes the deletion as expected.
This issue was tracked as Item #147502.
Introduction of Common Models to the Cash Projections Extract
The cash projections extract was enhanced to allow for ability to include entity and security common models. To enable this, the RTR should contain the parameter IncludeExtendedDetails = "Y".
This issue was tracked as Item #148089.
EJM
Added Raw XML Result Data Option for Non-Generic Workflows
Non-generic workflows such as blocks and mashups received new functionality which allows the TSR to contain the results of extracts in either base 64 or XML format. A new parameter called TSRIncludeData was created to allow result data to be present in TSR and the compress parameter is used to dictate the format of this data. If the workflow generates an archive file then the value of the compress parameter is irrelevant, but in the case the workflow produces and XML result file the compress parameter will transform this into an archive file if Compress = "Y".
This issue was tracked as Item #146194.
Introduced Consistency to Correlation Id Generation
There were differences between the algorithms responsible for generating Correlation Ids between the EJM and a PACE event. The differences were tied to the *_restart stream which is typically disregarded when running EJM profiles. The *_restart stream would actually generate the Correlation Id based partially on the creation time stamp which is risky since there is a chance that the EJM process could use its random generator to create an arbitrary alphanumeric string which will match a creation time stamp. In this case, two processes started from EJM and PACE respectively could have identical Correlation Ids and result in the failure of one. The logic for Correlation Id creation in the PACE module was changed to match the logic used by EJM tool for its profiles. This streamlines the overall Correlation Id creation and makes sure that overlaps don't occur.
This issue was tracked as Item #146703.
Software Fixes
EagleML
Addressed Failures in Import_support Stream Not Displayed in Message Center
When eagle_mc\installer\in\xml\eagle_mc_server_support_import_stream.xml stream had errors, they would not be displayed in Message Center. Two main exceptions which were causing errors in the stream execution were identified and received edit check mechanisms, meant to catch the exceptions and redirect the workflow as well as reporting on the failures.
This issue was tracked as Item #142602.
Fixed Misspelling in DISTRIBUTIONACTIVITYEXTRACT
The NAV_CHANGE_PERCENT was mapped incorrectly in the EagleML rules. The DISTRIBUTIONACTIVITYEXTRACT had issues due to the incorrectly spelled element since it was unable to extract properly from the desired database table. This error also appeared in the accounting NAV for NASDAQ and warehouse NAV month end rules. The following rules were corrected the navChangePercent and navVariancePercent:
t_acct_distribution_activity.xml
t_acct_distribution_activity_streaming.xml
t_acct_nav_for_nasdaq.xml
t_acct_nav_for_nasdaq_streaming.xml
t_warehouse_nav_month.xml
t_warehouse_nav_month_streaming.xml
Originally these elements had percent spelled as "persent".
This issue was tracked as Item #144236.
Fixed Issue with Xref Identifiers Field in Distribution Activity Extract
The XREFIDENTIFIERS field in the distribution activity extract could not be opened properly in CSV format. This issue was caused by the separators used to concatenate the individual xref values into one value that will be displayed in the resulting file. Commas were used between each value and the semi-colon was used to mark the end of the concatenated string. Both of these symbols are used as delimiters in CSV files. To resolve this issue, the separators used in concatenation were changed to ones that are defined in the w_config and w_config_custom include files.
This issue was tracked as Item #145038.
Fixed Unix Specific Error in Purge and Archive Stream
The purge and archive stream would return a "directory not empty" error when trying to delete both files and folders that are older than a specified date. This error stemmed from the fact that the folders can only be deleted once empty, but due to the nature of alphabetical order the folders would be found by the find command before the files inside them. As a result the stream would complain about the non empty folders, skip them, move onto the files then subsequently run again and delete empty folders. Logic that would make the stream consider the folders before the files was changed in the Unix platform.
This issue was tracked as Item #145179.
Removed Extra Date Values in Realized Gain Loss Extract
There was a problem with the gain realized gain loss extract which would add a value of 19000101 to any date field that did not already have an assigned value. This was occurring due to the logic in the outbound rule filling null values with the default value of 19000101. Logic was changed in the t and streaming t rules for the realized gain loss extract to keep null values of dates as null rather than filling them with a default.
This issue was tracked as Item #145629.
Modified Forward SMF Logic
The standard loading procedure for forward securities was to load both legs at the same time since the panel would create them simultaneously with the same xreference identifiers.
The logic has now been updated to allow leveraging existing procedures to create each leg separately and include only the sell currency in one leg and only the buy currency on the other as well as adding unique xref identifiers on each leg.
This issue was tracked as Item #146212.
Fixed Issue with Generic SMF Synthetic Securities
There was a problem with loading synthetic SMFs. There were several conditional statements that dictate whether or not the synthetic security should be created, and all must be met in order to successfully load the record. The logic for the condToAddSyntheticLogicFromRule condition was changed from an expression which included input from numerous tags was changed to simply equal "1" in the xml\include\generic_smf_fields_logic.inc file.
This issue was tracked as Item #146316.
Fixed monthEndDateRule Issue in Entity Inbound Stream
When data was sent through the eagle_ml-2-0_default_in_xml_entity_generic stream, the month end date rule value would be changed and entered into the database table.
In some cases this should not have been happening and was causing errors due to incorrect data. The logic for tags 5161 (monthEndDateRule) and 5426 (monthRuleDesc) so that if tag 5426 is present, a lookup will always be made using that tag to locate an already existing monthEndDateRule. This way a valid monthEndDateRule will not be overwritten. In the case tag 5426 is not present then the value for 5161 is loaded into the database. Finally if neither tag is present in the incoming file then the default value for the monthEndDateRule is used.
This issue was tracked as Item #146515.
Added Mapping for Tag 24 to Accounting Trade Receive Object
Tag 24 does not have a default value in the /eagle/star/trade/pan-receive.htm panel which is used for booking the accounting trade receive. Since the value must be selected it must be present in the incoming message or selected manually in the panel. When loading this object through a stream, if the tag is not present in the incoming file, an error will occur during load since tag 24 is required. Mapping for tag 24 was added to the /eagle_default/in/xml/xml-accttrade_receive.xml rule.
This issue was tracked as Item #147227.
Added Process Center Support for TRAILBALANCEEXTRACT
The TRIALBALANCEEXTRACT could only be executed for one entity at a time due to the way the panel operated. When running the panel with an entity selection value of ProcessCenter the control message stream would return an error. This was inefficient since repeated calls to the panel would have to be made so that the panel can run the extract for each individual entity.
Logic for handling entity lists in the form of a loop, as well as an include for entity filters were added to the extract_acct_trial_balance.xml file. Entity filter logic for panel based extracts was improved in the extract_filter_entity.xml file and finally a new include, extract_panel_res_concat.inc, was created to concatenate the results of the panel.
This issue was tracked as Item #147306.
Excluding Underlying Asset Table from the RATINGS and XREFERENCE Extracts
When using the heldOnly filter while running RATINGS and XREFERENCE extracts the results would not match the output obtained by using a custom where clause that had been in place.
The extracts should return the same thing, but the heldOnly filter extract is technically a performance advantage, however it was extracting from the cash activity table as well as the underlying tables. A new parameter called heldincludeunderlying was created that will exclude all underlying tables when allotted with a value of "N". The cash activity tables will be excluded as long as the heldcashactivity filter is not sent in the incoming message.
This issue was tracked as Item #147770.
Fixed Timeout error in Streaming t Extracts
When both the synchronousExecution and compressExtract parameters have a value of "Y", the extract times out for 60 seconds and displays an error tied to its inability to read a file from the expected channel.
The time out and the error occur as a result of the logic for the synchronous extract. Essentially this logic removes the file form the staging folder before it can be copied to the extracts folder and therefore when it comes time to move this file it cannot be located. The logic for copying the file from the staging folder to the extracts folder was moved before the logic for the synchronous extract.
This issue was tracked as Item #148183.
Issue Using Traverse Hierarchy Flag with Entity Entitlement
There was an issue when using the traverse Hierarchy Flag (TraverseHierarchy) with Entity Entitlement. When you passed an entity that is not part of business group, all entities associated with user group were returned instead of no data. The code was updated to resolve this issue. The traverse hierarchy flag now allows using the entity filter to build a tree comprised of all the entity that matches the filter and all of its children as well as the children of the children. This tree is then used to extract every entity contained within it.
This issue was tracked as Item #148207.
Fixed issue with Position Extract
The Position extract was including extra data. This issue was due to the SQL not properly handling the extractLevel parameter. When this parameter is set to "PA" the extract should only grab data from the position table and nothing from the position_detail table. The SQL was edited to allow for the conditional described above. Now the parameter is handle correctly.
This issue was tracked as Item #148208.
EJM
Issue with tar.gz file Handling With eagle_wrf_generic_load
During the load of .tar.gz files, the workflow would fail since the file name is processed in the runtaskrequest rule. The logic for this rule constituted the file name to be broken into the following format:
name.extension -> [name] [correlation id] [extension]
Since the tar.gz files essentially have two extensions the logic fails and assumes .tar to be part of the name. The logic was changed so that the name and correlation Id parts are switched. This ensures that the .tar.gz is at the end of the file regardless whether the logic assumes the .tar to be part of the name or part of the extension.
This issue was tracked as Item #140759.
I2I
Corrected Inconsistencies Between STAR and I2I for Security Master Inactive Flag
After booking a position for a security and then adding the inactive flag to this security, the position could no longer be loaded to the database using I2I, while STAR would still allow for this functionality. This was due to an edit check in the I2I framework that would fail the incoming message with the position linked to an inactive security.
To resolve this inconsistency, the logic for the sm_inactive_flag which is checked by the I2I process to determine whether to load the position of not was changed in the following XSLT file: wrh_egl_gen_interface3.xsl.
This issue was tracked as Item #142683.