PhixFlow Help

Action

This page is for application designers. It explains the properties you can set for actions.

Overview

When designing an application, you need to create actions to read, update or delete data. The action is connected to the stream data via one or more stream item action rules. 

To create an action, in the repository for your application, right-click on Actions and select  Add. Use this method if you want to reuse an action with data in different streams. Actions created this way appear in the repository in Actions.

You can also create actions that belong to a stream.

  1. Open the stream properties.
  2. Expand the Actions section.
  3. Click  Add.

Actions created this way appear in the repository in Streams → <stream_name> → Actions.

You can create actions on layout components, such as buttons. You can also create actions in grid cells that contain:

  • strings
  • numbers
  • dates or date-times
  • boolean true/false.

A stream item action is a specific action that modifies a data record in the stream. 

Steps Performed by an Action

A Stream Action carries out the following steps, in the following sequence. All of the steps are optional and are only carried out if configured in the action.

Step 1.  Open a Form View

Allow the user to provide some parameters for this action.

Step 2.  Open a File Explorer window

Allow the user to navigate to a directory and select one or more files.

Step 3.  Evaluate context parameters

The Context Parameter expressions can refer to any values entered on the Form View using the notation.

_prompt.<Form Field Name>

The Context Parameters can also refer to any attributes of any records selected on the view or dashboard from which the action was initiated using the notation

<View name or alias>.<Attribute name or alias>

The Context Parameters may also refer to $-variables from other context parameter expressions on the same action. Context Parameters will be evaluated in the order set.

Sections on this page

Step 5.  Upload the selected files

Mark them with the evaluated tag value so that they can be retrieved later by a suitably configured File Collector.

Step 6.  Evaluate the validation expression

This validate action expression can reference:

  • any values entered on the form
  • the values of any context parameters
  • any attributes of any items selected on the view or dashboard from which the action was initiated.

Do this using the notation:

_context.<ContextParameter Name>

The validation expression can also refer to items being dragged or items which are having other items dropped onto them using the notations 

_dragSource.<AttributeName>
_dropTarget.<AttributeName>

respectively.

If the validation expression generates any error messages (including by using the error function) then no further action processing will take place.

Step 7.  Retrieve a set of records from the database

Retrieve a set of records for this Stream. The records retrieved will either be based on a filter specified on the Update StreamItems Filter, or, if no filter is specified, the records selected on the view from which the action was initiated.

If a filter is specified then any expression on the filter can refer to the Form View fields, Context Parameters or attributes of items selected on the view or dashboard from with the action was initiated. This step will only be carried out if the user has selected either the Update or Delete Action on the Item Updates tab, and then Filter Type = View Filter or Action Filter.

Step 8.  Perform stream item updates

Carry out any stream item updates configured in the Update StreamItems section.

Update and delete actions will be applied to the records retrieved from the database in step 7.

When carrying out Insert or Update actions, each Stream Action Attribute expression will be evaluated in turn to calculate the new value for that attribute. These expressions can refer to the Form View values, the Context Parameters, the values of any attributes of items selected on the view or dashboard from with the action was initiated. Or, for Updates, the values of attributes from the records retrieved from the database.

To refer to values of attributes retrieved from the database simply refer to the attribute name without any prefix. Please note, even where a record retrieved from the database is based on a record selected on a view, the values on the record retrieved from the database may differ from those on the view as the record in the database may have been updated by another user since the view was last refreshed. If any attribute expression fails, or an error message is sent using the error function, then that record will not be updated, deleted or inserted. However, if multiple records are being updated, a failure of one record will not prevent the others from being updated or deleted.

With drag and drop actions, either the items being dropped or the items having other items dropped onto them can be chosen to be updated. In the stream action attribute expressions, you can refer to both _dragSource and _dropTarget.

Step 9.  Run task plan

If a task plan has been specified, run this now. Any Context Parameters can be referenced by any expression run during that task plan.

Step 10.  Close starting dashboard

If Close Parent Dashboard has been set, close the dashboard from which the action was initiated.

Step 11.  Open post-dashboard

If a post dashboard has been specified, open this now. Any filter of any view on that dashboard can reference any Context Parameters set on this action. If the specified dashboard is already open it will be brought to the front and refreshed rather than a second instance of the dashboard opening.


Action Properties

Once configured, a Stream Action can be dragged and dropped onto Stream Views associated with the Stream on which the Action is configured to create a set of Action Buttons which appear on the top of the Stream View. Actions can also be dragged into the menus belonging to an Application.

The toolbar has the standard iconsFor information about the sections Parent Details, Analysis Models, Description and Audit Summary, see Common Properties.  For information about other property tabs, see Property Tabs.

The following fields are configured for actions:

Basic Settings

FieldDescription
NameThe name of the Stream Action.
Display NameThe name that will be used to display this action on a Stream View
Show progress indicator after (ms)A number of milliseconds which need to pass after the Action is submitted before the progress indicator is shown .
In Progress MessageThe custom message which will be displayed in the progress window. If not specified, the default message is displayed.
In Progress Popup MessageThe additional information about the running Stream Action which will be displayed as a HTML formatted window.

Context Parameters

FieldDescription
Include Previous Context Parameters

If this is ticked, any context parameters sent to the dashboard when it was opened will be included. If the action specifies a new context parameter of the same name, the new context parameter will supersede the previous one.

Update Parent ContextIf this is ticked, any context parameter values will also be sent to the dashboard that initiated the action
Context parametersA grid listing the context parameters. Double-click to open the properties for a context parameter

Confirmation Message

FieldDescription
Ask for Confirmation

If this flag is ticked, a message will pop up asking the user if they want to proceed with the action. By default, the message is:

Please confirm that you want to apply action Action Name

To provide a customised confirmation message, use the next field.

Confirmation MessageOptionally, enter your own text to display as the confirmation message. Use the toolbar to format the message.

File Upload

FieldDescription
File Upload

If this flag is ticked, users will be prompted to browse to a file and select it for upload when they run this action.

Tag Expr.

An expression that sets the value of the tag for the file. You can use this tag in a file collector to read into PhixFlow files that the action has uploaded.

The tag expression can refer to:

  • any values entered on the Form View using:
_prompt.<Form Field Name>
  • the values of any Context Parameters using:
_context.<ContextParameter Name>

  • any attributes of any records selected on the view or dashboard from which the action was initiated using:
<View name or alias>.<Attribute name or alias>

List of names of uploaded files can be accessed through _files variable.

Action Validation

FieldDescription
Validation Expression

The validation expression is evaluated at the start of any stream item Insert or Update actions. If the validation expression generates any error messages (using the error function) then the action is abandoned. The validation expression is not used to decide whether or not to run the selected Task Plan.

The validation expression can include multiple statements by wrapping them in a do() clause. A number of internal variables are available in these expressions:

  • _this: A reference to all the selected records within the view to perform the action on.
  • _prompt: A reference to all the user prompted action attributes.

The usual message functions debug(message), info(message), warning(message), and error(message) are all available to be used in these expressions and will result in messages being written to the system console logs.

Be careful when using the error(message) function - this will stop the action from being completed.

Example 1

Validate that the sum of the selected record amounts equate to zero before allowing the action to be executed.

if(sum(_this.amount) == 0, info('OK'), error('Not performing Action as the Sum does not equate to zero'))

Example 2

Validate that the user entered comment is at least 10 characters long, else write a warning to the log.

if(stringLength(_prompt.UserComment) >= 10, info('OK'), warning('Comment should be at least 10 characters'))

Using values from other views

You can also refer to records selected in other dashboard views by using their dashboard element names. E.g. if the dashboard also contains a view with database element name ACCTS, you could use the following in your validation expression:

if(sum(ACCTS.amount) == 0, info('OK'), error('Error as ACCTS Sum does not equate to zero'))

Stream Item Action Rules

A list of rules related to this action. Double-click a rule to open its properties and specify rule details and attributes: see Stream Item Action Rules. This grid displays the rule's:

  • Order: The order in which the rules are evaluated.
  • Stream: The backing stream.
  • Name: The rule name.
  • Expression: If this expression evaluates to true, this action will be run. A blank (null) expression counts as true.

Run Task Plan 

FieldDescription
Run Selected TaskPlanTick this flag if you want to run a task plan as part of the action.  Any expression evaluated during this task plan can reference any Context Parameter.
Task Plan Rules

The grid contains a list of task plans and their associated expression. The expression is the rule to determine whether the task plan runs.

To add an expression, double-click the task plan in the grid to open a task plan rule property tab.

The first task plan whose expression evaluates to true will be run. Only this task plan will be run. If none of the expressions evaluates to true, no task plan will be run.

Double-click a task plan rule to specify:

  • Order: The order in which the rules are evaluated.
  • Task Plan: The task plan that will be run if the accompanying expression evaluates to true.
  • Expression: If this expression evaluates to true, this task plan will be run. A blank (null) expression counts as true.

See Task Plan Rule for details.

Action Completion

FieldDescription
Close Parent DashboardIf you tick this flag, the initiating dashboard will be closed once the action has completed.
Open Post Dashboard

If you tick this flag, a separate dashboard will be opened once the action has completed. The dashboard to open is determines by the Dashboard Rules. These are only available if you have ticked this flag.

Any filter of any view on the post dashboard can reference any Context Parameters set on this action. If the specified dashboard is already open it will be brought to the front and refreshed, rather than a second instance of the dashboard opening.

URL ExpressionA URL which will be opened when the Action has completed. This may be provided as a fixed URL or as an expression evaluating to a plain text string. The expression can reference the Form fields, Context Parameters or attributes of Records selected on the view or dashboard from which the action was initiated.
Dashboard Rules available if Open Post Dashboard

This field is only available if the Open Post Dashboard is ticked.

A list of dashboards that can be opened after this action, for each one a rule to determine whether this is the dashboard that will be opened.

The first dashboard whose expression evaluates to true will be opened. Only this dashboard will be opened. If none of the expressions evaluates to true, no dashboard will be opened.

For each dashboard rule define the following fields:

  • Order: The order in which the rules are evaluated.
  • Dashboard: The dashboard that will be opened if the accompanying expression evaluates to true.
  • Expression: If this expression evaluates to true, this dashboard will be opened once the action has completed. A blank (null) expression counts as true.

Result

FieldDescription
Result includes WarningsIf ticked, warning messages generated by the Action in the Console log will be displayed as part of the result message.
Result includes ErrorsIf ticked, error messages generated by the Action in the Console log will be displayed as part of the result message.
Result Message Timeout (s)If specified, the result message will disappear after the given number of seconds.
Result Message

Enter the text for a message that PhixFlow will display when the action has completed. Use the toolbar to format the message. You can use the message to notify the user of a summary of the action, or the to provide information about the completed state.

You can include expressions within the message by enclosing each expression in curly brackets { } . PhixFlow evaluates each expression in turn before displaying the message.

For result messages that report on the status of the action, you can use the following internal variables in the expressions:

  • _error: Details of the error messages generated.
  • _errors: The number of error messages generated.
  • _warning: Details of the warning messages generated.
  • _warnings: The number of warning messages generated.
  • _messages: The number of warning messages generated.
  • _taskPlan: The name of the Task Plan that the Action ran (may be null)
  • _runId: The runId of any Stream data generated by this Action (may be null).
  • _action: The name of the Action.
  • _file: Details of files processed (imported or exported) by the Action.
  • _fileCount: The number of files processed by the Action.


Example message showing the number of errors and warnings
Action {_action} failed with {_errors} errors and {_warnings} warnings.

 number of

You can also use context parameters and values to report different messages. For example if you have a context parameter (called balance) that calculates the outstanding balance, you can use an expression that reports different messages depending on the calculated value.

Example of different messages around a threshold value
{if(_context.balance < 0,"Money still owed", "Balance paid")}

Access Permissions

FieldDescription
All Users Can Run ActionIf you tick this box, all users can run this Action, provided they have the basic privilege to run stream actions. If you untick this box, then access to the stream action is controlled by associating the action with user groups.
User Groups

This field only appears if the All Users Can Run Action box is not ticked. This is a list of the User Groups permitted to run this Action.

This list provides the button - press this to bring up the list of user groups. Drag user groups into the list as needed.

Advanced

FieldDescription
Prevent Parallel Processing

If you tick this box, a single user will not be able to run this action more than once at the same time. I.e. if a user has started this action, they will not be able to start it again until the first action has finished.

Form View

You can specify a form view to appear when the user starts the action.They will be able to enter values on this form view, and the values can be used to update selected records for an update action, or populate fields for an insert action.

Select a form view from the drop-down list of all forms views in PhixFlow, or by pressing  - this brings up the list of streams in PhixFlow; you can select a form view from a stream, and drag it into the form view field.

Values entered in the form view are referenced in expressions in the action with the form

_prompt.<form field name>

For example, if there is a field on the form with the label Name, then the value entered in that field by the user can be referenced in subsequent expressions as

_prompt.Name

If this is an update action, then the form will be pre-populated with the values from the selected record. Where multiple records are selected, then only those values which are common to all the selected records will be displayed. For insert action, when the form pops up all fields will be blank.

Additional Properties for Update or Delete Actions

FieldDescription

Maximum Items Expr.

This field appears if the update action selected is Update or Delete. The expressions entered here must evaluate to a positive whole number. The expression can reference any fields entered on the Form View associated with this action, any attributes of any records selected on the view or dashboard from which the action was initiated and any of the Context Parameters configured for this action.

If the number of items selected on the view from which this action is initiated, or retrieved by the filter configured on this action, is greater than this number then an error message will be generated and no updates or deletes will take place.

Minimum Items Expr.

This field appears if the update action selected is Update or Delete. The expression entered here must evaluate to a positive whole number. The expression can reference any fields entered on the Form View associated with this action, any attributes of any records selected on the view or dashboard from which the action was initiated and any of the Context Parameters configured for this action.

If the number of items selected on the view from which this action is initiated, or retrieved by the filter configured on this action, is less than this number then an error message will be generated and no updates or deletes will take place.



Please let us know if we could improve this page feedback@phixflow.com