Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
What are Exclusion Groups?
Exclusion Groups are used to group Actionflows and limit their ability to run at the same time.
Where multiple Actionflows have the same exclusion group, only one Actionflow will be able to run at any one time. Attempting to run a second Actionflow, with the same exclusion group, will return a warning message and the Actionflow will not run. This applies whether the Actionflow is run manually or automatically using a schedule.
Exclusion groups are evaluated before any Actionflows are started. When an Actionflow with an exclusion group is triggered, if no other Actionflow with the same exclusion group is already running then the Actionflow will continue. The action will be considered to be using this exclusion group from this point until the Actionflow has completed.
Setting Exclusion Groups
- Open an Actionflow and open its
Insert excerpt _property_settings _property_settings nopanel true - Under Basic Settings, populate the Exclusion Group field with any text to indicate the group
- This field is case insensitive and can take any free text
- Repeat this with other Actionflows to add them to the same Exclusion Group
Worked Example
Here's a worked example using the Company Data (available from the Learning Centre).
In this example, we are using:
- A Company Orders screen containing two grids of the Orders and OrderLines data - this screen was created using the Multi-tile template
Tip |
---|
If you are completing this chapter as part of the Actionflow course and using a training instance, the data and screens have already been pre-loaded into the Actionflow Advanced Application. For this example, we'll be working on the Company Orders screen. |
Stop Multiple Processes Running While Performing Data Import
In this example, we'll create an Actionflow to import the AdditionalCompanies_Processed data and add the Status of New to each company on that table before adding it to the Companies table. We'll add this Actionflow to an Exclusion Group with other Actionflows on the same screen so that other processes cannot be triggered while the import is taking place.
Actionflow Setup
- Open the Company Approval Review screen
- Create an Actionflow on the Import button to import the AdditionalCompanies_Processed data
- Name:
ImportCompanies
- If you have completed the Actionflow Intermediate Course, chapter 2.15 Analysis Action Configuration, this Actionflow setup is similar
- Name:
- Configure an input of On Click
- Add a
action to the canvasInsert excerpt _action_calculate _action_calculate nopanel true - Name:
Add Details
- Name:
- Connect the
node to the Calculate actionInsert excerpt _input _input nopanel true - On the Calculate action, add the following Output Attribute that will be used to update the Status of all imported companies:
- Name:
Status
- Type:
String
- Expression:
"New"
- Name:
- On the Calculate action, add another Output Attribute that will be used to add a 20 second delay into the Actionflow, this will simulate a large data import and allow time to trigger the Actionflow twice:
- Name:
Delay
- Type:
Integer
- Expression:
sleep(20)
- This will add a delay into the Actionflow for demonstration purposes. See sleep
- Name:
- Add a
action to the canvasInsert excerpt _action_analysis _action_analysis nopanel true - On its Properties, in the Tables section, click the
iconInsert excerpt _tables _tables name icon nopanel true - Drag across the AdditionalCompanies_Processed table from the Repository to the Analysis action properties
Connect the Calculate action to the Analysis action and map across the Status attribute
Expand title Checkpoint
Table Attributes Setup
- On the Analysis Model, Actionflow Advanced Data, click on the table, AdditionalCompanies_Processed
- Double-click on the attribute, Status, and change the Expression to
_context.Status
- This is then referring to the attribute setup on the Calculate action
- Save the Analysis Model
Combine Data & Display
- On the Actionflow, create a
action with the Primary Table, AdditionalCompanies_Processed, and connect the Analysis action to the View actionInsert excerpt _action_view _action_view nopanel true - In the Properties for the View, in the Data Retrieval Options section, set the Data Range to Latest
- This will ensure that this data isn't continuously added if the Actionflow is run repeatedly
- For the Output Attributes section, click the
icon and drag across all attributesInsert excerpt _attributes_icon _attributes_icon nopanel true - Save the properties
- In the Properties for the View, in the Data Retrieval Options section, set the Data Range to Latest
- Create a
action to save the data to the Companies tableInsert excerpt _action_save _action_save nopanel true - In its Properties, in the Basic Settings section, set the Type to Insert and
toggle on Auto Save AttributesInsert excerpt _toggle_on _toggle_on nopanel true
- In its Properties, in the Basic Settings section, set the Type to Insert and
- Connect the View to the Save action and map across all attributes
Expand title Checkpoint
Setting the Exclusion Group
- Open the Actionflow
Insert excerpt _property_settings _property_settings nopanel true - Under Basic Settings, populate the Exclusion Group field with any text, e.g.
Import
- Under Basic Settings, populate the Exclusion Group field with any text, e.g.
Add Actionflow to Import Button on Companies Screen
Add the same Actionflow to the Import button the Company Management screen
Expand title How? - On the ImportCompanies Actionflow, open the
, hover over theInsert excerpt _property_settings _property_settings nopanel true
icon and chooseInsert excerpt _more_options _more_options name icon nopanel true Insert excerpt _repository_find _repository_find nopanel true - Open the Company Management screen and drag the highlighted Actionflow from the Repository onto the Import button
- This will create another instance of the same Actionflow
- On the ImportCompanies Actionflow, open the
Testing
- Open the Company Approval Review and Company Management screens
- Ensure both screens are
edInsert excerpt _lock _lock nopanel true - Click Import on one screen then press Import on the other screen
- A warning message should appear