Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Insert excerpt
_Banners
_Banners
nameactionflow
nopaneltrue

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.

Image Removed

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_settingsnopaneltrue
  • Under Basic Settings, populate the Exclusion Group field with any text to indicate the group
    1. This field is case insensitive and can take any free text
  • Repeat this with other Actionflows to add them to the same Exclusion Group

    Adding Authentication to an API End Point

    Step 1 - Enable Authentication

    1. Open the Incoming API/API End Point Actionflow
    2. On the toolbar click 
      Insert excerpt
      _property_settings
      _property_settings
      nopaneltrue
    3. In the API section, disable 
      Insert excerpt
      _toggle_off
      _toggle_off
      nopaneltrue
       Allow Anonymous Connection 
      1. This will then only allow authenticated calls to the API
    4. Insert excerpt
      _save
      _save
      nopaneltrue
       the changes

    Step 2 - Create an Authentication User

    1. In the
      Insert excerpt
      _repository
      _repository
      nopaneltrue
      , expand the application with the Incoming API
    2. Expand
      Insert excerpt
      _roles
      _roles
      nopaneltrue
       and create an New Role by clicking 
      Insert excerpt
      _addIcon
      _addIcon
      nopaneltrue
      1. Pin the tab as we will need it to remain open
      2. Provide a useful Name, e.g. GenerateToken
      3. In the Privileges section, click 
        Insert excerpt
        _privilege
        _privilege
        nopaneltrue
      4. Search for the privilege in the Full Repository : Use API Key
      5. Drag the Use API Key into the Privileges section of the Role 
        Insert excerpt
        _property_settings
        _property_settings
        nopaneltrue
      6. Image Added
      7. Insert excerpt
        _save
        _save
        nopaneltrue
         the changes
    3. In the 
      Insert excerpt
      _user_group
      _user_group
      nopaneltrue
       section, click 
      Insert excerpt
      _user_group
      _user_group
      nopaneltrue
      1. Add a new Group for you Role
        1. Give it a useful Name e.g. API Users
        2. Add any users you require to be able to run the API. This could be a dedicated API user with limited privileges
          1. To create a user see Managing User Accounts → Creating Users
        3. Click 
          Insert excerpt
          _save
          _save
          nopaneltrue
           and close the tab
      2. Now drag the new user group into the 
        Insert excerpt
        _user_group
        _user_group
        nopaneltrue
         section of the new privilege
      3. Insert excerpt
        _save
        _save
        nopaneltrue
         the changes
    4. The setup should look similar to:
      1. Image Added

    Step 3 - Authentication Token KeyStore

    A signing key is used to generate the PhixFlow API key and this is stored on the server to ensure secure access.

    Using the page Configure a Keystore and Aliases, configure phixflow-api-key to be used as the signing key for PhixFlow API Keys in the same way as the pepperKey is configured. This secret string must be a minimum of 32 bytes length.

    Step 4 - Generate Authentication Token

    1. The Incoming API will run as a specified user, this means that when it is called the audit trail will show the specified user as having performed the Incoming API Actionflow
    2. You do not need to login as this user, however, if you were already logged in as this user, you will need to logout and login again to pick up the user group change 
    3. In the 
      Insert excerpt
      _repository
      _repository
      nopaneltrue
      , scroll down to the Full Repository section and expand it
    4. Expand the
      Insert excerpt
      _user
      _user
      nopaneltrue
       section
    5. Double click on the user who will run the Incoming API
    6. Click the 3-dot more menu in the top right of the user properties
    7. Click Generate API Key
    8. Copy the value displayed and store it somewhere safe

    Image Added

    Step 5 - Send Authorization

    When calling the Incoming API, the authorisation token must be passed in as a header called: Authorization. 

    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

    1. Open the Company Approval Review screen
    2. Create an Actionflow on the Import button to import the AdditionalCompanies_Processed data
      1. Name: ImportCompanies 
      2. If you have completed the Actionflow Intermediate Course, chapter 2.15 Analysis Action Configuration, this Actionflow setup is similar
    3. Add a
      Insert excerpt
      _action_calculate
      _action_calculate
      nopaneltrue
       action to the canvas and connect the 
      Insert excerpt
      _input
      _input
      nopaneltrue
       node to it
    4. On the Calculate action, add the following Output Attribute that will be used to update the Status of all imported companies:
      1. Name: Status
        1. Type: String
        2. Expression: "New"
    5. 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:
      1. Name: Delay
      2. Type: Integer
      3. Expression: sleep(20)
        1. This will add a delay into the Actionflow for demonstration purposes. See sleep
    6. Add a 
      Insert excerpt
      _action_analysis
      _action_analysis
      nopaneltrue
       action to the canvas
    7. On its Properties, in the Tables section, click the 
      Insert excerpt
      _tables
      _tables
      nameicon
      nopaneltrue
       icon
      1. Drag across the AdditionalCompanies_Processed table from the Repository to the Analysis action properties
    8. Connect the Calculate action to the Analysis action and map across the attribute

      Expand
      titleCheckpoint


    Table Attributes Setup

    1. On the Analysis Model, Actionflow Advanced Data, click on the table, AdditionalCompanies_Processed
    2. Double-click on the attribute, Status, and change the Expression to _context.Status
      1. This is then referring to the attribute setup on the Calculate action
    3. Save the Analysis Model

    Combine Data & Display 

    1. On the Actionflow, create a 
      Insert excerpt
      _action_view
      _action_view
      nopaneltrue
       action with the Primary Table, AdditionalCompanies_Processed, and connect the Analysis action to the View action
      1. In its Properties, in the Data Retrieval Options section, set the Data Range to Latest
        1. This will ensure that this data isn't continuously added if the Actionflow is run repeatedly
      2. For the Output Attributes section, click the 
        Insert excerpt
        _attributes_icon
        _attributes_icon
        nopaneltrue
         icon and drag across all attributes
    2. Create a 
      Insert excerpt
      _action_save
      _action_save
      nopaneltrue
       action to save the data to the Companies table
      1. In its Properties, in the Basic Settings section, set the Type to Insert and
        Insert excerpt
        _toggle_on
        _toggle_on
        nopaneltrue
         toggle on Auto Save Attributes
    3. Connect the View to the Save action and map across all attributes
      1. Expand
        titleCheckpoint


    Setting the Exclusion Group

    1. Open the Actionflow 
      Insert excerpt
      _property_settings
      _property_settings
      nopaneltrue
       
      1. Under Basic Settings, populate the Exclusion Group field with any text, e.g. Import
    2. Add the same Actionflow to the Import button the Company Management screen

      Expand
      titleHow?
      1. On the ImportCompanies Actionflow, open the 
        Insert excerpt
        _property_settings
        _property_settings
        nopaneltrue
        , hover over the 
        Insert excerpt
        _more_options
        _more_options
        nameicon
        nopaneltrue
         icon and choose 
        Insert excerpt
        _repository_find
        _repository_find
        nopaneltrue
      2. Open the Company Management screen and drag the highlighted Actionflow from the Repository onto the Import button
        1. This will create another instance of the same Actionflow


    Testing

    1. Open the Company Approval Review and Company Management screens
    2. Ensure both screens are 
      Insert excerpt
      _lock
      _lock
      nopaneltrue
      ed
    3. Click Import on one screen then press Import on the other screen
    4. A warning message should appear