Forms: Stream Action
A Stream Action carries out the following actions steps, in the following sequence. All of the steps are optional and are only carried out if configured on in the appropriate tabaction.
Step | Name | Description |
---|---|---|
1 | Open a Form View |
...
Allow the user to provide some parameters for this action |
...
2 | Open a File Explorer window |
...
Allow the user to navigate to a directory and select one or more files |
...
3 | Evaluate context parameters | The Context Parameter expressions can refer to any values entered on the Form View using the notation
|
...
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
|
...
4 | Evaluate the file upload tag expression |
...
This expression can refer to:
|
...
|
...
|
...
|
...
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. | |
6 | Evaluate the validation expression |
...
This validate action expression can reference any values entered on the Form, the values of any Context Parameters |
...
, using the notation |
...
|
...
and any attributes of any items selected on the view or dashboard from which the action was initiated. If the validation expression generates any error messages (including by using the |
...
error function) then no further action processing will take place. | ||
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. | ||
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. | |
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. |
...
10 | 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. |
11 | Close starting dashboard | If Close Parent Dashboard has been set, close the |
...
dashboard from which the action was initiated. |
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 following are the top-level configuration parameters for Stream Actions:
Form: Stream Action Details
The following fields are configured on the Details tab:
...
fields are configured for actions:
Field | Description |
---|---|
Basic Settings | |
Name | The name of the Stream Action. |
Display Name | The name that will be used to display this action on a Stream View |
If the Stream Action selected on the Item Updates tab is 'Update' 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. If any other Stream Action is selected then the form fields will initially be blank.
A Check box to determine whether a Tag Expression field is displayed. The tag expression can refer to any values entered on the Form View using the notation _prompt.<Form Field Name>, the values of any Context Parameters using the notation _context.<ContextParameter Name> and 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>.
If a tag expression is provided then when the action is run a file explorer dialog will appear to allow the user to navigate to a directory and select one or more files. These files will be uploaded to the File Upload Directory specified in the System Configuration table and tagged with the evaluated value of this tag expression so that they can be retrieved later by suitably configured File Collector.
List of names of uploaded files can be accessed through <i>_files</i> variable.
The following fields are configured on the Context Parameters tab:
Show progress indicator after (ms) | A number of milliseconds which need to pass after the Action is submitted before the progress indicator is shown . | ||||||
Context Parameters | |||||||
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. | ||||||
A list of the context parameters for this action. For each context parameter, define the following fields: | |||||||
Name | The name of the context parameter | ||||||
Expression | An expression for the context parameter. The Context Parameter expressions can refer to any values entered on the Form View using the notation
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
It is not possible to refer to one context parameter from another. The values returned by the context parameter expressions can be referenced by the Validation expression, the Filter, the Maximum and Minimum Items expressions, any Stream Action Attribute expressions and any dashboard opened by this action. The context values are referenced using the syntax
Example
Unlike stream action attribute expressions, context parameter expressions can evaluate to a list of values as well as single values. 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. | ||||||
Confirmation Message | |||||||
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 (i.e. if you do not enter a value in the field Confirmation Message), the message will have the format:
| ||||||
Confirmation Message | The message you want to display to users when asking them to confirm whether they want to complete the action. | ||||||
File Upload | |||||||
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:
|
|
The values returned by the context parameter expressions can be referenced by the Validation expression, the Filter, the Maximum and Minimum Items expressions, any Stream Action Attribute expressions and any dashboard opened by this action.
The context values are referenced using the syntax _context.<context parameter name>.For example, imagine that you have a view called 'customers' which shows a list of customers including the account id, name and other account details and you want to create an action button to open up another dashboard, containing a view called 'invoices', which will show the invoices for the specific customer selected on the 'customers' view. To do this you would add an action button to the 'customers' view and configure it to open the dashboard containing the 'invoices' view. You would then add a context parameter called 'account' to the action with the context parameter expression set to 'customers.account_id'. On the background filter of the 'invoices' view you would then set the filter to only select those invoices whose account_id was equal to '_context.account'.
Unlike stream action attribute expressions, context parameter expressions can evaluate to a list of values as well as single values.
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.
However special attention should be taken when using the error(message) function as this will also STOP the action from being completed.
...
The validation expression is the same as a stream attribute expression, and 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.
However special attention should be taken when using the error(message) function as this will also STOP the action from being completed.
...
if(sum(_this.amount) == 0, info('OK'), error('Not performing Action as the Sum does not equate to zero'))
...
if(stringLength(_prompt.UserComment) >= 10, info('OK'), warning('Comment should be at least 10 characters'))
Note that you can also reference selected records from other dashboard views by using their view names:- i.e if(sum(ACCTS.amount) == 0, info('OK'), error('Error as ACCTS Sum does not equate to zero'))
...
List of names of uploaded files can be accessed through | |||||||
Action Validation | |||||||
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:
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.
Example 2 Validate that the user entered comment is at least 10 characters long, else write a warning to the log.
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
| ||||||
Update StreamItems | |||||||
Stream Item Action | This drop down has four options:
Please be aware that deleting records with an action is non-reversible. In some circumstances it may therefore be better to select an Update action to simply mark the records as 'deleted' and then configure an Archive Task to remove records marked as deleted after a certain period of time. This will provide a window of opportunity for these 'deletions' to be reversed manually if they are made by mistake. If you don't want your users to see these deleted records, simply filter them from any views. | ||||||
Filter Type | This drop down has four options:
| ||||||
Target View | If specified, changes the view the action applies to (gets records from if selected Filter Type = Selected Items, Edited Items or View Filter). | ||||||
Condition | This is only available if you have selected Filter Type = Action Filter. Create a filter to specify the records that an Update or Delete will apply to. Any expressions on this filter can reference the Form View fields, Context Parameters and any attributes from any record selected on the view or dashboard from which this action was initiated. Configure this filter in the same way that you would a pipe filter. | ||||||
Copy Values By Name | This is only available if you have selected Stream Item Action = Insert or Update. If this flag is ticked, all Stream Item Attributes which are not present on the Action Attributes list below will take their new values from the current form. | ||||||
Action Attributes | |||||||
The list of attributes that will be populated by the action - whether an update or insert. This section includes the button - this brings up the list of attributes for the stream that you are building the action on. Drag any attributes you want from this list into the action, or add them by pressing . For each attribute, configure the following fields: | |||||||
Order | The order in which the action attributes are evaluated. | ||||||
Attribute | The name of the stream attribute that will be populated. | ||||||
Expression | The expression used to generate the new attribute value. This is written as a PhixFlow Expression.
will sum up all values in
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 for the current stream item. However, it will not stop the action from updating/ inserting other stream items.
| ||||||
Run Task Plan | |||||||
Run Selected TaskPlan | Tick 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 | |||||||
A list of task plans that can be run for this action, for each one a rule to determine whether the task plan is actually run. 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. For each task plan rule define the following fields: | |||||||
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. | ||||||
Action Completion | |||||||
Close Parent Dashboard | If 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 Expression | A 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 | |||||||
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 | |||||||
Result includes Warnings | If ticked, warning messages generated by the Action in the Console log will be displayed as part of the result message. | ||||||
Result includes Errors | If ticked, error messages generated by the Action in the Console log will be displayed as part of the result message. | ||||||
Result Message | The Result Message is displayed when the Action has completed, and |
can be used to provide a summary of the Action. The message can contain multiple |
expressions inside {} brackets - these |
expressions are evaluated in turn before the message is displayed. |
For example:
A number of internal variables are available in these expressions:
|
|
The following fields are configured on the Item Updates tab:
- None
- Update
- Insert
- Delete
Please be aware that a Deletion action is non-reversible. In some circumstances it may therefore be better to select an Update action to simply mark the records as 'deleted' and then configure an Archive Task to remove records marked as deleted after a certain period of time. This will provide a window of opportunity for these 'deletions' to be reversed manually if they are made by mistake.
- Selected Items - Action will only apply to the records selected on the view from which the action was initiated.
- View Filter - Action will only apply to the records shown on the view from which the action was initiated.
- Action Filter - Action will only apply to the records retrieved by the filter defined in the Filter tab.
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 Expression
| |||||
Access Permissions | |||||
All Users Can Run Action | If 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 | |||||
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
For example, if there is a field on the form with the label
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. | ||||
Description | |||||
Description | Description of the stream action |
Field | Description | ||
---|---|---|---|
Maximum Items Expr. | This field appears if the update action selected is Update or Delete. The expression 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 less greater than this number then an error message will be generated and no updates or deletes will take place. | Action Attributes | A Grid showing all the associated Stream Action Attributes that form part of this stream action. See the Stream Action Attribute form. This grid only appears if the Stream Item Action and no updates or deletes will take place. |
Minimum Items Expr. | This field appears if the update action selected is Update or Delete. |
The Filter tab allows the user to enter a filter to specify the records against which any Update or Delete actions should be applied. Any expressions on this filter can reference the Form View fields, Context Parameters and any attributes from any record selected on the view or dashboard from which this action was initiated. The tab is visible only if the selected Filter Type (in the Item Updates tab) is the 'Action Filter'.
The following field is configured on the User Groups tab:
Field | Description |
---|---|
User Groups | A list of User Groups permitted to run this Action |
The following field is configured on the Description tab:
Field | Description |
---|---|
Description | Description of the stream action |
Form Icons
The form provides the standard form icons.
Displays the Stream that this action belongs to. |
The form also provides the following icons on the Stream Action Attributes tab:
Deletes the selected object from the list.
Adds a new Stream Action Attribute.
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. |
Form Icons
The form provides the standard form icons. Additional buttons are described above, for the sections or fields that they appear against.