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.
Upgrading to the latest release is a straight-forward process. .
When upgrading to new major version (e.g. from version 1.x.x to version 2.x.x), also take note of these manual upgrade steps:
January 23, 2019
New features
The 'export' statement will no longer generate an error if asked to process an empty DSET while 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 .
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
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.
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.
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.
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.
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
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
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.
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.
Previously, when creating an RDF, the statement would perform no action if the DSET to create the RDF from was empty. This is still the case if ' mode = permissive' is in force, but if ' mode = strict' then the statement will now generate an error. The error will cause the task to fail for the current day, and if ' 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.
When importing multiple files using the option to , any invalid files will be skipped When multiple files matching a pattern are imported, any of those files that are malformed or otherwise non-importable will be skipped.
Increased the performance of the statement Correlation should now be significantly faster than it was previously
Increased the performance of the statement
Fixed a bug whereby using within the body of an statement in a Transform script could cause an error Invoking in an 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.
Fixed a bug whereby the body of an 'if' statement in the Transformer could terminate prematurely. In some cases, using an '' statement with an 'options' block within the body of an '' statement could cause statements following the 'import' to be skipped. This has now been fixed.
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
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 - ) 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.
Upgraded the underlying API framework For more information, please refer to the .
Progress indicator in the report/run endpoint can be disabled To disable, set the progress
parameter to 0
. More information at our .
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 .
Older release notes can be found .