Version 2 introduces a breaking change to historical cached data from installations before version 2.0.0. Therefore, when you're upgrading an Exivity version 1 to version 2, all Reports will be automatically Unprepared during upgrade. After completing the upgrade, you will have to browse to your Report Definitions and Prepare each of them for the appropriate date period:
As part of version 2, outdated syntax in your Transformers will be automatically converted to comply with version 2 Transcript syntax. Your version 1 Transformers will be backed up during upgrade into the default backup folder %EXIVITY_HOME_PATH%/system/backup. To manually upgrade any of your version 1 Transformers, you may use the script provided in %EXIVITY_PROGRAM_PATH%/update-transcript-v2.0.0.bat (this script will upgrade any Transformer currently available in the default Transformer folder).
the service that was previously responsible for scheduling and execution of workflows ("Exivity Eternity Service" which ran eternity.exe) has been replaced by the Aeon component and runs as the "Exivity Scheduling Service". In case the "Exivity Eternity Service" was running under a non-system account, ensure to update the newly registered "Exivity Eternity Service" with the corresponding user service credentials.
June 06, 2018
New features
Minimum commit is now supported in the charge engine When generating a report, the results for any services that have a minimum commit value (and for which the usage does not meet that minimum commit quantity) will be adjusted to reflect that minimum commit value.
Updates to internal service and rate schema The rate attributes min_commit
and threshold
are now implemented and the API will return a slightly different schema for the /v1/services
endpoint (and related /v1/dump
models) - the rate_type
attribute is now called charge_type
. More information can be found at https://api.exivity.com/#0f8c2ac2-1f56-3c54-3000-210a5e94bd61
The charge engine now includes information about proration adjustments When applying proration to a monthly service, the charge engine will now include information in the raw report data which shows the amount that the unprorated charged was reduced by. This information will be used by the GUI in a future release.
Proration is now applied to monthly services where applicable Report results for monthly services that are flagged as being prorated will now reflect a percentage of the monthly charge, based on the number of days in the month that the service is used.
GUI preferences are now saved for each user For example, selected reports, date ranges and filters are now persisted for each user, so they can be restored after logging out and in again.
The charge engine can now execute a script passed to it via standard input The charge engine can now execute a reportfile passed to it via standard input. This internal change results in fewer termporary files on disk during normal use.
Error reporting can now be disabled in configuration
Transcript can now import usage data from existing RDFs The 'import' statement in Transcript can now retrieve the raw usage data from an existing RDF file.
Usernames are no longer case sensitive when loggin in
Transformers now always run with loglevel = warn
when triggered in workflows
Service and service category filters now only show items actually in the visible report
USE will now trap more HTTP errors When enacting some HTTP operations, if an error such as a timeout or invalid host is encountered, USE will now return an error in the HTTP_STATUS_CODE variable instead of automatically terminating the script.
Added daily usage information for monthly services in the charge engine When generating a report, the charge engine will now include information about the usage quantity for each day in the charge interval. This information will be used by the GUI in a future release.
Drilldown functionality is now available from the legend in reports
Reference account information in ETL Account information can now be imported directly during the data transformation step, such that existing account data can be used to enrich the data being processed.
Increased HTTP client timeout USE will now wait for a three minutes by default before deciding that the connection has timed out if no data is received after the initial connection to a server has been made.
Improved the syntax for options to the 'import' statement in Transcript The options supported by the 'import' statement must now be formatted such that there is a single option per line of script. This removes the previous requirement to quote the list of column names when using 'select' and 'ignore', as well as the requirement to quote the expression used by the 'filter' option.
Added a system variable to return the last day of any given month A new system variable has been implemented which will return the last day in any given calendar month.
The 'correlate' transform now supports a default DSET for column names The 'correlate' statement always uses the default DSET as the destination for correlated columns but now supports an 'assume' parameter which determines the default DSET within which to locate non-fully-qualified source columns.
Added a button to the detailed widget in reports to toggle search field
Added an option to configuration to add a custom Google Analytics property
The charge engine can now be used to identify unused service definitions
The charge engine now supports the ability to retrieve a list of services which are not used by any existing reports.
Bug fixes
Fixed an issue where the depth filter wouldn't reload after preparing a report
Improved the print/PDF layout of consolidated invoices
Fixed a bug where the summary in Instance reports would sometimes remain empty
The charge engine now correctly deletes un-needed RDFs The charge engine now includes a mechanism to 'unload' historical data. This is an internal mechanism which will be used by the GUI in a future release.
Services for users with limited access to accounts are now filtered
When creating services, an instancecol parameter is now required _Previously it was possible to create services with no instance_col specified. This would result in missing data in reports if no instance_col was specified. Transcript now requires that an instance_col parameter is provided to the 'service' and 'services' statements.
Consolidated invoices can now be exported to PDF
Fixed an issue where in some circumstances the reports wouldn't load
It is now possible to view budget audit trails
The 'import' statement in Transcript now correctly imports usage data in all forms of the statement Fixed a bug whereby when using automatic source and alias tagging, the 'import' statement would not permit the importing of usage data from an existing RDF
Improved readability of text when a light background colour is chosen
USE will no longer reject some valid expressions In some cases, a valid expression in a script was rejected as having an unbalanced number of brackets. This has now been fixed.
The charge engine can now delete services associated with DSETs that are unused by any reports Fixed a bug where the charge engine would not correctly delete services if there were no RDF files for the DSET that the service is associated with.
The reset pins button has been moved to the top of the detailed widget in reports
May 03, 2018
New features
Implemented search field in report details table Ability to filter and pin a selection using a search query in the Accounts, Services and Instances report details table
Quantity adjustments can now be applied to a customer Adjustments can now also be set to affect quantities instead of charges. Both relative and absolute quantity adjustments are supported.
Ability to show consumed quantity in a report
Ability in transcript to convert number bases The following is now possible in a transcript: convert colName from dec|hex to dec|hex
It is now possible in the Invoice cost report to consolidate all child accounts on a single page
Added option to create workflow step which purges Proximity cache.
Beta version of budget manager & viewer is now available.
Bug fixes
When encrypting a variable it could get corrupted
Transcript could previously crash when running for a large date range
Workflows status tab did not consistently show historical log files
Fix for Invoice report error "Depth can't be empty, 0 or greater than 5"
April 13, 2018
Bug fixes
Extractor arguments where not used correctly when running USE script interactively from GUI
Report timeline graph could previously show zero when there's consumption
v1.6.1
April 13, 2018
New features
Add profile page where logged in users can change their own e-mail address and password.
Bug fixes
Fixed issue where scheduling multiple steps could corrupt Workflow WARNING: as of this release it is required to re-create your Workflows from scratch, to avoid potential issues
Fix loading overlays to improve multitasking in GUI
Fixed an upgrade bug which caused creating report definitions to be broken
Ability to specify to and from dates for transformers in workflows.
v1.6.0
April 8, 2018
Notable new features
[EXVT-971] - Implement day and month name variables in USE
[EXVT-973] - Add option to enable.disable client certificate support in USE
[EXVT-979] - Scheduler is now called workflows
[EXVT-1021] - When using COLNAME_NOT_EXISTS in a filter, it always evaluates to 'TRUE'
[EXVT-1024] - Internal Error when applying filters in a 'where' statement if import options are used
[EXVT-396] - Garbage collector
[EXVT-744] - Glass config file for default port/host
[EXVT-749] - Stacked bar chart option in accounts/services report, including optimized legend
[EXVT-805] - Extend `Run` tab in Transformer with `from` and `to` date
[EXVT-966] - Added Instance reports
[EXVT-985] - Make toggle so reports can go fullscreen
[EXVT-986] - Connect graphs + legend
[EXVT-988] - All lists in the front-end are now sorted alphabetically
[EXVT-993] - Ability to pin report items
March 26, 2018
Notable new features
[EXVT-370] - Add support for SAML Single Sign-On
[EXVT-849] - Add ability in transcript aggregate to average the values from a column
[EXVT-879] - Add ability to base new extractor on templates from GitHub repository
[EXVT-958] - Enhance the 'hash' statement in USE to support base-64 encoding of the result
[EXVT-780] - Fixed manually editing the value of an encrypted variable in USE can cause a crash
[EXVT-924] - Fixed Eterenity hourly schedule does not consider start date
[EXVT-946] - Fixed OSI_TIME_UTC variable is missing a trailing Z
[EXVT-947] - Fixed some accounts show slight discrepancies when comparing to Excel calculation
[EXVT-949] - Fixed radio buttons don't update when changing adjustments in Glass
March 19, 2018
Notable new features
[EXVT-940] - Fixed duplicate headings not always eliminated in filtered import in Transcript
[EXVT-941] - Fixed a Transcript crash on 'move rows' or 'delete' after a 'replace'.
March 16, 2018
Notable new features
[EXVT-871] - Added 'include' statement to Transcript
[EXVT-932] - Added UTC versions of time-related variables in USE
[EXVT-105] - The API can now render an invoice report as a native PDF document
[EXVT-691] - Ability to change the service description via the GUI
[EXVT-779] - Made updating of Extractor variables more robust, and added support for encrypted variables in the GUI
[EXVT-810] - Added the ability to use wildcard in import statement in USE
[EXVT-823] - Added a daterange wrapper for Transcript
February 23, 2018
Notable new features
[EXVT-889] - Fixed a corner case where USE can stop working when executed from Glass
February 23, 2018
Notable new features
[EXVT-720] - Add option to choose custom currency symbol
[EXVT-741] - Move report selector to sidebar
[EXVT-847] - Improved syntax highlighting for USE and Transcript in the Glass script editor
[EXVT-868] - Add additional checks to global conditions in Transcript
[EXVT-827] - Implement import filters in Transcript
[EXVT-881] - Add escaping option to import statement in Transcript
[EXVT-476] - Added scheduler interface
[EXVT-798] - Add report depth breadcrumbs to reports
[EXVT-832] - Extractor log is now shown when running on-demand through GUI
[EXVT-842] - Fixed an issue which caused small discrepancies when using different reporting definitions
A full changelog is available upon request.
February 09, 2018
Notable new features
[EXVT-102] - Ability to extract data from databases using ODBC connection
[EXVT-693] - Scheduler endpoints in API
[EXVT-802] - Ability to schedule the preparation of report definitions through the GUI
[EXVT-774] - Enhanced conditional execution in Transcript with support for regex matching
A full changelog is available upon request.
February 03, 2018
Notable new features
[EXVT-818] - Fix for Cannot read property 'relationships' of undefined
error when logging in as a user with limited account permissions.
A full changelog is available upon request.
February 02, 2018
Notable new features
[EXVT-253] - Syntax highlighting for USE
[EXVT-255] - Add support for XML data extraction in USE
[EXVT-600] - Enable parallel processing in Eternity
[EXVT-681] - Create USE script for reading AWS S3 bucket
[EXVT-717] - Extractor and Transformer execution must show last 25 lines of corresponding log file
[EXVT-739] - Perform cross-browser test and add warning in unsupported browsers.
[EXVT-770] - Improve orbit performance when syncing large amounts of records
[EXVT-777] - Select single days in datepicker
[EXVT-783] - Support in Eternity for hourly and monthly schedules
A full changelog is available upon request.
January 12, 2018
Initial release.
To obtain a copy of the Exivity installer, you can use the following link:
Upgrading to the latest release is a straight-forward process. More information.
March 25, 2020
Bug fixes
Fixed an issue where deleting a metadata definition could remove a dataset metadata entry from the database. No actual data was affected by this bug.
Fixed an issue related to Transformer preview The preview menu could reference an incorrect line number when reporting a Transcript code error.
Fixed an issue when renaming a DSET
If you refered to an incomplete DSET name in a rename
statement, Transformer could crash.
Fixed an escaping error when importing file in a Transfomer
The Transformer escape option doesn’t escape last quote: \“
at the end of a field
Fixed a Transformer issue with skip_corrupted_records
When import option skip_corrupted_records
was set, import could fail if last column in the record is missing closing quote. This has been resolved.
February 03, 2020
New features
Added support for LDAP authentication LDAP authentication was available as beta feature already, and is now generally available. A guide will be added to our documentation soon. Configuration options are available in the Settings screen (Single sign-on tab).
When a user session is about to expire, an option is provided to prolong the session
Added option to specify custom dataset name in transform previewer
Added 'unsaved' warning in extractor/transformer editor A warning is displayed in the toolbar when editing an extractor or transformer and changes are not saved yet.
Added option to run workflow steps in parallel When adding new steps to a workflow, it is possible to uncheck the 'wait' toggle for any given step. This will then run the step simultaneously with the previous step. When the wait toggle remains checked, all previous steps will finish executing before the step is started.
Added ability to search parent account names In the Accounts report, it is now possible to search by parent account names in the 'detailed' table.
Added columns in reports data table Added account and service key as extra columns to the reports 'detailed' table. It is also possible to search for, and export, these values.
Updated Nginx and PHP Updated the Nginx webserver to version 1.17.8 and PHP to version 7.3.14
Custom escape character in extractors The escape statement now accepts an optional escape character to be used instead of the default backslash when escaping quotes in the value of a variable.
Implemented support for JWT web token authentication in extractors In order to support sources that require it, such as Google Cloud using OAuth 2.0, USE now supports the generation of a JSON Web Token. For more information please refer to https://docs.exivity.com/data-pipelines/extract/language/generate_jwt
Search by account / service key In the Accounts and Services overview screens, it is now possible to search by account/service key instead of the name.
View metadata in report data tables Metadata fields can now be selected as optional columns in the Accounts and Services reports' 'detailed' tables. They also appear in search and CSV export.
Added support for Firefox browser
Improved detection of web-app URL This is especially useful in features such as SAML authentication and the sending of notifications (e.g. e-mail). The app URL is auto-detected and can be modified in the Settings screen (System tab).
New permissions added Two new permissions have been added to usergroup settings: Manage metadata definitions and Manage datasets. If a usergroup is set to have all permissions, these new ones will automatically be granted to members of that group.
Added metadata for services Metadata can now be added to all services just like with accounts. Define a metadata definition first, then attach the definition to a dataset in Data pipelines > Datasets. All services in this dataset will now use this set of metadata fields. Metadata information itself can be added and modified in the Services > Overview and is available in the Services reports.
Breakdown information available for monthly services For monthly services, breakdown information is now available in the Instances report 'detailed' table. To view this, make the 'Usage' column visible by clicking the overflow menu > Columns > Usage. The daily usage breakdown for monthly services is available in a pop-up screen.
Added account breadcrumbs in Account report legend
Datasets can now be managed from a dedicated screen Navigate to Data pipelines > Datasets to delete individual days from the set, and to assign a metadata definition to all services in a dataset. We've also made it easier to delete multiple days at once.
Bug fixes
Fixed a small visual issue in the 'about' page
Fixed a rare issue with metadata In some cases, selecting a value from a 'list' type metadata field could lead to a crash, This has been fixed.
Fixed a small visual issue with updating workflow schedules
Fixed a crash on the adjustments screen When no reports are available in the system, the adjustments screen could crash. This is now fixed.
Check for key column presence before correlation The correlation function in Transformers now checks for the existence of the key column in the default DSET. Previously, if the column was missing this resulted in an SQL error being logged. In such cases a clearer error message is now generated.
Improved error reporting when importing non-matched CSVs in a single operation When importing multiple CSV files into a Transformer using a regex to match the filenames, if one had differing columns to the others then an internal error was reported. This is now correctly reported as a normal error as opposed to an internal one.
Sub-directories in the lookup folder are no longer displayed in the Lookup editor
Fixed an issue with services using an average charge model For monthly services with an average charge model, if there was usage on the last day of the month then the quantity on that last day may not have been not be factored into the average calculation. This issue has now been fixed.
Please note: It is recommended that the reports are reprepared where possible to ensure accurate historical reporting.
Fixed an issue with links on the Accounts overview page Fixed a minor issue where a link to Data pipelines > Report could sometimes be shown even if a user didn't have the appropriate permissions.
January 02, 2020
Bug fixes
Fixed an issue when aggregating an empty DSET Aggregating an empty DSET cauld case a Transcript crash, this has now been fixed.
Fixed resource leak in Workflow Engine Aeon was leaking Windows handles for internal I/O events that caused problems creating new workflow processes after several days of heavy use. This problem is fixed now.
December 11, 2019
New features
Improved aggregation function in Transcript
Aggregation performance improved, especially when processing large sorted datasets
Bug fixes
Resolved a rare Edify crash Resolved a rare bug with 'end of file' checking in the Edify pre-processor
Fixed an issue where changes to workflows were not processed in the scheduler
Case-sensitive column names in correlation
Correlate doesn't fail with SQL error when two columns in DSET have similar names that differ only in case
December 04, 2019
New features
Restricted editing of users logging in from SSO providers Updating the username and password in the API is no longer possible for users logging in from SSO providers.
Add PUBLIC_ROOT to configuration Previously, if Glass and Proximity were on different machines, Proximity would guess the Glass base URL. This is not possible to set this variable via the PUBLIC_ROOT configuration value.
Bug fixes
Fixed an issue with character encoding in the transformer and workflow API endpoints
November 25, 2019
Bug fixes
Implemented a fix to avoid global rate revision changes The global rate revision for services that are populated using the set_rate_using parameter in the services block, could cause the rate to be updated. This behavior has now been changed and existing rate revisions will no longer be touched.
November 15, 2019
New features
Improved the performance of the workflows screen when there are a large number of historical workflow runs.
Bug fixes
Fixed a cosmetic issue on the reports page.
Fixed an issue with the search not showing results on the dashboard.
Restored the functionality to cancel a login attempt.
In the transformer preview, datasets are now detected when the import statement has indentation.
Fixed an issue where no loading indicator was shown on the login screen.
Fixed an issue with overwriting services
Fixed an issue which would cause errors to appear in the log (and the service not to be updated) when overwriting a service with an updated version of itself.
November 13, 2019
New features
Added a warning when the current sessions is about to expire. A user then is given the option to renew the session without having to log in again.
Added transformer error annotations. When previewing a transformer script containing an error, the editor will show an annotation on the line where the error occurred.
Small changes to settings screen, single sign-on tab. In preparation of an upcoming release of an LDAP adapter for single sign-on, some small visual changes to the settings have been made.
SQLite version updated SQLite updated to version 3.30.1 to match Edify
Added HTTP redirect limit option in USE Added new option http_redirect_count that allows to limit number of HTTP redirects to follow, or disable following redirects (default) when building an Extractor
Added function in Transcript to capture parts of a string value
When building a Transformer, it is now possible to obtain values from a cell by using the @EXTRACT_BEFORE and @EXTRACT_AFTER functions. For more information visit https://docs.exivity.com/data-pipelines/transform/language/if#extract_before
Bug fixes
Fixed an issue where some screens could display an Insufficient rights error. This was caused by API calls for which the currently logged in user didn't have access to. This has been fixed by not exposing this part of the functionality in the GUI.
Fixed an edge-case where the GUI displays a blank screen after an upgrade. In some circumstances, after an upgrade, the GUI would start with a blank screen. It was possible to access the GUI by refreshing the browser window. This is no longer needed.
Fixed an edge-case where removing a workflow could lead to an error. Sometimes, when deleting workflows containing workflow steps - which in turn contained references to reports which were removed since creating the workflow - the API could not remove the workflow. This has been fixed.
Fixed an edge-case where the GUI could crash when fetching reports.
Fixed a bug where the GUI could crash in older browsers in the transformer screen.
Fixed a bug where a license warning was shown even when there were no problem with the license.
Added regex validation for metadata string fields. When adding an invalid regex, the user will now get an appropriate message when saving metadata definitions.
Fixed a bug which could prevent workflows from being updated. In some cases, when a user visited the Status tab in the workflows screen, it would prevent workflows from being updated (including adding/removing schedules and steps). This has been fixed.
Corrected a off by 1 problem in the Transformer preview Previously, the execution of the transformer script would stop at the currently selected line in the editor, while the interface suggested that execution would stop_after_the currently selected line. This has now been corrected so that execution will include the currently selected line.
Fixed a bug where the list of columns was not updating when creating a new report.
Fixed an issue where Extractor arguments where truncated when 0
was one of the arguments.
Fixed an issue where the Run Now button on the workflow screen could be greyed out in some cases.
The service worker script in the front-end no longer relies on a third-party content delivery network (CDN).
Fixed an issue where API requests were not forwarded correctly on hosts with a web proxy setup. This was particularly a problem with requests to the API not invoked from within the GUI, e.g. when loading SAML2 endpoints on the API.
Solved a security issue (internal reference: EXVT-2812)
Fixed an issue whereby DST changes could affect certain operations
Exivity makes frequent use of date ranges for operations such as preparing and running reports. We have identified, and fixed, an issue whereby sometimes when a DST change resulted in the clocks going back an hour, the day in question would be treated as two separate days.
October 29, 2019
New features
Ability to rename a service category in the GUI In is now possible to manually rename a service category in the Glass interface
Notification are now out of beta The configuration of Workflow notifications is now GA
Ability in the GUI to create and delete and account It is now possible to manually create and delete accounts from a report definition by using the Accounts menu in the Glass interface
Ability to change the Unit label of a Service in the GUI It is now possible to manually change the Unit label of a Service in the Glass user interface
Improved Proximity error responses If any of the backend components returns a valid JSON error response, this will now be shown to the user.
API handling of requests when including relationship When Proximity handled a request to include relationships, it did not return a proper result for a relation that doesn't exists.
Removed empty arrays from the budget results Proximity now filters out empty arrays from the Horizon budget output
Added the ability to create and view budgets It is now possible to create and report on multi-level budgets. More information on this feature can be found at https://docs.exivity.com/accounts/budgets
Add ability to specify a specific dataset while previewing the output from a transformer
Updating relationships through the API has been improved and is now more efficient in some edge case scenario's
support for option services = update When populating services in Transcript, it is now possible to update Unit label, Service description
Bug fixes
Fixed a Glass GUI overflow issue A GUI overflow in the details part of the account overview screen could occur. This has been resolved.
Proximity will enforce max account level Changed the code to now load the parent account and check the level before adding the relationship when creating new accounts in the GUI / API.
Dropdown expanding incorrectly to top In budget management screen, a drop down menu could previously expand to the upper region of the screen, while enough space was available downwards.
Resolved an issue with the Summary Report title When changing the Summary report title in the administration menu, changes were not reflected on the report. This has now been resolved.
Transformer margins and alignment Corrected visual margins and alignment in Transformer menu
Resolved 3 cosmetic issues for the Transformer Previewer Preview could go off-screen when moving the divider bar. The vertical scrollbar is now always visible. When not in full-screen, prevent having a vertical scrollbar in the editor as well as in the browser.
Removed the forward slash prefix from copied lookup file path
Fixed an issue where the summary report could show null
when no header/footer were configured
Fixed an issue when importing CSV or Excel files in lookups
System wide date format configuration is now used for all summary report dates
Fixed an issue when removing a single service using bulk edit
Fixed an usability issue when moving back or forth multiple steps at once in the reports date range selector
Fixed an issue where Minimum commit line item
was displayed instead of the user-configurable text
Added support for SAML2 when the API is behind a proxy server
Improved error reporting in the API for input validation errors
Proration is now applied correctly Solved an issue where monthly prorated service rates were applied incorrectly
Rate revision update issue Transcript will now create a new rate revision if needed, when using the serivces block in read only mode
September 18, 2019
Fixed a Glass GUI overflow issue A GUI overflow in the details part of the account overview screen could occur. This has been resolved.
Proximity will enforce max account level Changed the code to now load the parent account and check the level before adding the relationship when creating new accounts in the GUI / API.
Dropdown expanding incorrectly to top In budget management screen, a drop down menu could previously expand to the upper region of the screen, while enough space was available downwards.
Resolved an issue with the Summary Report title When changing the Summary report title in the administration menu, changes were not reflected on the report. This has now been resolved.
Transformer margins and alignment Corrected visual margins and alignment in Transformer menu
Resolved 3 cosmetic issues for the Transformer Previewer Preview could go off-screen when moving the divider bar. The vertical scrollbar is now always visible. When not in full-screen, prevent having a vertical scrollbar in the editor as well as in the browser.
Removed the forward slash prefix from copied lookup file path
Fixed an issue where the summary report could show null
when no header/footer were configured
Fixed an issue when importing CSV or Excel files in lookups
System wide date format configuration is now used for all summary report dates
Fixed an issue when removing a single service using bulk edit
Fixed an usability issue when moving back or forth multiple steps at once in the reports date range selector
Fixed an issue where Minimum commit line item
was displayed instead of the user-configurable text
Added support for SAML2 when the API is behind a proxy server
Improved error reporting in the API for input validation errors
Bug fixes
Fixed an issue with nested conditions in Transformers If a Transcript script opens a block of statements using 'if' or 'where' but does not have a closing brace, then if the transformer was run for multiple days it was possible to get an error stating that the maximum depth of nested statements had been reached. A check has now been implemented at the end of script execution which will verify that there are no unclosed statement blocks in effect. If there are then a meaningful error message will be logged and the task will fail.
Fixed a memory issue in USE A memory related corner case with certain Extractors could trigger an endless loop. This has now been resolved.
Removed error for future dates When reporting on a future Budget period start date , Horizon produced an invalid error message. This has now been resolved.
September 11, 2019
New features
Added the ability to Manage and View Budgets It is now possible to create and report on multi-level budgets. More information on this feature can be found at https://docs.exivity.com/accounts/budgets
Added header validation in the lookup editor
Added the ability to change mail server encryption It is now possible to select TLS, SSL or No mail encryption when configuring an e-mail server
Ability to disable SAML2 user creation Enabled an option to not automatically create new users in SAML2 configurations
Extractor/Transformer editor will wrap long lines The editor will now wrap very long lines in order to make them more readable.
Added Budget Viewer API Endpoint Ability in the Proximity API to call budget viewer.
Ability to Search for Service and Category Added Service Category as a searchable field in the Services Report. Also added Service as searchable field in Instance Report.
Added API suppot for Global Variables The Proximity API now has CRUD support for Global Variables. Support in Glass GUI, Extractors and Transformers will be added in a future release.
Solved an issue with component encoding The USE component-encode did previously not encode numeric values. This has now been resolved.
Added the ability to manually create services A user is now able to manually create one or multiple services in the Service Catalogue
If the logfile is not writable, terminate the Transcript task Transcript changed to fail if log file cannot be written, rather than falling back to using stderr
Adjustments are now included in service group subtotals Adjustments were previously ignored from service group subtotals. This behavior has now changed, so that adjustments are now included in both subtotal and total costs in the cost summary report
Backend support for previewing a custom DSET In Transcript preview mode, a user can select a non-default DSET to preview. GUI support will be added in future release
Added a warning when using Etc timezones When a timezone in a Workflow is set to Etc, the user will receive a warning to make them aware of the Etc timezone behavior. To learn more, please consult the following article: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)
Added new table to database for Global Variables and Environments
Bug fixes
Transcript fails if service key exceeds allowed size
When adding services, if service key is longer then 127 characters, Transcript fails with descriptive error in log file
Improved diagnostics in Budget engine If there is no usage data to reporting period, Horizon returns more detailed diagnostic information
Fixed crash in case of invalid budget configuration Horizon was crashing when a budget revision contained no budget items. Issue has been resolved, and a more detailed error message has been added
Improved error diagnostics in Budget engine in case of a missing filter Horizon was producing incorrect error message when budget item referenced non-existent filter. Error message fixed to report specific probelm
Improved error handling when creating an RDF where 2 or columns have the same name with different cases Transcript will now analyse the column headings before creating an RDF and generates a meaningful log message when 2 or more column names would conflict before writing the daily RDF
Transcript fails if service key exceeds allowed size When adding services, if service key is longer then 127 characters, Transcript fails with descriptive error in log file
August 28, 2019
New features
Added endpoints to the API to create, update and delete service categories CRUD API endpoints are now available for both services and service categories.
Bug fixes
When encrypting variables, the encrypted result is now deterministic for any given system When encrypting variables, it was possible that for the same input value, different encrypted values would be generated in the script. This was harmless, but has now been fixed.
Buffer reset before HTTP retries There was an error were a buffer was not reset before retrying HTTP request. Therefore a buffer in some situations could contain the result of several tries, causing an invalid XML or JSON payload. This error was fixed by resetting the buffer before every retry.
Step output limited to 1MB Log from standard output of a Workflow step is limited now to 1 MB to minimize database polution
Added an automatic process to clean up excess workflow logs
The level parameter on the accounts API endpoint is now an integer instead of a string
Improved API error messages for validation errors
Added valid default value for service.charge_model
Newly added field charge_model contains NULL values for existing services. These are now migrated to peak (1) as that is the default service charging behavior.
Upgraded nginx to version 1.17.3
Upgraded the nginx web server from version 1.17.1 to version 1.17.3
August 08, 2019
Bug fixes
Fixed variable resolution after 'if' block
Transcript sometimes failed to resolve variables after skipped 'if' block.
Upgraded PHP to version 7.3.6
August 06, 2019
New features
Removed Github links in white labeled configurations Removed the github links for extractors and transformers when using a white labeled install
Removed default logo and icon for white labeled configurations Removed the standard Exivity logo's and icons when using a white labeled install
Updated disclaimer for white labeled configurations Disclaimer does not reference Exivity anymore when using a white labeled configuration
Extractor scripts can now use the HTTP PATCH method The 'http' statement now supports the HTTP PATCH method
Bug fixes
Fixed an issue with notification drivers
Pigeon could not find the notification drivers for Slack and SMS. This has now been fixed.
Fixed an invalid API error when resetting password Reset password could return an internal error (500), if a password didn't exist for the user. This was an invalid error, and has been changed to a valid 204 response.
July 31, 2019
Bug fixes
Fixed an issue where a log message could be incorrectly tagged as an error When creating services, an error message may be generated in the logfile which begins "services: set proration for service". This should be a debug level message and is not an error. This has now been fixed.
Fixed an issue where the error message generated by the append statement could be incorrect Fixed an issue whereby when appending one DSET to another, if the first DSET did not exist then the resulting error message in the log would state that it was the second DSET that doesn't exist.
Fixed an issue with embeds When the embed option is enabled, if the fields in the CSV to import were quoted then embed would not work as expected. This has now been fixed.
Don't resolve variables in 'else' branch being skipped Transcript doesn't resolve variables in 'else' branch when 'else' is not executed, therefore it removed 'unknown variable' errors in the situations when variables declared and used only inside 'else'
July 10, 2019
If your Exivity installation connects to the Internet thru the use of an Internet Proxy, you will need to ensure that a number of system variables are in place according to this manual before upgrading to version 2.4.7 or higher
New features
Transcript script content is stored in RDF A copy of the ETL processing script used for generating data for any given day is now stored in each RDF alongside the processed data itself, thus enhancing support and diagnostic processes.
New import option to include the name of the imported file(s) It is now possible in a Transformer to automatically add a column to each dataset, which will contain the name of the imported file(s). This can be achieved by enabling the filename_column = true
import option.
Support for auto retrying failed HTTP requests in USE If an HTTP request fails during the execution of an Extractor, the script can now be changed to set the option http_retry_count. This will determine the amount of times a HTTP request is retried. The default value is 2 retries.
Extractor scripts now have separate automatic variables for diagnosing HTTP related issues When connecting to a server over HTTP, the HTTP_STATUS_CODE variable will now always contain a numeric value. Any textual supplementary information pertaining to that value can be found in a new variable called HTTP_STATUS_TEXT. In the event that a timeout occurs and no HTTP response is received, the HTTP_STATUS_CODE variable will contain the value -1.
Bug fixes
Continue when http get_header yields no results When retrieving the text of a header from an HTTP response in an Extractor using the http get_header feature, the Extractor script wil now continue to execute even if no header content was found.
Avoid overwriting of services because of charge_model introduction Fixed a bug where if the charge_model was changed, the update would not be reflected after executing the Transformer script. Now, when using option services = overwrite in a script, services will be recreated if the charge model changes.
When creating services sometimes a rate revision would be created when there was no need to do so Under certain circumstances, when updating the service definitions via the services statement in Transcript a new revision could be created which was a duplicate of the existing revision. This has now been fixed.
June 21, 2019
New features
Service category totals are added to summary reports
Removed the 'Use local storage' configuration setting Now, the data in the interface is always synced with the server in order to better ensure data integrity.
Fixed an issue when aggregating a DSET that is not the default DSET The aggregate statement may have failed to correctly aggregate a DSET if the DSET ID specified in the statement was not the default DSET. This has now been fixed.
When logging out, users are redirected to the login screen automatically Instead of showing an intermediate screen requiring a user to first click on a link to login again.
Streamlined the usergroup permissions to align with the new navigation structure
Created new automatic variable UNIX_UTC in USE A new automatic variable is now available in extractor scripts. This is called UNIX_UTC and will return the current UTC time as a UNIX timestamp value.
Implemented a new 'average' monthly charging model Monthly services may now be created which are charged based on the average quantity used throughout the month.
Deprecated the current budget feature in favour of a new implementation The new budget implementation will be released in Q2-2019.
Added an option to Transcript to skip invalid records during import It is now possible to skip invalid records during the import phase of a Transformer.
Improved ordering of options in the side menu The menu on the left hand side of the interface has been overhauled in order to group the options in a more logical manner.
Now only privileged users will see an alert message when debugging is enabled
Manual account administration The Exivity back-end now supports manual creation, editing and deletion of accounts GUI support for this feature will be included in a future release
Added lookup editor for ad-hoc data sources Lookup data sources can be used for various types of data sources not obtainable through automated extractors. Edit lookups by navigating to Data pipelines > Lookups. Read more at docs.exivity.com.
Added the option to modify or translate certain labels displayed by the Exivity interface. Find the new options by navigating to Administration > Settings > Translations.
Bug fixes
Workflow notifications status trigger Fixed an issue where a notifications was always send regardless whether the failed / successful condition was met
Workflow status log historical dates Fixed an issue where the status logs for a workflow could display incorrect timestamps
Fixed an issue which could lead to a crash in the GUI for certain edge-case adjustment configurations
Fixed a small issue which prevented empty metadata values to be stored
Do not send notifications for internal workflows Changed behavior of the Workflow engine to only send out notifications for user created workflows, and not for internal/garbage collector jobs
Updating Workflows during Workflow execution Fixed an issue were none of the workflows could be changed while a Workflow was running
Fixed a bug which prevented certain pages from showing correctly when no reports are defined
Fixed an issue whereby retrieving audit information from the API could fail
Fixed an issue with workflows containing 12 steps or more Fixed an issue where workflows with 12 or more steps could cause an API error.
Fixed an issue with newlines in scheduler log entries On occasion, it was possible that log entries generated by the scheduler would contain newline characters which could cause problems with the log viewer. This has now been fixed (log entries should no longer contain newlines).
Fixed an issue whereby credentials in a connection string could appear in the logfile When using a direct connection string with credentials to collect from an external database, under some circumstances an error message could contain a copy of the connection string. Log entries containing connection strings should no longer contain credentials.
Workflow management menu option is hidden from users without permission to manage workflows When logged in as a user who does not have permission to manage workflows, the GUI will hide workflow management options. Previously, users without the rights to do so were unable to perform any actual workflow management even though the option was displayed.
Fixed an issue that could cause workflows to stop working Fixed an issue whereby on rare occasions, the scheduler could leave its configuration database in a locked state, leading to problems running workflows.
Implemented support for decompressing ZIP files that expand to more than 2Gb
Fixed an issue whereby the data status associated with a report would sometimes not be shown When accessing a report definition, sometimes the data status (the list of dates and the status of the data associated with each date) would not appear until the report definition was accessed a second time. This has now been fixed.
Fixed a bug which sometimes made it impossible to go into full-screen mode in the GUI
Fixed a bug which caused a warning to be incorrectly displayed when users tried to change their password
Fixed an issue whereby on rare occasions monthly services could have adjustments applied more than once Fixed an issue whereby if a monthly service had new instances appear on a date in the month after the date that the first instance of that service was seen, and if adjustments were applied to that service + instance combination then it was sometimes possible for the adjustments to be applied more than once.
Fixed an issue which could cause a GUI crash after deleting a service After deleting a service, it was possible that the GUI would display an error when subsequently viewing service rates. This has now been fixed.
Fixed a rare issue where importing into a transformation script could cause a crash When importing files using a wildcard, Transcript would crash if one of the files to import was empty and 'option embed' was enabled. This has now been fixed.
January 23, 2019
New features
The 'export' statement will no longer generate an error if asked to process an empty DSET while option mode = strict is set
Implemented user-definable timeout setting when retrieving data from HTTP sources
When retrieving data from HTTP sources, the number of seconds to wait for a server response before timing out can be defined using set http_timeout.
January 17, 2019
New features
Added editable labels for report levels
Added the ability to mass delete services
Invoice report is now called Summary report
The 'finish' statement in Transcript can be made to cause the task to fail if the DSET it's given is empty
Previously, when creating an RDF, the finish statement would perform no action if the DSET to create the RDF from was empty. This is still the case if 'option mode = permissive' is in force, but if 'option mode = strict' then the finish statement will now generate an error. The error will cause the task to fail for the current day, and if 'option continue' is not enabled, the task will be terminated, else the task will move onto the next date in the range of days being processed.
Added the ability to exit a subscript invoked via #include in a transform script The 'return' statement, when used in a Transform script, will now cause script execution to resume from the statement following the #include statement in a parent script that referenced the script containing the 'return' statement.
Increased the performance of the correlate statement Correlation should now be significantly faster than it was previously
Increased the performance of the aggregate statement
Aggregation should now be significantly faster than it was previously
Bug fixes
Fixed a bug where users couldn't update their own details (including their password)
Fixed a bug where only 10 datasets were displayed when creating a new report
Fixed a bug where the mail sender name was not persisted in the configuration
Fixed an issue when importing CSV files containing quotes
When importing a CSV file with two successive quote characters at the end of a field, Transcript would reject the file as invalid. This has now been fixed.
Fixed an issue where deleting data let to GUI crashes on occasion When deleting data (RDFs) associated with a report, it could be that if one or more days had previously been overwritten, a stale database entry would cause issues after the RDFs were deleted. This has now been fixed.
Fixed a bug whereby using terminate within the body of an if statement in a Transform script could cause an error Invoking terminate in an if block when running a transform script against a range of dates could cause the error The maximum number of nested blocks (32) is already in use.
This has now been fixed.
December 13, 2018
Bug fixes
A bug was fixed which could lead to an error in the invoice report when using a rate with a minimum commit set
Fixed an issue with minimum commit It was possible that when applying minimum commit to a service, that other services would be affected by that minimum commit. This has now been fixed.
Fixed an issue when retrieving NULL fields from an ODBC query When using ODBC to collect data, the presence of NULL values in the results could cause USE to crash. This has been fixed.
November 30, 2018
New features
Added the ability to view instance level details on the invoice reports.
Added the ability to customize the report exports (CSV format only) field delimiter and decimal separator. These settings are system-wide and available to administrators by navigating to Administration > Configuration > Formatting.
Added the ability for users to reset their own passwords. This requires the email address of users to be set and a working server configuration for sending emails. This can be configured in Administration > System > Environment.
Logfiles generated from workflow tasks now include a timestamp. This prevents logfiles from consecutive runs of the same task from being overwritten.
Workflow status now automatically refreshes after a manual run.
Added a new Environment tab in Administration > System. In this tab, information about the system the Exivity instance is running on can be filled out. In the future this will be expanded to include more configuration options.
Invoice reports now include minimum commit uplifts as separate entries.
Carriage-returns and line-feeds in data extracted using ODBC are now replaced with spaces. When extracting data with USE, the presence of newlines in the data could cause corrupt CSV output. Carriage Return and Line Feed characters in data extracted from ODBC are therefore now replaced with spaces.
Enhanced expression support in the Extractor component. Conditional expressions have been enhanced in the Extractor component such that more complex conditions can be evaluated and additional operations can be performed. Additionally, it is now possible to set a variable value using an expression.
Services can now be manually deleted using the GUI.
Bug fixes
The datasets selector visible when creating a new report definition is now alphabetically sorted.
Fixed a bug which caused the contents of extractor editor to not update after updating variables. The contents of the extractor script itself was always saved after updating variables, only those changes were not visible in the editor.
Fixed a bug which caused the account depth selector to reset after performing an upgrade.
Fixed a bug which could cause the interface to become unresponsive after preparing a report.
Fixed an issue when running Transform scripts for days with 25 hours in them. When running a Transform script with a data-date representing a day where the clocks were adjusted such that the day had 25 hours in it, the script would be executed a second time automatically once the first had completed. This could lead to unexpected errors and log entries on occasion, and has now been fixed.
When writing to CSV files in USE, embedded CR/LF characters are converted to spaces. USE will now automatically strip out embedded carriage-return and line-feed characters when writing data to CSV files. Each unique occurrence of one or more sequential CR/LF characters will be replaced with a single space.
November 22, 2018
Bug fixes
Updated the documentation links in the header to point to our new documentation site.
Fixed grouping behaviour in the details table of the accounts report. In some cases, accounts could appear grouped under the wrong parent account in the 'Detailed' table in the accounts report.
October 31, 2018
Bug fixes
Fixed an issue with incorrect quantities sometimes showing on reports. Occasionally, when running a report for a range of dates, the quantities on one or more services differed from the quantity for that service shown when a report was run for a different date range (or just the day in question). This issue has now been fixed.
October 26, 2018
New features
The USE 'basename' statement can now write its results to a new variable. Previously, the 'basename' statement would always modify the value of the variable whose name was supplied as the argument. It can now also accept a literal string and create a new, or update an existing, variable to hold the result.
Archives in GZIP format can now be decompressed using USE. USE now supports the 'gunzip' statement which can be used to inflate GZIP'd data. Details of how to use this statement may be found at https://docs.exivity.com/diving-deeper/extract/language/gunzip
FIxed an issue whereby when running a Transform script the Audit database would be locked for the duration of the task. Transcript now only opens the Audit database when it needs to, reducing the likelihood of encountering errors pertaining to a locked audit database in the logfile.
A new system variable is now available containing the number of days in the current month. The existing dataMonth variable, which contains the yyyyMM of the current month is now supplemented with a new variable called dataMonthDays which contains the number of days in that month.
Changed default service type to 'automatic' in the 'services' statement in Transcript. When creating services, if no 'type' parameter is provided then the default service type will now be be set to 'automatic'.
Bug fixes
Fixed an issue whereby when creating a service, the audit indicated that the service creation failed. When a service definition is successfully created, Transcript will now correctly audit that event as opposed to indicating that the attempt failed.
Fixed an issue whereby over-writing services could result in database errors in the logfile. Sometimes when overwriting services, a constraint error would be logged in the logfile and the service would not have any rate associated with it. This has been fixed.
October 18, 2018
Bug fixes
Fixed an issue that could cause database corruption.
Fixed an issue that could cause database corruption due to the Aeon database being held open for long periods of time.
October 10, 2018
Added a live preview feature when working with transforms. A new feature has been added which can display a live preview of the transformer output. Note: this feature is currently in beta and will be further updated in the next release.
The code editor has been updated. The code editor for Extractor and Transformer scripts has been updated (it now uses the open source Monaco editor - https://microsoft.github.io/monaco-editor/) resulting in a significant improvement over our previous editor. This greatly enhances the user experience when editing scripts in the GUI. Note: This change also lays the foundation for more advanced features going forwards.
Charges for monthly services now take quantity into consideration as well as price. If two or more days in a month have the same highest price then the one with the highest quantity will be reported. Previously, the first seen was reported which could lead to discrepancies between the reported quantity and price on the report.
When running reports blank instance values are now displayed as a hyphen. When running reports against data with blank instance values in the usage data, the instance value will now be represented as a hyphen, which improves the aesthetics of the report.
Added hardware information to Transcript log-files. Log-files created by Transcript now contain information about the CPU and RAM at the top of the log.
Increased auditing information in Transcript. Events relating to service, rate and RDF changes are now audited
Bug fixes
Removed COGS option for users without rights to view COGS information. In the services and instances report, users with no access to view COGS will no longer be able to select the COGS type in the details table. Note: This bug never allowed users without appropriate access rights to view the actual COGS data.
Fixed a bug where the list of datasets on the report definition page was only showing the first 10 results. This could result in an inability to create new reports using datasets that were not included in those results
A link to the instances report has been added to the search feature in the header.
The service interval column in the instances report now contains data. Previously this column was always blank
Fixed a bug where searching for units within a services reports leads to a GUI crash.
Fixed an issue whereby very rarely a charge would not be included in reports. On very rare occasions, information in a record in the prepared report caches was not included in the output when a report was run. This has now been fixed.
Fixed an issue that could cause Aeon database corruption. Fixed an issue that could cause database corruption (and workflows to fail) due to the Aeon database being held open for long periods of time.
Fixed an issue whereby re-using an existing named buffer in USE for ODBC purposes could lead to unexpected results. Fixed an issue in USE whereby if an existing named buffer was re-used to store data retrieved from ODBC then a new buffer could have been created with the same name as the existing buffer, and attempts to reference it would return the old data.
Fixed an issue when executing ODBC queries that return no data. Using the ODBC capability to execute a query that returns no data will no longer cause an extractor to return an error.
September 05, 2018
New features
Upgraded the underlying API framework For more information, please refer to the Laravel release notes.
Bug fixes
Fixed an issue whereby 'append' could crash if one or other DSET was empty When executing the 'append' statement in a transformation script, if one or other of the DSETs involved in the operation was empty (having no data rows) then a crash could occur. This has now been fixed.
Fixed an issue where an expression that evaluated as FALSE could show the wrong line number in a log message The DEBUG level logfile entry indicating an expression is true or false would contain a reference to the wrong line number if the expression evaluated to false. This has now been fixed.
Fixed an issue whereby some comparisons would evaluate incorrectly in expressions Fixed and issue whereby in some cases where a value was quoted in an expression, the quotes would be considered part of the value itself.
Fixed a condition where reports were not showing for non-admins
Quantity metric is available again for the timeline chart on the services and instances reports
Reports in the navigation menu dropdown are now alphabetically ordered
August 28, 2018
New features
Ability to filter data in report using search query: The search bar in Accounts, Services and Instances reports now supports the use of operators (for example >
and <
) to filter your results based on column values or strings.
Add avg_unit_based_rate
to report/run
API endpoint Added the average per unit rate field to the report/run
API endpoint and a placeholder for the average per interval rate which will be implemented later.
Bug fixes
Fixed an issue where deleting services could lead to adjustments not displaying correctly
Rate column in report details tables now use the configured rate precision setting
Fixed an issue whereby scheduled tasks that output more than 4kb of data to the console could suspend execution and do nothing until they timed out
August 22, 2018
New features
Transcript can now normalise scientific decimal numbers to standard format: When processing data that contains numbers in scientific format (such as 2.1E-5) the normalise
statement can now be used to convert these to standard decimal notation (0.000021 in the above case) using the form normalise columncolNameas standard
where colName
is the column containing the values to convert. Any values already in decimal will be unchanged, except that any trailing zeros will be removed from them. Non-numeric values will be converted to 0.
Support group
and group_col
as service parameters in Transcript: In the service
and services
statements in Transcript, the parameters to define the service category are category
and category_col
These parameters now have aliases of group
and group_col
respectively, for those who prefer to use that terminology.
Bug fixes
The replace
statement in Transcript will no longer behave unexpectedly when given an empty string as the target to replace: When using replace
to update substrings within the values in a column, if the target string (the text to replace) is empty then Transcript will generate a meaningful log entry explaining that it cannot be used to replace empty strings, and will no longer overwrite non-blank column values with multiple copies of the replacement text.
The export
statement in Transcript now supports backslashes as path delimiters: When specifying a relative path for the export
statement, Transcript will automatically create any directories that do not exist in that path. Previously there was a bug whereby the auto-creation of those directories would only work if UNIX-style forward slashes were used as delimiters in the path. This has now been fixed and Windows or UNIX style delimiters may be used when specifying an export path.
Fixed a bug in the scheduler that could cause schedules to fail: In some cases schedules could fail for no obvious reason. This has now been fixed.
August 17, 2018
New features
USE scripts can now be forced to terminate with an error result Previously, the 'terminate' statement could be used to cancel script execution, but its use would always indicate that the script ran successfully. This may not be appropriate in all cases (for example if an error is detected by the script itself but ultimately cannot be resolved satisfactorily). The 'terminate' statement will still cause a script to exit with a success result by default, but may now be invoked as 'terminate with error' such that an error status is returned instead.
Added more service attributes as optional columns in the reports details table. The following extra service attributes can now be enabled as columns in the report details table: interval, charge type, cogs type and proration.
Support 'group' and 'groupcol' as service parameters in Transcript In the 'service' and 'services' statements in Transcript, the parameters to define the service category are 'category' and 'category_col'. These parameters now have aliases of 'group' and 'group_col' respectively, for those who prefer to use that terminology.
Reduced the chance of a 'database is locked' warning when preparing reports When preparing reports, on occasion it is possible for a warning to appear in the logfile pertaining to the global database being locked. When this warning happened, it could cause some days in the reporting period to remain unprepared. A known specific cause of this issue has been fixed, significantly reducing the likelihood of it happening.
Bug fixes
Fixed an issue where an ODBC connection could cause a crash in USE When executing an ODBC-based collection in USE, under certain circumstances an incorrect direct connection string could cause a crash. This has been fixed. Additionally, when an ODBC error occurs the error written to the logfile contains more detail than in previous releases.
The order of workflow steps in the status tab now corresponds to the order of workflow steps in the configuration tab.
An issue has been fixed where old user preferences could conflict by updates in the GUI, leading to errors when loading the service and instance reports.
An issue has been fixed where certain characters in a workflow status could lead to errors in the API. Sometimes, when running a scheduled task, the output written to the database contains non-printable characters. The API now re-encodes those characters, which means the GUI will now correctly show the status for those workflows.
When selecting a reporting period that spans multiple months, the charts will now only show a single label for each month.
Fixed a USE crash bug with certain combinations of conditional expressions Fixed an issue whereby if an expression with more than 2 parameters was followed later in the script by an expression with fewer parameters than the first, a crash would occur.
Fixed issue where an extractor could crash when using a parslet after formatting some JSON A bug has been fixed whereby if the 'json format' statement was used to prettify some JSON in a named buffer, use of a parslet to extract data from the JSON could cause a crash.
Fixed an issue where sometimes an XML parslet would cause an 'out of memory' error in USE When using an XML parslet, it was possible that an 'out of memory' error would be returned in the logfile and the script would fail, even on small input files. This has now been fixed.
August 03, 2018
Bug fixes
The 'export' statement in Transcript now supports backslashes as path delimiters
When specifying a relative path for the 'export' statement, Transcript will automatically create any directories that do not exist in that path. Previously there was a bug whereby the auto-creation of those directories would only work if UNIX-style forward slashes were used as delimiters in the path. This has now been fixed and Windows or UNIX style delimiters may be used when specifying an export path.
The 'replace' statement in Transcript will no longer behave unexpectedly when given an empty string as the target to replace
When using 'replace' to update substrings within the values in a column, if the target string (the characters to replace) is empty then Transcript will generate a meaningful log entry explaining that it cannot be used to replace empty strings, and will no longer overwrite non-blank column values with multiple copies of the replacement text.
July 25, 2018
New features
Increased default timeout when retrieving data from HTTP servers
Currently a USE script will fail if more than 3 minutes elapse without response when downloading data from an HTTP server. This has been increased to 5 minutes to cater for slow APIs.
July 19, 2018
New features
Transcript can now normalise scientific decimal numbers to standard format When processing data that contains numbers in scientific format (such as 2.1E-5) the 'normalise' statement can now be used to convert these to standard decimal notation (0.000021 in the above case) using the form 'normalise column colName as standard' where 'colName' is the column containing the values to convert. Any values already in decimal will be unchanged, except that any trailing zeros will be removed from them. Non-numeric values will be converted to 0.
When accessing the GUI via http visitors will be redirected to https automatically
Progress indicator in the report/run endpoint can be disabled To disable, set the progress
parameter to 0
. More information at our API documentation.
Filter selectors show which items are present in the current report The service category selector in the services and instances report, and service selector in the instances report will show items not available in the current report grayed out.
On-demand workflow execution Workflows can now be executed on demand. Also the schedule for a Workflow can be disabled.
Single workflows can now have multiple schedules
Workflows can now be scheduled in a specific timezone
Added the average rate column to the reports details table
Added the ability to show various totals in reports summary widget Summary widget now has the option to show all totals (previous behaviour) or only the totals for the current search results, or for the current pinned items.
Added report shortcuts to the dashboard
COGS, fixed COGS and fixed prices are now evaluated per instance when preparing reports Previously, if a service was created that used any of fixed_price_col, cogs_col or fixed_cogs_col to indicate that the rate in question should be obtained from the usage data for any given day, then the charge engine would use a single value from the specified column(s) and apply that to all instances of the services for the day. Now, each row of usage is individually consulted when preparing reports such that the specific value on that row is used (as is already the case when using 'rate_col' for pass-through rates)
When extracting XML or JSON values, parse errors no longer cause the USE script to terminate Previously, when using a static parslet to extract XML or JSON values from the contents of a named buffer, if the buffer contained invalid JSON or XML then the USE script failed with an error in the log saying that the contents of the buffer could not be parsed. Now, if a named buffer contains data that is not valid JSON or XML, any attempt to extract a value from it using a static parslet will be expanded to the value EXIVITY_INVALID_XML or EXIVITY_INVALID_JSON.
Improved performance and lowered memory requirements when running a report Previously, in some circumstances running a report could take longer than expected and consume large amounts of memory in the process. The performance and memory use of the report engine have both been improved.
Reduced memory and increased performance when preparing reports Previously it was possible for some installations to use large amounts of memory and exhibit unreasonably slow performance when preparing reports. Preparing reports is not intended to be a realtime feature and will always incur some time overhead, but this time should now be significantly reduced in many cases, and the memory required to complete the process will be much less.
New output format for the /report/run
endpoint in the API Due to changes to the charge engine, the output format of the /report/run
endpoint in the API has changed. An up-to-date overview of the attributes returned by this endpoint can be found at our API documentation.
Free formatted ODBC connect strings are now supported in USE This exposes all ODBC driver options to the user, and avoid the requirement of creating manually DSN at the operating system level.
The 'split' statement now supports discarding unwanted result columns When using the 'split' statement it is now possible to discard all but a selected range of the resulting new columns.
Bug fixes
Fixed a Transcript crash when deleting a DSET Transcript will no longer crash in certain circumstances when deleting a DSET using the 'delete dset' statement.
The Transcript 'export' statement now creates a path automatically When exporting data from Transcript, if a relative path is specified as part of the export filename, Transcript will automatically create the path if it does not exist. The path will be created relative to /exported
Changed the behaviour of some columns in the report tables The optional _per unit charges and per interval charges columns on the report pages represent a fraction of the total charge and as such should be considered a subtotal rather than a rate._
Allow users to see anonymous roll-up accounts even if they have no access When a user only has access to some children of a parent account, reports will now show the combined usage of those accounts grouped as an unknown account in the reports.
Fixed a rare bug where incorrect character encoding in the data source could lead to reports not loading
Currency symbol is no longer shown for quantity graphs
An issue has been fixed which could lead to empty reports when there actually was report data In some cases, selecting certain combination of filters could lead to reports showing No data while there actually was report data for the current set of filters. This behaviour was observed mainly on the instances report page.
Usernames are now allowed to contain special characters As a side effect of changing usernames to be case-insensitive, using special characters was no longer permitted since v1.8.1. This restriction is now removed.
Changed the behaviour of clearing the charge engine caches Clearing the charge engine (Edify) caches unprepares all reports. The button on the About page now reflects this.
It is now possible to use decimal values for adjustment amounts Previously this was only possible through the API. The GUI has been updated to also support this.
Changing the date in the invoice report no longer resets the account selection Previously, when changing the date range on the invoice report screen, the current account selection (dropdown inside the invoice page) would automatically select the first account in the list. This has now been fixed to remember the selection when changing the date.
Exivity now works correctly when installed in a directory containing spaces
Transcript variables were not properly expanded when using in an import filter
Export of consolidated invoice now contains data for all accounts Previously, selecting the CSV or Excel export of a consolidated invoice would only export data for the first account on the invoice.
Fixed crash bug in the 'services' statement When creating services, Transcript will no longer crash if a blank interval or model value is encountered while building the service definitions.
Older release notes can be found here.