2020 Q2 |
Flexible Results
Aggregation results
With Release 2020 Q2 Service Pack 3, for Flexible Results users we have introduced aggregation results as a new results type.
For those with a valid licence, aggregation results enable you to generate projection results aggregated by a model point variable of your choosing, called the aggregation variable. Aggregation projection results can be created for up to two aggregation variables per product in addition to the existing sub-product aggregation functionality in standard projection results.
With the effective date of IFRS 17 and US GAAP LDTI approaching, aggregation results have been designed to help companies report across different groups of insurance contracts. They provide a simplified method of summing values across multiple model points in a contract group by reducing code and can result in faster runtimes.
To facilitate this new results type, a new Aggregation Results Definition workspace object has been created. This workspace object, which you later include in the Results section of the run setting, is where you define the variable that your new results type will be indexed by (the aggregation variable), the products for which the results should be generated and the variables that you will get in your aggregation results output.
![](/images/fis/pp_2020Q2.png)
The aggregation variable can be a number or text data type, making it more versatile than the SPCODE grouping for standard projection results. The new results definition can also be created, edited and added to your run via the API.
Aggregation results can be viewed directly in Prophet Professional, Results Diagram View, Results Viewer and with Excel Reporting through a new AGG_PROJ_RESULT function. As well as the Excel Reporting function, a Prophet runtime function by the same name is available to read aggregation results from another run.
For this first release, aggregation results are not supported for stochastic and dynamic processing. They will also only be produced in conjunction with the New Business in Model Point File new business method.
Individual policy results
Individual policy results, previously only available to clients with a Production Interface licence, are now also available to users licensed for Flexible Results. Individual policy results allow you to create projection or stochastic output for specified policies in your model point file, up to a 100 policy limit. Note this differs from individual model point output which is for all model points and can only be produced for up to two time periods.
The specification of these results adopts a similar approach to aggregation results, via a workspace object which can then be referenced by multiple run settings. Individual policy results can also be set up via the API, read via the POLICY_RESULT Excel Reporting function and viewed directly in Prophet Professional, Results Diagram View and Results Viewer.
Flexible Results API
The Flexible Results API (FR API) is a .NET Dynamic Linked Library (DLL) that can be used by a bespoke application to read Prophet results directly and at scale, which can then be transformed and stored as appropriate. This removes the need to use the Prophet Results Database (PRD) for transient data storage.
The Insurance Data Repository (IDR) now uses FR API as an alternative data source with minimal changes to any existing jobs that were using PRD as a data source. This can reduce the time taken to load results data from the filesystem into IDR, as well as reducing storage needs.
Calculation engine enhancements
In Release 2020 Q2 Service Pack 3 we have made several large improvements to the calculation engine, with a major area of focus being the performance of products containing modules:
- Table and model point optimisations (TMPO), a Prophet Enterprise licensed optimisation, has now been made available for use with products using modules. This means Prophet can use details from the tables that will be used during a run, in order to determine additional optimisations that can be made. For example, replacing a table read in the product or module with a constant value if possible, reducing time reading this value during the run and allowing additional optimisations to be carried out using this constant.
- Module inputs have now been enhanced to allow members of a module link to be directly used as an input source, of another module link in the same product, without using a product variable as an intermediary. This reduces the need to declare and maintain intermediary variables in the parent product of the module links purely for the purpose of passing information between module links, and potentially allows the engine to reduce the storage needed and amount of data being transferred in memory.
- It is often possible to do optimisations in Prophet based on whether a variable is constant or not. Values that have been defined as constants by a user, as well as variables that are determined to be constant at the preparation stage (when using TMPO), can now be shared across the product-module boundary; previously a constant module link input source would not cause the input to be optimised as a constant inside the module link and constants in the module links would not cause the product to be further optimised. The use of constants during the preparation of a product or module allows for optimisations, such as removing branches of IF conditions and reducing time periods calculated/stored, to be made in order to reduce calculations carried out downstream from the constants and reduce the storage required for variables that are always constant. By sharing constants between the products and the modules, more of these optimisations can be carried out.
- Using the Fast runtime or Fast compile setting in the run structure respectively, you are now able to choose to prepare module code for every product-module link pair or for every product-module pair. This option allows for module code optimisations that improve runtime to be carried out without the restrictions imposed by code being shared between every module link limiting them. However, preparation may now take longer when using the fast runtime setting.
- In previous releases, in all cases, the rebase loop must be contained within the calculation loop, and these loops must be contained with the goal-seek loop. In Release 2020 Q2 Service Pack 3 we have altered this behaviour to allow the rebasing and goal-seeking loops to be separated. This is possible where only rebasing and goal-seeking are used and the rebase loop can be determined to be entirely after the goal-seek loop. This change allows for a, potentially significant, reduction in the recalculation of rebasing variables that no longer need to be included in the goal-seek loop.
- The ADCo plugin SET_RATES function now supports IndexForecast and HPIForecast for the RateName argument.
User Interface enhancements
In Release 2020 Q2 Service Pack 3 we have made a number of improvements across several parts of the user interface.
Enhancements to libraries
- A new variable category can be created automatically when a variable is assigned to that category.
- The indicator expression limit has been increased from 240 characters to 500 characters.
- A column called Returns Array has been added to the User Defined Functions tab of an open library. This is to quickly show whether a user defined function returns an array or not.
- You can now see who last modified a book. This information is available in the Modified By field in either the Book dialog box or Books tab of a library.
- Multiple core variables can be deleted from a library using one click.
Enhancements to comparison
- Importing user defined functions from a library comparison has been enabled.
- If you are comparing an object in one workspace to that in another workspace then “Prophet.prw” no longer needs to be added to the workspace location file path.
Enhancements to viewing results
- The results grid now copes better with larger sets of results by reducing the amount of memory it needs to allocate on opening.
- The Suppress Zeros setting is remembered after re-opening the results.
Enhancement to backup and restore
- When restoring a backed-up workspace, the file size of the items once restored can now be seen in the Restore dialog box.
Prophet Professional Application Programming Interface (API)
In Release 2020 Q2 Service Pack 3 we have made following improvements to the PP API:
- A new function is available to obtain dynamic debug results.
- A warning message relating to missing compilers has been added when a user submits a run.
Licensing
The following improvement has been made to the licensing technology which was released as part of Prophet Release 2018 Q3:
- In the Client Licence Server (CLS) portal, a new label Available CLS Instances (as of last synchronisation) has been added so that it is clear if the CLS instance is ready for disaster recovery.
|
Prophet Professional 2020 Q2 Service Pack 3
Prophet Professional 2020 Q2
User interface
- An issue saving extended formula definitions that had over 200,000 characters has been fixed.
- An issue saving definitions instantiating a parameterised extended formula has been fixed.
- An “out of memory” error caused by a problem in the logic used by Diagram View and formula auto-complete has been fixed.
- Previously for a run setting comparison, comparing a non-blank entry to a blank entry was not treated as a difference. This has been corrected to report a difference in the comparison.
- It is now possible to import indicators from a library comparison.
- An issue with copying and pasting the module link grid into Microsoft Excel or text files has been resolved. Users can use shortcut keys to copy and paste the whole grid with headings.
- A bug preventing you from changing the mortality tables location in the Prophet Professional Options dialog has been fixed.
- An issue that meant you were unable to view individual binary model point results in Prophet Viewer has been fixed.
- A bug in Results Viewer that meant querying results for a single time period would return empty values has been fixed.
- Messaging feedback in both the run monitor and runlogs has now been improved when the calculation engine cannot run because the results it needs to replace are being used by another process such as Excel.
Calculation engine
- An issue where models using User Defined Functions could fail to compile, for example when full table and model point optimisations are used, has been fixed.
- A merged code error during preparation, caused by Prophet incorrectly performing integer optimisations for some calculations relating to module inputs, has been fixed.
- An issue where changing the future accumulation period of a run could lead to an error if running without regenerating has now been fixed.
- An issue where runs could sporadically fail when lots of Same As products were in the run has been fixed. The issue related to preparation metadata files for the base product being unnecessarily copied to the same results location repeatedly and would disproportionately affect certain remote file servers.
- An issue where writing out more than 2GB of individual model point results for a single product caused the run to error has been fixed.
- An issue where model point values with more than 8 decimal places specified could sometimes result in an error has been fixed.
- There was an issue where blank spaces in a product alias table were not converted to the default value for the alias. This could cause incorrect results reading or errors in some models when using READ_RESULTS. This issue has been fixed.
- A bug where the use of SUM, PROD, MINT or MAXT did not force the expression they operated on to be correctly t- limited has been fixed.
- An issue where t-dependent module inputs were not t-limited properly has been fixed.
- The use of table and model point optimisations could previously cause inconsistencies by moving variables into or out of inner product loops. This has been corrected.
- Previously there were three issues with requested results output if the run was being split across multiple machines, all have been fixed:
- Projection results would be produced even if not requested.
- Accumulation results would be produced even if not requested.
- The Only product totals run setting option would incorrectly include results for each sub-product code as well as the product total results files.
- A bug which meant that dynamic debug results were not produced for all dynamic loops in the individual policy output has been fixed.
- Pre-existing stochastic summary cache files are now deleted for each product and run number in a newly submitted run pair.
- An issue which meant codegen diagnostics files were unnecessarily produced for Same As products has been fixed.
- An issue where models that use modules, but not model points, would output constants in the module links as zero has been fixed.
- An issue in some runs that meant a PREM_AMOUNT variable not being present could result in INF/NAN values has been fixed and an appropriate error is now given.
Performance
- A performance issue where in-memory dynamic temporary data was, for certain run types, stored on the remote file server rather than the local workers, has been fixed. Because of this fix users may now find their local worker storage is insufficient for large in-memory dynamic runs. If increasing the size of the volume hosting ProgramData (the default local worker storage location) is not possible, the location (and thus volume) used by the local worker for temporary job data is configurable.
- There was a performance issue that caused the output of certain results files to bypass the Windows file cache, and write the output using smaller than necessary data packets when writing to a remote file server, causing some Prophet models to run noticeably slower. This has now been fixed.
- There was a performance issue with the end-of-run processing when writing large quantities of PRINT_TO_FILE output for certain run types. The issue involved merging and copying temporary PRINT_TO_FILE files to their final output path using smaller than necessary data packets, which disproportionately affected output to a remote file server. This has now been fixed.
Prophet Debugger
- An issue where stopping the Prophet Debugger did not promptly stop the calculation engine has been fixed. The debugger now sends a cancel/abort message to the calculation engine rather than request it stop at the end of the current level number.
- An issue caused by the changes to results in the last release meant that the Debugger would not run models that included modules. This has now been fixed.
Excel Reporting
- An issue where an entire projection results file was loaded into memory, rather than the individual variables required by a spreadsheet, has been fixed so that memory usage is similar to pre-2019 Q2 releases. This is important since a lot of Excel users still use 32-bit Excel which is limited to 2-4GB of memory.
- In the case of spreadsheets using many STOCH_RESULT and STOCH_SUMMARY functions, there were occasions where Prophet 2019 Q2 exhibited reduced performance relative to the prior release, particularly when reading a small amount of data from each results file. This has now been fixed.
- The performance of the stochastic summary cache has been enhanced.
- The stochastic summary functionality can now work without error even if the cache file is in a read-only location.
- A missing file that prevented Excel Reporting from being installed independently of the worker installation has now been added to the Excel Reporting installation.
Prophet Results Database
- There was a bug which meant that results uploaded across a network could take longer in Prophet 2019 Q2 relative to the prior release. This has been fixed.
- Variables in module links that are determined to be constant are now identified as such and variable properties are stored in the appropriate <ProductName#Module_Link>_PRJ_CONST_INFO table rather than the corresponding VAR_INFO table.
Licensing
- An issue which meant a Prophet machine with a name using non-Latin (7-bit ASCII) characters would be unable to acquire a licence from a Client Licence Server has been fixed.
- Where a proxy (with authentication) is being used in synchronisation between the Client Licence Server and FIS Licence Server, the maximum accepted proxy server password length has been increased from 20 to 25 characters.
- When a Prophet user’s Active Directory account did not have access to the default Active Directory entities they would have difficulty acquiring a licence. This has been fixed.
- The default properties of the Windows service underlying the Client Licence Server have been amended to make the service more resilient and installation easier.
- An issue which meant the Prophet Enterprise API would be unable to cope with a Prophet Licensing client when attempting to run multiple requests in parallel has been fixed.
Plugins
- An issue where the ADCo plugin function SET_PARAM truncated and forced four of the paramName argument values to have integral values when set, when in fact they could be non-integral, has been fixed.
|
2018 Q3 |
Licensing
Prophet Release 2018 Q3 introduces a new licensing technology. The previous licensing solution will not be supported with any release from Prophet Release 2018 Q3 onwards. Pre Release 2018 Q3 Prophet versions will continue to work and will be supported following the standard support lifecycle. However if you require new licence keys for additional users or due to hardware replacement then this will not be possible after December 2020. We therefore advise that all clients upgrade to Prophet Release 2018 Q3 or later well in advance of December 2020 in order to avoid any down time. Please contact your account manager to discuss how we can be of help. Unlike previous versions of Prophet this licensing framework will be written and controlled by FIS. This has some major advantages including simpler client installations and more rapid response to issues. Licences will now be user driven rather than machine. This will help both clients and FIS to implement the solution much more quickly, when new machines are added or replaced in an environment or when a disaster scenario occurs. We will also be able to expand the functionality beyond the restrictions imposed previously. Other advantages include better auditability and tracking of licences and improved support for virtualised environments. The licence options for Prophet Release 2018 Q3 are:
- User licences: Tied to an individual user’s Active Directory account such that only the Prophet user with the email specified on the licence can acquire it. This is similar to the previous Machine-locked solution.
- Group licences: These are licences that can be used by multiple users (from a defined list) within an Active Directory group, as controlled by their email addresses and selected by the customer. This is similar to the previous Floating licence.
- Site licences: These are licences that can be obtained by anyone who has access to the client licence server that is distributing the licence. The technology is safe for virtualised environments.
New licences will be allocated as follows. Machine-locked licences will be transferred, one-to-one, into User licences. Floating licences will be transferred, one-to-one, into Group licences.
New licences will be pushed out by us to your Client Licence Server (CLS). The CLS synchronises with the FIS Licence Server (FLS). The CLS therefore requires access to the internet and individual machines require access to the CLS. If a disaster event occurs and the CLS is lost then a new CLS simply connects to the FLS where replacement licences are synced.
If you require more advice or support regarding the changes to the licence solution please contact FIS Client Services or your local FIS representative.
User-Defined Functions
User Defined Functions (UDFs) are new objects available in Prophet Professional Release 2018 Q3. UDFs are designed to help reduce the need for repeated code within Prophet. In turn errors should also be reduced and maintenance of the code should also be easier. Each function allows for up to 250 lines of code with 9 inputs. They will return a single value out. The functions will not persist and all information must be passed in via parameters. Functions are stored in a Prophet library and can be imported across libraries and workspaces.
The following screenshots show how the new functions are created and how the format of how they are defined. For more details please see the Prophet documentation and help.
![](/images/fis/pp_udf_1.jpg)
![](/images/fis/pp_udf_2.jpg)
Nested Structures
New functionality to allow users to compare save point data has been introduced in Prophet Professional Release 2018 Q3. Users can compare data between nested points or between save points. This allows users to analyse the save point data to see where differences or changes are taking place. This will help users to explain results or to find errors in their nested structures code.
![](/images/fis/pp_ns_2018Q3.jpg)
Additional minor enhancements have also been introduced to model and table maps to help users to identify and fix issues.
Backup and Restore
Prophet Backup and Restore has remained largely unchanged since its introduction into Prophet. Prophet Professional Release 2018 Q3 has reworked this functionality to improve flexibility and auditability.
Users can more easily control what goes into a backup file and also what to restore. Users are also able to see more information in Prophet about the backup including who created it, when it was created and what version of Prophet was used without having to restore the workspace first.
User interface
In the indicator expression section of a variable auto-complete has been introduced.
The Modified by field has been added to more Prophet objects so as to improve auditability. |
Calculations
- We have fixed an issue when reading tables inside a module that would cause the worker to crash.
- Products that fail to generate will now not try to build. This will save user time.
- ” in the description for a enum previously caused the run to fail.
- An issues introduced to Copy Results has been fixed. This issue was introduced in a previous release and caused the results to be replaced rather than merged.
- A memory leak caused by enumerations has been fixed.
- A memory leak with In Memory Dynamic models has been fixed.
- A structured exception error when running a large Model Point file has been fixed. Previously Model Point Files over 1GB in size may experience issues.
- Errors causing runs to fail when using Table and Model Point optimisations have been fixed.
- Errors with nested structures runs and long file paths have been fixed.
User interface
- An issue whereby models created with reference to Intex were unable to remove reference to it have been fixed.
- An error resulting from editing the language in workspace options has been fixed
- Pasting in invalid data into individual policy results grid resulted in ‘Argument out of range error’. This has been fixed.
- Some issues around unlinking same as products have been fixed.
- Opening a product schedule for a second time caused an access violation error which has been fixed.
- Some performance issues with the formula editor have been addressed.
- An issue which prevented some tables opening caused by a table constraint has been fixed.
- Altering window size in diagram view incorrectly caused the individual parts to reset. This has been addressed.
- Changing a definition type now deletes the definitions from all libraries rather than the current one as previous.
- An issue entering a number in a table in exponential format when the exponent was a multiple of 10 would cause the value to be incorrectly altered has been fixed.
- Errors after importing enumerations have been fixed.
- Issues with fonts in code editor when used with Chinese windows locale have been addressed.
- Warnings asking you to save when no changes have been made have been removed.
- Appending definitions on export between 2 workspaces was not working. This has been fixed.
- We have improved the performance of the pre-run checks that are performed right at the start of a run.
- The description of structures, reports and table maps now have a limit of 80 characters in a similar way to other objects. If you use longer descriptions then these will be truncated on upgrade.
- Attempting to delete a product that is referenced by an accumulation would fail after it has been run. This has been fixed.
- Using initialise in table editor would fail if descriptions were included. This has been fixed.
- Diagram view may have incorrectly shown the wrong variable results for module link variables. This has been fixed.
- An issue with some queries in Excel being unable to be saved has been fixed.
- Altering the font in queries caused an exception which has been addressed.
Modules
- Improved error and warning messages when things go wrong. An issue calling a plugin from a module caused the product to fail.
- Code generation errors when attempting to read an array variable from a module may sometimes occur. This has been addressed.
- Arrayed module input variables are not correctly put in Post Calculation Loop. This has been fixed.
- We have fixed an issue whereby SWITCH statements were unable to reference module variables.
- An issue creating a new variable definition for a link variable caused an incorrect error which has now been removed. Similarly changing a variable from number or text to link caused an inconsistency in the variable definition has been fixed.
- After deleting a module link variable the module is still shown under the product in the tree. This has been corrected.
Nested Structures
- In some circumstances when an inner run fails the runlog was not produced. This has been fixed.
- New business failed when there was no existing business.
- Over optimisation issues which caused some runs to fail in apparently unrelated products has been resolved.
- An issue where models may fail when using Nested Structures with IMD and Reporting Arrays has been addressed.
- ENTRY_YEAR given incorrect value for wrong value in inner product new business.
- Inner structure warnings were not correctly produced when using split by simulation.
- Attempting to view a table map preview when the table map is empty resulted in an application error. This has been fixed.
Prophet API
- It was previously possible to set incorrect flags for dynamic runs which in turn caused unexpected run errors. It is now not possible to set these incorrect combinations.
- Excel would crash if you submitted a run to the API without setting the run setting.
- It was previously possible to set an incorrect dynamic period using the API. This has been fixed.
Runlogs
- Runlogs did not refresh properly if the Results Viewer was left open whilst a run occurred.
- Using the hyperlinks for the errors in a runlog would sometimes result in the runlog messages not being viewable. This has been fixed.
|
9.0.4 |
Nested Structures
We have introduced the ability to skip structure link processing in subsequent dynamic loops to improve runtimes. For each structure link in your run, you may specify in the run settings a different dynamic period for the structure link after a specified initial projection period. Prophet will then only execute that structure link according to your revised frequency. This is useful if you are more concerned about your short-term projections than those in the long-term. Nested Structures is now compatible with dynamic loop at start/end in the outer run. Table maps can now have six dimensions. Table maps, model point maps and structure links can now be imported from one workspace to another. Model point map variables can now be sorted by clicking on the headers. Searching within a workspace now searches the contents of model point maps and table maps.
Modules
Module links can now be conditionally executed on the value of a variable specified on the module link form. Provided this variable is time independent and of type number, if its value is 1 the module link will be executed, and will not otherwise. This provides the user with greater flexibility in controlling the calculations executed in their run. In products that contain a large number of model points, conditioning module links could help reduce runtime.If a module link is conditionally executed, an advanced option flag has been added to the module link form to specify whether zero should be returned from an unexecuted module link when referenced at runtime. If this flag is not enabled, Prophet will instead produce an error.The use of conditional module links is, in addition, fully supported with our other software:
- Uploading workspaces to PE
- Comparing results with PQA or queries
- Storing results with PRD
In the product tree the modules being used by the product are now shown. In a similar way under an indicator in the tree the associated modules that use that indicator are now shown.
Module diagnostic files are now shown more clearly in the tree. Previously it was not clear which files were product and which were module diagnostic files. These have now been separated.
We have improved the Module Tag functionality so that users can now search for tags and see which modules are associated to a tag in the tree. This helps users to manage the modules that they have in a workspace.
Module links and the variable name are now shown on separate lines with diagram view. This helps to improve the appearance when viewing variables of this type given the likely larger combined length of the two.
Compare
Historically Prophet has been able to compare products and libraries. We have added the ability to compare run settings, structures and structure links. These objects are compared in a similar way to products and libraries, and like these objects can be compared within the same workspace and across different workspaces.
A further enhancement to the comparison functionality is that following a product compare, input variables can be imported from one product to the other.
Calculations
If an Extended formula uses the function OPTION FIRST_MODEL_POINT_ONLY but needs to recalculate outside of the first model point then it will now error.
The READ_FLEXIBLE_TABLE statement has been updated to support the use of string literals with mapped explicit indices.
In Release 9.0 Update 3 the performance statistics provided in the runtime code generation diagnostics file for array variables gave the runtime for each individual array element; this has been updated to provide the sum-total for those array variables optimised out at preparation.
User Interface
A new total ‘Array Size’ column has been added in Details View for array variables.
When choosing the array dimension, in the properties of a variable the size of the dimension is now displayed.
When performing a find and replace, the changes would be performed one at a time and a validation after each change was then performed. This could make the formula invalid. It is now possible to perform a find and replace across the whole code in one go without performing a validation.
Flexible Table conversion can now be performed from outside of the table and without interaction by the user.
Prophet printouts can now optionally include the associated actuarial documentation.
Individual projection results grids can now be edited and managed from within Excel. Within the grid the user can now also delete multiple rows in one go. Similarly, within model point maps, multiple rows can be highlighted and deleted.
Previously, when clearing the Same As checkbox in the product properties, that product would be recreated with the default code from the library with the same indicators. This has been changed so that the new product becomes an exact replica of the original product. If a user wants to create a new product with the same indicators but with the default code then the user will now need to create a new product and add the corresponding indicators.
The product link alias and structure link alias screens have been enhanced.
Within a product, it is now possible re-hide core variables once they have been unhidden.
Diagram View
To help users track results, it is now possible to highlight a whole row of results within Diagram View. This is achieved by clicking on the date in the middle panel.
Within Structure Diagram View the boxes will be resized when the names are too big.
There is a new option to fix the layout of Diagram View so the layout can be remembered between instances of Diagram View and workspaces.
API
Commands within the API exist to be able to add a product to a structure. Extra checks have been added to prevent a product from being added to a structure which would make the structure invalid – for instance, due to the dynamic period of that level.
New commands to be able to amend the structure properties to support skip structure link have been added.
Prophet Results Database
Stochastic summary results can now be uploaded to a SQL Server Database using PRD.
Improved interconnectivity with Prophet Enterprise:
- Job ID now included as a field in the SETTINGS table.
- New -standalone argument added allowing results to be uploaded into separate tables for each run number. This was designed to facilitate the upload of Analysis of Change runs from Assumptions Manager.
New field in the RESULTS_INFO table containing the command line used at upload.
Changed the data types of various fields in the uploaded tables so that they are more appropriate, robust and consistent.
Further enhancements made for new functionality such as modules and individual policy results:
- SETTINGS table updated.
- Tables containing nothing other than key value fields are now optimised out of the upload (this frequently occurred with use of the -vars argument).
- Installation
The system installer now checks if the machine, once it has a worker deployed on it, has the correct SMB2 settings. SMB2 is a network protocol used to implement windows file sharing. The settings relate to how the file sharing client, in this case the worker machine, caches metadata information about file shares, which are used for sharing a workspace with workers. Examples of such caching include directory listings, file existence and file properties. This caching, if left enabled, can cause worker grids to have an incoherent image of what is and is not on the file shares, thus causing runtime errors, for example where a file that is seen to exist by one worker is not seen by another worker. The installer, if it detects the presence of SMB2 caching, now provides an additional option, selected by default, on the worker settings installation page. This option allows the user to automatically fix the SMB2 settings on the machine to which the worker is deployed. If the machine will not be used as part of a multi-machine distributed run or job then you do not need to turn off the SMB2 caching. In addition, the calculation engine checks the settings at the start of a run or job that uses multiple machines, and if unsuitable settings are detected it generates a warning in the system log part of the run log.
|
Calculations
- We have fixed various issues with Nested Structures and Modules.
- Debugging models with Public Persistent extended formula arrays no longer gives a code generation error.
- Updating table names used in Nested Structures’ table maps now works correctly upon next run even if you do not explicitly regenerate the structure.
- Split run by model point batches now works with modules.
- Array functions (such as SUM, MAXT, MINT, PROD) whose ranges are not time constant, are now correctly allowed for by the sequencer when working out time periods that need calculating for different variables.
- PROJ_RESULT and STOCH_RESULT, used in model runs, no longer think results are missing for an entire product and run number if some of the requested spcodes or variables are absent – this caused subsequent valid result requests to fail even when the results were present.
- The Run Monitor now shows more information about the internal progress of structure links when splitting nested structures by product or simulation.
- Improved the sequencing of optimised array variables when used with a goal seeking loop – previously they were sometimes not correctly included, or recalculated, in the goal seeking loop when they should have been.
- A model point optimisation bug, where part of the preparation logic would not always pass successfully has been fixed.
- A table optimisation bug causing a compile failure, involving hard coded table names in certain generic or stochastic table calls, has been fixed.
- Module links failing to execute did not always cause their products to fail as well – runs could complete with values for the main product produced and thus the run log would suggest the run had been successful; this has been addressed.
- If dimension bounds are changed and none of these dimensions are used by any of a module’s variables, then that module is no longer needlessly recompiled.
User Interface
- Previously importing libraries from one workspace to another incorrectly brought no enumerations that were referenced. This has been fixed.
- A change to table notes now prompts the user to save the table when closing so it’s less easy to close without saving table notes.
- It is now possible to set a conditional breakpoint to an enumeration element’s name when previously this had to be the element’s index value.
- An issue with opening save point model point files when ‘Show Default Row Value Column’ option was selected for Names/Descriptions has been fixed.
- In Diagram View number format now also applies to non-time-dependent values as soon as it’s changed and the number of decimal places is persisted in the Number Format dialog box.
- The dropdown for array filter in Diagram View has been fixed. Previously the blank entry was being removed and selecting an item could display a different item.
- Previously the name of the diagnostic file for a long product name or a product and module link was truncated in the tree, making it impossible to open. This has been fixed: the whole name is shown and the file can be opened.
- When changing variable definitions to module links every variable definition is opened. As it is only possible to have 50 windows open at a time in Prophet Professional, multi-select and changing more than 50 definitions was resulting in an application error. This has been changed so it is not possible to open more than 50 windows in this manner.
- An application error when there were multiple qualifying definitions has been fixed.
- A formatting issue in formula editor with enumerations when the value was in more than one enumeration has been fixed.
- FAC to Stochastic converter is now working as expected when the ‘Include Subdirectories’ check box is selected.
- When there are a large number of table constraints, for example on a mortality table, and an incorrect value was added, the error message could become unreadable. This has been fixed.
- Runs can fail if the path to the workspace contains non-ASCII characters. We have provided a warning when trying to execute a run that this may cause issues, enabling the user to mitigate the issue as soon as possible.
- Changing a non-dimension property of multiple variables which were a mixture of array and non-array variable caused the dimensions to be lost, this is no longer the case.
- The summary section on a batch compare when there were no differences is now being shown.
Prophet Results Database
- Improved the handling of invalid numeric values (e.g. +/-INF and NANs) sometimes found in results.
- There is now input validation for text files used with any of the results filters – invalid values are no longer permitted.
- Variables for a particular module link can now be specified with the -vars argument.
|
9.0.3 |
Nested Structures
A new text constraint has been introduced to allow more efficient code for reading array variables from the inner product. Nested Structures objects can now be printed from the Prophet User Interface. Nested Structures controls have been added to the Prophet Professional API.
Modules
Module tags have been introduced as properties on a module. When editing the module link these modules can be chosen to help the user to select which module should be selected. Module results can now be uploaded to the PRD. Diagram View has been enhanced so that users can move easily between product and module diagram view.
Modules can now be used with the PMPP run option.
Indicators can be restricted to only be used in modules or products. Search results now include module link variables.
Modules with Nested Structures
Modules can now be used in products that run within an inner or outer structure within the Nested Structure environment.
Books
Variables that are not in a book can now easily be printed.
API
In addition to the Nested Structures setting some other properties have been added to the API such as properties from the run setting that were missing. |
User interface
We have improved the printing of lists of objects where those objects have long names. An issue where the debugger would not stop on an array inside an extended formula has been fixed.
Library validate has been corrected such that an error is given when a referenced variable is renamed or the properties changed.Calculations
When a product has no model point file a binary individual model point file was produced when the option was turned on. This file is not able to be opened and causes an issue uploading the results to PRD. The file is no longer produced for products with no model points. A runlog issue where messages were duplicated when using Model Point Batches split method has been fixed.
Nested Structures
If using Nested Structures then previously the default maximum projection term would not feed through to the inner run setting. This has been corrected. When using a text variable within a DCS grouping Nested Structures run would cause the run to fail. This has been fixed.
Various improvements have made to the save point diagram view.
Previously inner run settings could be deleted without removing them from structure links. This could then affect upload to Prophet Enterprise. A warning is now given and if accepted the links are removed from relevant structure links.
Renaming a Model Point Map was incorrectly not renaming the DCS script. This has been fixed.
An issue where Structure Diagram View was not showing the inner structure correctly has been fixed.
An issue where Read_Nested_Stat was not working when reading a Same As Product has been fixed.
Modules
Adding a module link as a watch variable within the debugger and toggling a break point was not possible when the module link was open. This has been fixed.
The option ‘First level for stochastic results files’ was not working correctly for module variables. Results for all module variables were produced even if the product was below the level specified. This has been fixed.
Filtering the structure in the user interface now correctly applies the filter to modules as well as other objects. |