Release 11.0.0

What's New

You requested, we listened! Welcome to PhixFlow Version 11.

We’ve made a whole host of usability and performance enhancements to make PhixFlow more powerful than ever. Over 70 significant improvements and new features have been added, for more information visit phixflow.com/whats-new-in-phixflow-11

Installing or Upgrading to PhixFlow Version 11

A significant change has been made to the installation process of PhixFlow which simplifies the process. Please read the new instructions before installing or upgrading.

PhixFlow systems running on a MariaDB database will not work with version 11, support for this database has now ceased. If you require help switching to a supported database please get in touch with our support team support@phixflow.com 


To install a new PhixFlow instance:

  1. Check System Requirements and Compatibility for details of the PhixFlow system requirements and update any dependencies. 
    1. Please email support@phixflow.com if you are planning to run PhixFlow 11 on an unsupported database version.
  2. Follow the instructions in Installing PhixFlow.

To upgrade an existing PhixFlow instance: 

  1. Phixflow must be at version 8.3.24 or later in order to be upgraded. If this is not the case please first upgrade to 8.3.24.
  2. Check System Requirements and Compatibility for changes to the system requirements or supported database versions. For example, you may need to upgrade your database or Java version.
    1. Please email support@phixflow.com if you are planning to run PhixFlow 11 on an unsupported database version.
  3. Ensure you have a backup of the database before upgrading PhixFlow.
  4. Follow the Upgrading PhixFlow steps. It is important to complete any Special Upgrade Instructions for all the intermediate releases between your current version and the version to which you are upgrading.

Special Upgrade Instructions

Configuration Files

The previous configuration files e.g. phixflow-datasource.xml, have been replaced with two new files. Full details are provided in the installation/upgrade instructions:

  1. local.properties
  2. logback.phixflow.xml

Database Upgrader

The database schema installation/upgrade is run automatically as part of the installation/ upgrade when upgrading from version 8.3.18 onwards to version 11 or later.

 

File Upload Location

To use the new File Display component which facilitates uploading of files via PhixFlow screens the following setup is required:

  1. On your PhixFlow server, create a directory where the files can be uploaded. This should be accessible to the application.
    1. For example, /Tomcat/webapps/phixflow/data/images
  2. In PhixFlow, from the  Administration menu, open System →  Configuration
    1. In the System Directories section → File Table Upload Location field, add the address of the directory setup in the first step, e.g. C:\Tomcat\webapps\phixflow\data\images
    2.  save your changes
  3. All uploaded files will now be placed in this directory. The directory should be backed up in line with your local policy.

Schema Changes

Significant schema changes are required for this release.

Discontinued Features

PhixFlow systems running on a MariaDB database will not work with version 11, support for this database has now ceased. If you require help switching to a supported database please get in touch with our support team support@phixflow.com 

Changes to Privileges

None.

Improvements and New Features

Actionflows

DEV-9373 - Added Converge Action node to Actionflows. Converge actions have many inputs and one output.

DEV-12229 - Added the ability to extract actions to a new Actionflow in the Actionflow node context menu. This will create a new Actionflow and transfer all selected nodes into that Actionflow. All extracted nodes must be connected and not include any start phase nodes. If a start loop is extracted its corresponding end loop must be extracted too and vice-versa.

DEV-13875 - Added a Bulk Update Actionflow node, which can be used to set values on a table in bulk.

DEV-14196 - Added an XML Actionflow node, which can be configured with a path to extract values from an XML string.

DEV-14197 - Added a For Each Actionflow node, which will produce one output record for each entry in an input list or record set.

DEV-14907 - Added "Minimum records" and "Maximum records" to connection points on Actionflows, when set it will cause the Actionflow to error if the number of records received by the Actionflow is less than the minimum or greater than the maximum.

DEV-16096 - Cancelled/failed actions are now correctly removed from the active section of the console in all circumstances.

DEV-16411 - Added a Bulk Delete Actionflow node, which will delete data from a table using a filter or may be configured to delete all data from a table.

DEV-16746 - The Save action has been split into separate Save and Delete actions in the Actionflow screen.

DEV-16801 - Actionflow loops will now wait until all branching nodes are finished before beginning the next iteration of the loop.

DEV-16819 - HTTP Actions now support configuring the timeout, which can be configured in advanced properties.

DEV-16976 - Error messages for actionflows will now include the name of the action node and all parent Actionflows to make it easier to diagnose which node has generated the error.

DEV-16986 - It is now possible to control if an Actionflow can be triggered multiple times in parallel from the same client, i.e. can another run be started while the previous is not finished yet.

DEV-16995 - Added new options for API Actionflows. API Mode allows API Actionflows to be changed to "poll for result", where subsequent API calls can be used to fetch the result of the action when it is finished instead of waiting until it is finished before carrying on. Additionally, the URL will be displayed in the Actionflow property editor for API actions.

DEV-17094 - Converge Action has an "Input Connection" section added.

DEV-17127 - Actionflow phases will now wait for all nodes to finish before beginning the next phase.

DEV-17183 - Added the ability for the Delete action to delete files when a record from a file table is deleted. The behaviour can be configured to delete the file, archive the file to a specified directory or only delete the record but not remove the file from the server.

DEV-17216 - Bulk Update and Bulk Delete actions have an option to allow audited tables. Only nonaudited tables can be updated or deleted if this is not ticked.

Administration

DEV-359 - Automatic schema installation is now implemented, no longer requiring the manual running of schema migration scripts.

DEV-6875 - Audits of automatic schema upgrades can be found in the DATABASECHANGELOG table.

DEV-7267 - The installation and upgrade process has been streamlined.

DEV-10952 - The installation and upgrade processes have been simplified and automated to no longer require manual running of database migration scripts.

DEV-11465 - System configuration can now be done via properties files rather than having to edit xml files directly.

DEV-14548 - The System Console Completed Tasks grid now includes the duration of the task.

DEV-16649 - The default password policy for new installs has been updated. The minimum length is now 12 with at least 1 each of uppercase, lowercase, numeric and special characters. The policy has not changed on existing installations.

DEV-16994 - Added a button to the System Console to take a snapshot of a running Actionflow, this will provide information about its current status. A snapshot is also provided upon Actionflow completion.

DEV-17050 - When "Only allow restricted task plan permissions users" is checked in the System Configuration, any scheduled task plan that attempts and is prevented from running will now appear in the console as a Warning rather than an Error.

DEV-17143 - System Configuration and System Logging have been removed from the Repository browser. They can still be accessed via the Administration menu with the rest of the options.

Analysis Models

None.

Applications

DEV-16233 - When connecting to a default-configured MySQL 8.0 database, it is necessary to specify either serverRsaPublicKeyFile or allowPublicKeyRetrieval on the URL. See https://mariadb.com/kb/en/about-mariadb-connector-j/ for detailed descriptions of these options.

Common Features

DEV-13336 - Email accounts can now be configured to use OAuth 2 authentication.

DEV-14575 - The PhixScript hash function will now handle secret values.
A new expandSecrets(value) function has been added, this takes a single string parameter and expands any secret tokens into their values.

DEV-15001 - A new System Configuration option "Default Template Package" has been added. Applications being created without a selected template package will use this value for the new application.

DEV-16040 - Improvements to messages returned to the user where there are errors in filtering.

DEV-16284 - Views with two aggregations to the same table now display correctly.

DEV-16322 - When connecting to a default-configured MySQL 8.0 database, it is necessary to specify either serverRsaPublicKeyFile or allowPublicKeyRetrieval on the URL. See https://mariadb.com/kb/en/about-mariadb-connector-j/ for detailed descriptions of these options.

DEV-16403 - Added new geometric functions:
geoUnion which computes a Geometry representing the point-set which is contained in two provided geometries.
geoGetNum which returns the number of Geometries in a GeometryCollection or Multipolygon.

DEV-16556 - Fixed stop() method so only a warning message is generated and it no longer incorrectly triggers an error message.

DEV-16589 - Improvements to the display of 'system errors' to make them more accessible by combining them into a single popup and revising the message.

DEV-16707 - In the Table properties, the option "Audit Manual Changes" has been moved from the Analysis Options section to the Advanced section.

DEV-16922 - The order of the home screen menu options (ERD, Screens etc.) has been revised.

DEV-17019 - There is a new 'Annotation' option in Analysis Models and Actionflow which allows the user to add notes to Models.

DEV-17038 - More descriptive error message added when failing to read data from a table due to configuration issue.

DEV-17185 - A new sql function has been added to PhixScript to facilitate the writing of SQL queries including the "?" query parameter markers so a list of corresponding parameters can be programmatically passed in.

DEV-17227 - Improved layout of the Applications screen to increase the size available for application titles and improved the tooltip.

ERD

DEV-12871 - A new type of table a File Table has been added to ERDs to support the uploading of files using the new File Display component on screens.

Performance

DEV-17103 - Improved performance of running confirmation actions.

DEV-17168 - Improved screen performance when editing screen component properties.

Screens

DEV-9335 - Improvements have been made to simplify how components are added to the screens or in the layers.

DEV-11222 - A default menu button option has been added in default components, used when a screen is dragged onto a menu, allowing for automatic button creation to open the screen.

DEV-12667 - Added right-click options to all major touchpoints where backing attributes can be set, and added icons to distinguish whether a backing attribute has or could be set.

DEV-12756 - Improved consistency of mouse cursors over active screen elements.

DEV-12871 - Added a new type of layout component, the "File Display". This can be used to upload/display previews of files linked to the new File Tables. Dragging a file onto the component will upload it.

DEV-13197 - It is now possible to set a “Default Sort Order" for dropdown components. It allows users to specify the order in which the data of the dropdown is displayed. Sort orders used in this field are saved against the field's backing attribute table.

DEV-14054 - Palettes now have a search box to quickly locate templates.

DEV-14767 - Grids that have no size, and are not set to Fit to available space will now automatically grow to the size of their content.

DEV-15382 - After creating a screen via the Screen window, the user is prompted to select a table to back the screen and also choose any required attributes to be displayed on the screen. In addition, screens can now be created via a new Create Screen button on the ERD toolbar.

DEV-15583 - Input fields cannot be moved inside data-bound components (e.g. Cards, Forms) backed by a table to the table backing the component. 

DEV-15585 - Added Actionflow as an option for the Autosave action for views.

DEV-15743 - Layout components that are set to read-only now have an icon to identify them in the Layers and an indicator on their icon in the component properties.

DEV-16086 - Updated the way relation names are displayed.

DEV-16185 - Child components on a screen will now correctly be non-read-only in the case where the 'read-only' override tick box is selected and the read-only option is not set.

DEV-16283 - Improved relationship names on the Available Attribute selector.

DEV-16304 - Kanbans now allow multiple consecutive items to be selected using shift-clicking.

DEV-16473 - Changing a component's name now also updates all expressions referring to the component.

DEV-16489 - When adding a new component to a screen via a template, child objects are given unique names based on the parent and all expressions in the copied template are adjusted to use these names.

DEV-16537 - It is now possible to choose to sort Kanban columns by their column headings and reverse the Kanban column's sequence.

DEV-16558 - When clicking on an existing component on the canvas, the Style tab now opens by default rather than the Properties tab in order to streamline styling. When creating a new component the Properties tab is opened.

DEV-16561 - The component styles section has been improved by renaming "Autosize/grow" to "Fit to available space" and some related settings have been reordered.

DEV-16664 - Form field validation will be enforced by default when corresponding actions are run on newly created actions.

DEV-16667 - Deleting a screen when it is the only screen to use an area will now also delete that area (does not affect the template version)

DEV-16782 - The following alterations have been made to items in the Serene Grey template package:

* The minimum width of Tiles has been increased from 130px to 260px. This still supports viewing on mobile devices. The content which overflows outside of a tile is also now hidden so it does not exceed the borders of the tile.

* Horizontal and Vertically expanding tiles have been reworked to simplify the CSS used to achieve this mechanism. The Chevron direction has also been changed to better indicate the direction of expansion.

* There is a new Concertina Tile that provides several expanding areas in a single tile space.

* Tab headers text has been set up so the text which is too long to fully display will have ellipses added to the end. For example: "PhixFlow Inv..."

* The UID form field template has been removed from all card containers.

* The labels on form fields have been moved left to better align with the input field.

DEV-16844 - There is a new option for Dropdown Fields: Do Not Trigger Automatic Data Refresh in the advanced section. Ticking it stops any data-bound components (Grids, Cards) driven by the Dropdown from automatically refreshing when the value in the Dropdown changes.

DEV-16845 - There is a new option for Date and DateTime Fields: Do Not Trigger Automatic Data Refresh. Ticking it stops any data-bound components (Views, Cards) driven by the Field from automatically refreshing when the value in the Field changes.

DEV-16898 - The names of the "Add new" and "Create Menu" buttons on the Screens page have been revised to "Add Screen" and "Add Menu" respectively.

DEV-17055 - If a field is backed by an Attribute, the Attribute's type is used during the field validation. It ensures that input fields backed by Attributes can accept only values valid for the Attribute. Fields backed by Integer attributes now check if the value provided is a valid Integer without any decimal numbers. Fields backed by Float or Decimal attributes now check if the value provided is a valid Number. This can be overridden by setting a custom Validation Type on the field.

DEV-17058 - Improved performance of copying components/saving components as templates.

Workflow

None.

Bug Fixes

Actionflows

DEV-15855 - Using a View action to find a record that has just been inserted by a Save action will no longer give a type conversion error.

DEV-15897 - Fixed some action nodes not being able to connect directly to the output points.

DEV-16064 - Email actions are now passthrough.

DEV-16117 - Resolved rare null pointer exception when using Actionflows.

DEV-16229 - Improved performance of opening the Mapping Configuration screen for Actionflows.

DEV-16302 - Dropping an Actionflow output point onto an end loop action now creates the connector to the driving output of the end loop node.

DEV-16470 - Deleting the screen backing an Actionflow 'Open Screen' node will no longer cause the action to fail due to mapping issues.

DEV-16517 - Opening an application while another application is opening will no longer sometimes cause both applications startup screens to display.

DEV-16638 - Actionflows will now ignore incomplete recordsets except those created in the same Actionflow.

DEV-16658 - Deleting an Action Task from a Task Plan will now correctly delete the associated instance of the Actionflow.

DEV-16712 - Embedded Actionflows will always run their first phase regardless of the phase they are embedded within. It is not valid for the embedded Actionflow to trigger other phases.

DEV-16847 - Resolved an issue where highlighting an action connector would sometimes cause the arrowhead to display in the wrong place.

DEV-16970 - Actionflow lookups will no longer fail if the action is run from a confirmation button and no record was selected for that input on the original action run.

DEV-16993 - By default the order of processing of Actionflows will maintain record order. Added a new option to Actionflow nodes to process the records in parallel, if checked the action may process faster but the order of records will not be deterministic.

DEV-17007 - Fixed action nodes not moving vertically above the top boundary of the canvas.

DEV-17027 - Within an Actionflow, where the first action of a nested Actionflow is a start loop action, it will no longer prevent passthrough of attributes on the outer action.

DEV-17032 - Importing a package that contains an action will no longer delete mappings to instances of that action that exist in other applications.

DEV-17153 - Reusing a nested Actionflow which contains a loop will no longer intermittently cause values to be applied incorrectly.

DEV-17201 - Added autocomplete for attribute names in expressions to all Actionflow nodes.

DEV-17205 - Dragging a Screen onto an Actionflow will now always correctly display the Open Screen node without waiting for a manual refresh.

DEV-17280 - Fixed an issue where Actionflows that open multiple screens would sometimes not open all of them.

DEV-17305 - Fixed an error when HTTP Actionflow nodes received nothing back as the response of an HTTP request.

DEV-17316 - When moving multiple action nodes in a short time span the nodes will no longer change location erratically.

Administration

DEV-15639 - Sorting the system console and other similar grids will now sort based on all records not just the current page.

DEV-16007 - Fixed rollback not working when “Only allow restricted task plan run permission users” is ticked.

DEV-16070 - A new tab has been added to the System Console which filters to only display Daily Logs.

DEV-16135 - The grid to show log messages for the currently selected running tasks now automatically refreshes to show new messages.

DEV-16281 - When an application containing scheduled task plans has been deleted, PhixFlow will no longer attempt to run those task plans.

DEV-16524 - Fixed migration script not running properly for Oracle databases with data in the font_size column for style.

DEV-17021 - Fixed post-migration issue, resulting in a 'QuerySyntaxException' triggered after editing custom logfile filters.

DEV-17099 - System Console grids now correctly display the 'Restore files' option.

Analysis Models

DEV-15070 - Analysis actions now only allow transactional tables to be included to ensure correct model operation.

DEV-16160 - Previously, when a database exporter was connected to multiple pull pipes, the input multiplier was evaluated for the driving push pipe and then re-evaluated for each of the pull pipes in turn. Now, the expression is evaluated only once, for the driving push pipe, and the result is re-used for each of the pull pipes without re-evaluating the expression.

DEV-16477 - Saving an Analysis Model after having moved the view and then adding a new object will no longer cause that object to move.

DEV-16534 - Fixed bug when processing JSON with arrays of objects from an HTTP Collector.

DEV-16697 - Fixed comments stripping within SQL expressions so that the comments are correctly removed after an escaped quote mark or double quote mark. For example, strings of the form 'Wouldn\'t it be nice', the apostrophe in the text is escaped and included in the comment now.

Option added on database exporters and collectors to choose whether to strip white space.
For migrated nodes the setting is enabled to match current behaviour.
For newly created nodes this defaults to false as it can cause issues when some styles of comments are used (e.g -- comment).

Applications

DEV-17108 - PhixFlow now correctly displays the Home Screen Message HTML (rather than the default text) on the login screen which is displayed after a logout.

Common Features

DEV-16004 - Table actions now respond to cancellation by the user; new record sets are marked as incomplete.

DEV-16154 - Exporting Audit Records to Excel now works correctly.

DEV-16294 - For views, in app mode, it will now only show the filters listed on the view in the section App Mode Filters. If you create the filter on the view grid then it will be visible in app mode but if it is created elsewhere then it will not be available in app mode by default.

DEV-16344 - Missing error messages in import.

DEV-16400 - Fixed error refreshing data on aggregate view with missing attributes.

DEV-16594 - User Detail view of a User Group now includes the last activity time.

DEV-16656 - Default Application and Default Screen have been removed from user configuration as they weren't functional. Startup actions can be used to control which screen an application initially displays.

DEV-16673 - Setting the locale when creating a user no longer errors.

DEV-16685 - Pie charts now export correctly.

DEV-16862 - Deprecated drivers have been removed from the available drivers list where they are not in use.

DEV-16883 - Fixed a bug where the first parameter of an AND function was ignored if it evaluated to null whereas if any other parameter evaluated to null it was treated as false. All parameters to the AND function, including the first one, are now treated as false if they evaluate as null.

DEV-16948 - Resolved an issue where sort order directions were not being applied on pipes configured with aggregating attributes. Sort-order directions are now correctly applied.

DEV-16949 - Fixed regression with displaying legacy Form Views.

DEV-17000 - Fixed error when opening a view with a relationship to a table with invalid data.

DEV-17061 - Fixed issue where fields having number formats configured with 'suppress trailing zeros' would sometimes ignore the decimal places setting. This resulted in ".0" being displayed for whole numbers when decimal places were set to 0.

DEV-17063 - Fixed the cause of the error message 'Could not copy property filterId' shown when adding a new form after deleting the old one. This occurred if the element had a default filter set.

DEV-17076 - Filters can now be applied to relational aggregate views.

DEV-17086 - Form fields backed by Table Attributes now correctly have the Aggregate Function and Filter options available in their properties.

DEV-17104 - Improved support for language translation of the main PhixFlow interface.

DEV-17118 - Using 'is in' in a filter on a View Action on SQL Server now works without errors when using lists longer than the value of sqlserver.filter.maxInlineListSize=10 in the server.properties file.

DEV-17133 - HTTP Collector and Exporter timeouts can now be specified on the HTTP Datasource. This value will override the default connection timeout, request timeout and socket timeout set in server.properties. The non-working timeout settings on the HTTP Collector and HTTP Exporter have been removed.

DEV-17134 - Table filters are now shown in the filter dropdown on the properties for relational fields.

DEV-17211 - Formatting and Actionflow nodes now all support autocomplete in expression editors.

DEV-17225 - Changed filter expression fields to use a new expression editor, allowing autocomplete of fields and functions. These fields are now highlighted by a green border.

DEV-17298 - PhixFlow now correctly supports special characters in translation files.

ERD

DEV-16075 - Table attributes that are flagged as 'Foreign Key' are now automatically considered to be 'Indexed'.

DEV-16186 - Setting Return All Attributes no longer causes an error for Tables with Local attributes.

DEV-16256 - ERD connectors are now correctly directed.

DEV-16694 - Resolved issue where connectors on ERDs would sometimes appear to point into empty space.

Performance

DEV-16380 - Improved performance of opening / refreshing Screens.

DEV-16423 - Improved performance of opening Screen properties.

DEV-16498 - Reduced PhixFlow memory usage at an overall architectural level.

DEV-17089 - Changing user group membership will no longer have a performance impact on opening screens.

Screens

DEV-15395 - Double-clicking on a record is now disabled whilst the record is being autosaved.

DEV-15778 - Sort order attributes are now sorted by their display label.

DEV-15832 - When creating a screen within a package, the list of available templates is restricted to only show those in the package.

DEV-15956 - Resolved an issue where the Read-only setting was applied even when the apply read-only checkbox was unchecked.

DEV-16085 - Empty numeric form fields no longer incorrectly show as 0.

DEV-16236 - Resolved issue with Style attributes being wrongly inherited even when they were not enabled in the parent style.

DEV-16255 - Input Fields now correctly inherit the 'mandatory' flag from backing Table Attributes.

DEV-16267 - The On Click Event Handler on an area component now supports the option "Other". This allows action types like "screenshot" and "toggle maximise" to be set.

DEV-16268 - Driven Kanbans now display correct records after changing the driving selection.

DEV-16386 - Add the ability to define a 'Grid Row Hover Style' to apply when the mouse is over a row in a grid. This can be set at the system, application or individual grid level.

DEV-16387 - Fixed a problem with an error being displayed while editing a Screen containing Views with Table Action Menu Items.

DEV-16390 - Added the ability to define a 'Grid Alternate Row Style' to apply to 'even' rows in grids. This can be set at the system, application or individual grid level.

DEV-16391 - The Minimise button now appears on screen windows by default.

DEV-16459 - Moving fields backed by relational Table Attributes around a Screen now works correctly.

DEV-16496 - Expressions in Shared Styles are now correctly re-evaluated when a screen is resized.

DEV-16506 - Dropping Table Attributes onto Cards now works correctly.

DEV-16554 - Screen Elements with Background Filter Rules now save correctly.

DEV-16575 - Background Filter Rules now add correctly to Dropdown Fields backed by relational attributes. The 'Add Filter' button now adds correctly to Dropdown Fields backed by relational attributes.

DEV-16577 - Read-only settings are now reliably propagated to child components.

DEV-16728 - Fixed regression where the CSS property "Display: none" was being ignored, components are now correctly hidden when the CSS property is set.

DEV-16753 - Dragging Tabs now works correctly when adding/reordering Tabs.

DEV-16904 - Fixed Dropdowns now correctly display the current record's value, even if it is not one of the Dropdown's allowed values.

DEV-16914 - Screens now have an interactive floating menu that appears on components on mouseover. The new menu has been added to provide quick access to key tasks, including accessing styles, field validation and defining backing data. It is available on screens when unlocked in Design mode.

DEV-17022 - Editing Card Components and Views no longer displays a 'cannot cast to class' error for users without the VIEW_PRIVATE_CONFIG permission.

DEV-17074 - Preferred Parent Type in nested components are now correctly copied when creating new components.

DEV-17091 - Dropdown Fields backed by a foreign key now correctly update form records.

DEV-17109 - Fixed problem with setting new form after deleting the old one, if the old had a background filter rule set on the element.

DEV-17172 - Fixed problem with Component Types duplicating when copying Layout Components from the palette.

DEV-17197 - A ticked style setting without a value now correctly overrides any inherited values using a default of 0. For instance, if margin or padding is ticked without any value this is equivalent to setting a value of 0.

DEV-17212 - Fixed problem with field labels being renamed when creating components from templates.

DEV-17252 - Having two table view components backed by the same table view on the same screen will no longer cause Actionflows to sometimes use incorrect records.

DEV-17272 - It is no longer permitted to change the screen configured on an Open Screen Action, instead create a new action.

DEV-15943 - Performance has been improved for opening lists of Actionflows throughout the product.

DEV-16097 - Fixed memory leak when lookups are used in Actionflows.

Workflow

None.