3.01 Bulk Delete Action Configuration

3.01 Bulk Delete Action Configuration

What is a Bulk Delete Action?

The 

 action deletes records in bulk from a table, such as deleting all records, or those records which satisfy the specified filter criteria set on the node. 

Note: Bulk Delete actions will only delete records in tables with the Period of Transactional.

 vs 
 

The key difference between 

 and 
 is that the Bulk Delete action purges records from PhixFlow, including the audit history of records where Audit Manual Changes has been enabled.

To delete records and persist the audit history of the record, see Delete Node.  

Creating Bulk Delete Actions

  1. Click the 

     icon in the Actionflow toolbar to display any existing tables in the application 

    1. Existing tables can be dragged from the Repository onto the canvas, then choose 

       to create a Bulk Delete node

  2. Alternatively, drag the 

     icon from the toolbar onto the canvas

  3. In the Create Bulk Delete Action window:

    1. Enter a Name

    2. Choose a Type from: 

      1. Delete: allows only records satisfying the specified filter criteria to be deleted

        1. Set the filter criteria in the Bulk Delete Action 

           under Data Retrieval Options - see section below

      2. Delete All: deletes all data from the selected table 

    3. Choose to Allow Audited Table to display tables with Audit Manual Changes enabled in the Table drop down

      1. By default, tables with Audit Manual Changes enabled are not shown in the Table drop down list

    4. Choose the Table from the drop down where the records will be deleted

      1. Or click the table icon to display tables in the Repository

    5. Select Create Action

When creating delete actions it can be useful to set up confirmation messages that allow users to confirm or cancel the deletion. See 1.13 Confirmation Message Configuration.

Setting Delete Action Filter Criteria

Where the Type is set to Delete on the

 action, the Data Retrieval Options section shows in the 
. This filter must be set for the Bulk Delete action to run.

  1. Choose a Data Range from:

    1. Latest: selects data from the latest recordsets

    2. All: selects data from all recordsets (default)

  2. Set the Filter Criteria to specify which records will be selected for deletion. See Filter → Filter Details

    1. Incoming attributes mapped to the Bulk Delete node can be referenced in the Data Retrieval Options using the syntax, ConnectorName.AttributeName, e.g. in.MyAttribute

Specify Delete Batch Size

Where the Type is set to Delete on the

 action, in the Advanced section, an optional Delete Batch Size can be set to determine the size of the batches. If left blank the batch size set in System Configuration → System TuningDelete Batch Size, is used as the default. The System Configuration value can be overridden with this batch size. 

Bulk Delete Output Attribute (modifiedRows)

The output attribute, modifiedRows, automatically shows when mapping from a Bulk Delete action. This attribute is a count of the rows that are updated by the action, but if the Type (see above) is set to Delete All then the value is unavailable.



Worked Example

Here's a worked example using the Company Data (available from the Learning Centre).

In this example, we are using:  

  • Company Rejected Companies screen containing three grids of the Companies, 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 Rejected Companies screen.

Bulk Delete Rejected Companies

In this example, we'll set up an Actionflow to delete all companies with a Status of Rejected, along with any associated Orders and Order Lines.

View Setup

  1. Open the Company Rejected Companies screen

  2. Create an Actionflow on the Delete All button

    1. Name: BulkDeleteRejectedCompanies

  3. Configure the input connection point to

  4. Create a

     to the Companies data to output the CompanyID of rejected companies only

  5. Connect the input to the View 

Lookup Setup

Create a lookup to the Orders data to retrieve the orderIDs as an array. The orderID can then be used to bulk delete the orders and orderLines. A lookup is used to pass a large block of data (an array) rather than one record at a time.

  1. Create a 

     to process the lookup Orders data

  2. From the Calculate action, create a lookup the Orders data

    1. Incoming Mappings: CompanyID

    2. Outgoing Mappings: Order_ID

  3. Create a filter on the Orders 

     to only retrieve orders that match the incoming CompanyID

  4. On the Calculate action, create an Output Attribute to process the Order IDs coming from the lookup as structured data

Bulk Delete Action Setup

  1. Create three

     actions for deleting from the three tables: Companies, Orders and OrderLines

  2. Map the associated ID attribute into the relevant Bulk Delete node

  3. Set up filters on each node in the Data Retrieval Options section to ensure only records associated with a rejected company are deleted

Testing

  1. Return to the Company Rejected Companies screen and lock the screen

  2. Press the Bulk Delete button

  3. Refresh the data in each grid to see the results

  4. Review the Orders and Order Lines data to check there are no orders or order lines with a blank company