PhixFlow
PhixFlow version 7.4.0 introduces exporting to multiple tabs in excel, along with performance improvements in the design component on the new GUI.
At this version of PhixFlow, the old flash-based GUI is still available.
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 12c - edit phixflow-datasource.xml
If you are using Oracle 12c, 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>
Contents
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
The following database versions will not be supported after 31st March 2018:
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
improvements ...
Changes to assist in application development
Drag a column header on a button to create a context param
The user can now drag a column header onto a button to create a context param in the underlying action.
Quick create for dashboard open button
The user can now drag a dashboard onto a view header in order to create an action button which opens the dashboard.
The user can now drag a dashboard onto a form in order to create a button which opens the dashboard.
The user can now drag a dashboard onto a button in order to a add a rule which opens the dashboard to the underlying action.
The user can now drop a dashboard onto an area in order to create a button which opens the dashboard.
Quick create for drop-down
The user can now drag a StreamView onto an inputField or a Field Container in order to convert it to a DropDown with the View and Value Attribute configured.
Copy by value option on stream actions
There is a new option on stream actions that update the stream items called 'Copy Values by Name'. If this option is ticked then any values on the form from which the action was initiated will be copied onto the stream items being updated 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 on the form will automatically be copied to the underlying stream item by insert or update actions without having to create specific stream action attribute expressions for the new field on each stream action.
Allow actions to 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 then any action on a dashboard will automatically pass on any context parameters sent to the dashboard when it was opened 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 the relevant form (i.e. the form to which the action is attached via a button or the form to which the formatting rule applies) using the internal variable _form rather than specifying the name of the dashboard element.
New views/forms for transactional streams should have 999999999999 periods
When you drop a transactional stream on a dashboard area to create a view then the dashboard element is set to show all streamsets.
Similarly when you drop stream attributes from a transactional stream onto a form on a dashboard the dashboard element is set to show all streamsets.
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 - even if the value on the record is null.
Throw an error if two dashboard elements/streamViewLayoutComponents with the same name
You will now receive an error message when running an update action if two elements on a dashboard have the same name or if an element name clashes with the name of a lookup pipe on the stream being updated.
Other
Charts show spinner while updating
Charts are now showing spinner while updating
Empty menus made larger
Added minimum width and height of drop-downs, so they are visible even if the user does not have privileges to see any of its items.
Superceded flag on pipes
New 'Include Superseded' flag on pipes. If ticked, the result will include superseded records. Otherwise they'll be filtered out.
=============================================================
Previously if you had a stream with superseded records in it then any reads from that stream, e.g. on pipes in analysis models or when refreshing stream views, would include those superseded records by default. To exclude them you would have to add specific filters to do so.
Since in most cases you do not want to see the superseded records (as in most cases they simply represent the audit trail of old versions of the record) these records will now be excluded by default unless you tick the 'Include Audit Records' box.
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 overriden on dashboards by ticking the same option on the dashboard element details (if the streamview is attached directly to the dashboard) or on the stream view layout component (if the stream view is embedded in a form).
Allow custom fields to be referenced in dashboards
Custom fields (not backed by a 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 hovered over. Previously, this just showed on dashboards in the list of dashboards in the repository browser.
Show click immediately on submit buttons in old forms in new gui
Submit button is grayed out after submitting a form.
Specify styles for old forms
System Configuration has two new field: Form View Header Style and Form View Content Style. They allow to specify styling of old forms.
Bug Fixes
Text input slowed down while modelling
While modelling, text fields in configuration forms could become slow when a large number of editor windows were open. This has been resolved. |
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.
Error when deleting View that is automatically created
Fixed bug with an error while deleting a Stream View created on a dashoard by dragging a stream onto the dashboard
Actions with no context variables defined now have a context
Fixed bug whereby the dashboardToOpen context parameter is always set on the return from an action. |
Refactoring 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.
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
drop_down_mapping.parent_id is nullable in migration scripts, not nullable in fresh install
Migration not setting ordered_area.layout_type to nullable
_prompt filters causes views to minimise and not close
Fixed problem with calling _prompt filter from a standalone Stream View
Password Reset Link gives 404
Fixed bug with invalid password reset url when app name was not provided
Standard error appears on top of action validation error
If you throw an error in a stream using the "error" function the user now only sees the error message you throw and not the general task plan failure message.
Stream actions not showing errors caused by configuration
Stream Actions correctly show configuration errors