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 Properties
- 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
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 Calculate action to the canvas
- Name:
Add Details
- Name:
- Connect the input node to the Calculate action
- 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 Run Analysis action to the canvas
- On its Properties, in the Tables section, click the icon
- 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
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 View action with the Primary Table, AdditionalCompanies_Processed, and connect the Analysis action to the View action
- 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 attributes
- Save the properties
- In the Properties for the View, in the Data Retrieval Options section, set the Data Range to Latest
- Create a Save action to save the data to the Companies table
- In its Properties, in the Basic Settings section, set the Type to Insert and toggle on Auto Save Attributes
- Connect the View to the Save action and map across all attributes
Setting the Exclusion Group
- Open the Actionflow Properties
- 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
Testing
- Open the Company Approval Review and Company Management screens
- Ensure both screens are Locked
- Click Import on one screen then press Import on the other screen
- A warning message should appear