Release 7.4.0
Installation and Upgrade
To install a new PhixFlow instance, follow the standard installation instructions.
To upgrade an existing PhixFlow instance (called CenterView before version 7.0):
- First review Compatibility Guide and Upgrade Planning to check any changing requirements for database versions etc.
- Follow the Standard Upgrade Instructions plus any special instructions for all intermediate releases listed in Compatibility Guide and Upgrade Planning.
Special notes
Excel File Collector
Excel File Collectors that specify the worksheet to read in the Excel Data Range Expression must now quote the worksheet name if it contains spaces and/or single quotes. This is not handled automatically by the upgrade process. See here for details.
Oracle - edit phixflow-datasource.xml
If you are using Oracle, configuration imports can sometimes fail with this error:
ORA-22275: invalid LOB locator specified
To resolve this, you will need to edit your phixflow-datasource.xml file. This only affects upgraded instances, if you are creating a new installation, no changes are necessary.
The update required is to set the property hibernate.jdbc.batch_size
to 1. To do this:
- Find your phixflow-datasource.xml file; this will be at:
[tomcat home]/webapps/phixflow/WEB-INF/classes/phixflow-datasource.xml
- Find the line
<prop key="hibernate.jdbc.batch_size">1000</prop>
and update this to
<prop key="hibernate.jdbc.batch_size">1</prop>
This will leave you with:
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate.order_updates">true</prop> <prop key="hibernate.jdbc.batch_size">1</prop> </props> </property> </bean>
Deprecated Features
Graphical User Interface
The current Graphical User Interface (GUI) is supported in this release, but will be removed in a future release.
The following features are not supported in the new GUI, and will be removed when the current GUI is removed.
Alarms & Alarm Generators
WorkFlows
We recommend that users do not use these features for new work, and plan to replace them in existing configurations.
Database
We are planning not to support the following old database versions in releases after 31st March 2018. Please contact the support desk if you are currently using any of these versions and are not planning to change by then. We'll plan continued support if needed with your input.
Oracle 11g
SQL Server 2012
MariaDB 10.0
Features and Improvements
Export Excel File with data from multiple sources
File Exporters now provide a new file type: Excel Spreadsheet (Multiple Inputs). This supports exporting data from multiple input pipes to a single Excel spreadsheet. The export must still be triggered by a push pipe, but can now read data from other input pipes. The exporter must have an Excel template which is annotated to define which pipe data is written into each region of the template.
The Excel Template field is now an expression with access to the Input Multiplier value, which allows the exporter to use different templates for different exported files in a single exporter run.
Easier configuration for simple edit forms (CRUD)
A set of changes now make it simple to create CRUD (Create - Read - Update - Delete) forms to enter and maintain data.
Add types to form buttons
Buttons added to forms can now have one of five predefined types:
- INSERT
- UPDATE
- DELETE
- CLEAR
- GENERAL
The INSERT, DELETE and UPDATE types will cause the buttons to behave as if they had a predefined action attached with the same stream update action and, in the case of insert and update, the Copy Values by Name (see below) option ticked without actually having to configure and attach such an action. The stream to which this will be applied is the stream associated with the outermost area of the form.
You can define a button as INSERT, DELETE or UPDATE and then also attach an action. This might be needed, for example, if you want to carry out some validation logic, display confirmation messages, completion actions or to calculate some specific values for fields. In this case, the button will run the action but the type of the button (i.e. insert, delete or update) will override the corresponding setting on the action and the stream associated with the outer area of the form will override the stream specified on the action. The value of the Copy Values by Name field will be taken from the attached action.
Setting the button type to CLEAR means that the button will clear all of the values from the form fields. This can be useful if you want to use the same form for updates and insert and allows you to clear any values from the form prior to the next insert.
Setting the type to GENERAL means that the button will only perform the action that has been attached to the button.
Auto increment UID on CRUD actions
If you add an integer attribute called UID
to your stream then any insert stream actions (i.e. inserts initiated manually by menu items on grids or buttons on forms - NOT by analysis models) will automatically assign a unique number to the UID field.
Auto view refresh after simple edits - Auto refresh after CRUD updates
After performing an INSERT, UPDATE or DELETE action (see above), forms and grids will now auto update according to the following rules:
- The form on which the button was pressed will:
- clear itself for a DELETE
- refresh itself with an up-to-date copy of the record for an INSERT or UPDATE
- Any grid showing data from the same stream as the record updated will refresh itself, and the grid selection will change to the newly inserted or updated record
Note that form and grid refreshes for GENERAL actions will be same as before.
Automatically audit CRUD changes
In previous releases any stream item updates carried out by stream actions were carried out directly on the stream item. Any deletes completely removed the record, updates changed the record in its current stream set and inserts would be placed directly into the most recent stream set. No audit trail of these changes was kept.
For transactional streams, you can now tick a box on the stream called Audit Changes which modifies this behaviour. If this option is selected, updates and deletes initiated by stream actions (not those carried out by analysis runs) will then automatically mark the existing record as superceded and create a new stream set; the new versions of the updated records will be placed in the new stream set.
Inserts will simply create a new stream set, and add the inserted record into that stream set.
If you tick the Audit Changes box then your stream MUST contain a string field of at least length 10 called UpdateAction
(with exactly this capitalization). This field will be set to indicate the type of action taken i.e. INSERT, UPDATE or DELETE.
For a DELETE, the new version of the record will also be marked as superceded.
You can also add some optional attributes to the stream which will then also be automatically maintained during updates. These are show below (and again the exact capitalization is important):
UpdatedByName
: the name of the user that performed the updateUpdatedByID
: the internal id of the user that performed the updateUpdatedTime
: the date and time the update was made
Improvements to performance of modelling in new GUI
A number of changes have been made to improvement performance in the new GUI while modelling.
Easier application development
In addition to the introduction of quick configuration for CRUD forms, a number of changes have been made to make creation of applications quicker and easier:
Stream view styling
You can now specify styles which will be used for displaying data grids. Those styles can be set on:
- System Configuration
- Application
- Stream View
Styles available:
- Grid Header Style
- Grid Header Button Style (applies to action buttons)
- Grid Header Icon Style (applies to standard PhixFlow buttons, e.g. filter, sort order
- Grid Header Dropdown Button Style (buttons that open menu lists)
- Grid Header Dropdown Pane Style (menu lists)
- Grid Paging Style (the paging bar)
- Grid Row Style
- Grid Column Header Style
Drag column headers onto buttons to create a context parameters
You can now drag a column header onto a button to create a context parameter with the same name, and the value of the attribute from a selected record, in the underlying action.
Quick create for dashboard open button
You can create a button to open a dashboard in any of the following ways:
- Drag a dashboard onto a view header
- Drag a dashboard onto a form
- Drag a dashboard onto a button; this will add a rule to the action behind the button, which opens the dashboard
- Drag a dashboard onto an area
Quick create for drop-down
You can now drag a stream view onto an Input Field or a Field Container. This will convert the field/ container to a Drop Down showing the view.
Copy by value option on stream actions
There is a new option on stream actions that update stream items called Copy Values by Name. If this option is ticked, if the action is performed from a form, any values on the form will be copied onto the stream items being updated. This is unless there is a specific stream action attribute for that field, in which case the value calculated by this attribute will be used instead.
This means that if you drag a new stream attribute onto your form, then the values entered into that field will automatically be copied to the underlying stream item by insert or update actions. You do not have to create specific stream action attribute expressions for the new field on each stream action.
Automatically pass through previous context variables
There is a new tick box in the Context Parameters section of the stream action editor called include previous context parameters. If this is ticked, any action on a dashboard will automatically pass on any context parameters sent to the dashboard when it was opened. This is unless the action also specifies a new context parameter of the same name.
Reference new form data using _form
When creating stream action expressions or formatting rule expressions you can now refer the fields on a form using the internal variable _form
. This allows you to refer to fields on a form that includes a button for this action, rather than specifying the name of the dashboard element.
New views/forms for transactional streams show all data
When you drop a transactional stream onto a dashboard area to create a view, the dashboard element is set to show all stream sets.
Similarly, when you drop stream attribute from a transactional stream onto a form on a dashboard, the dashboard element is set to show all stream sets.
Use context variables if no backing record
When you pass context variables to a dashboard that contains a form, the context values will be used as default values for any form field with the same name. If a record is also retrieved from the server then the values of those attributes on the record that match the field names on the form will override the default values taken from the context variables - even if the value on the record is null.
Miscellaneous
Empty menus made larger
Added minimum width and height for drop-downs, so they are visible even if the user does not have privileges to see any of the items in the drop-down.
Exclude superceded records by default
New configuration flags have been included to make it easier to manage the flow and display of superceded records from self-updating streams.
Previously, if you had a stream with superceded records, any reads from that stream - through output pipes or in views - would include those superceded records by default. To exclude them you would have to add a filter.
In most cases you do not want to see the superceded records - generally, they represent the audit trail of old versions of records. These records will now be excluded by default unless you tick the Include History Records flag.
In analysis models this tick box is found on the pipe. For stream views, the tick box is found on the stream view itself, but can be overridden on dashboards by:
- ticking the same option on the dashboard element details (if the stream view is attached directly to the dashboard) or,
- on the stream view layout component (if the stream view is embedded in a form)
Custom fields can be referenced in dashboards
Custom fields (not backed by stream attributes) can be referenced on dashboards, i.e. used in filters, actions.
Display dashboard description from icon in open dashboard
Dashboard icons in open dashboards now show the dashboard description when the mouse pointer is over the icon. Previously, this just showed when a dashboard was hovered over in the list of dashboards in the repository browser.
Show click immediately on submit buttons in old forms in new GUI
Submit button is greyed out immediately in old forms, in the new GUI, after being pressed.
Specify styles for old forms
System Configuration has two new fields:
- Form View Header Style
- Form View Content Style
These allow styling of old forms.
Bug Fixes
Filter conditions now draggable
Filter conditions were not draggable in the filter builder. This has been fixed.
CSS Properties are now ordered
CSS properties were not ordered.
Can delete stream views created by dragging streams onto dashboards
An error was generated while deleting a stream view created on a dashboard by dragging a stream onto the dashboard. This has been fixed.
Can now refactor with dangling input pipe
If a stream had a pipe with nothing on the other end - i.e. no input stream or collector - it was not possible to change the names of other pipes or stream attributes. This has been fixed.
No unfriendly error message on drop-down after multiple select
An unfriendly error message was thrown when the user selected multiple records in a driving view, opened a form then tried to open a drop-down. This error will no longer be thrown.
Fixed historic migration issues
In particular:
- DROP_DOWN_MAPPING.PARENT_ID should be nullable; in some upgraded instances this was not correct
- ORDERED_AREA.LAYOUT_TYPE should be nullable; in some upgraded instances this was not correct.
_prompt filters no longer causes views to minimise and not close
Fixed problem when calling _prompt filter could cause view to minimise, and not be closable.
Password reset link no longer gives 404
Fixed bug with invalid password reset URL when application name was not provided.
Standard error no longer appears on top of action validation error
If you throw an error in a stream action, using the error() function in action validation, the user now only sees the error message you throw, and not the general task plan failure message.
Stream actions now show errors caused by configuration
Stream actions now correctly show configuration errors.