What is a Bulk Delete Action?
The Bulk Delete 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.
Delete vs Bulk Delete
The key difference between Delete and Bulk Delete 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
- Click the Bulk Delete icon in the toolbar to display any existing tables in the application
- Existing tables can be dragged from the Repository onto the canvas, then choose Bulk Delete to create a Bulk Delete node
- Alternatively, drag the Bulk Delete icon from the toolbar onto the canvas
- In the Create Bulk Delete Action window:
- Enter a Name
- Choose a Type from:
- Delete: allows only records satisfying the specified filter criteria to be deleted
- Set the filter criteria in the Bulk Delete Action Properties under Data Retrieval Options - see section below
- Delete All: deletes all data from the selected table
- Delete: allows only records satisfying the specified filter criteria to be deleted
- Choose to Allow Audited Table to display tables with Audit Manual Changes enabled in the Table drop down
- By default, tables with Audit Manual Changes enabled are not shown in the Table drop down list
- Choose the Table from the drop down where the records will be deleted
- Or click the table icon to display tables in the Repository
- 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 Bulk Delete action, the Data Retrieval Options section shows in the Properties. This filter must be set for the Bulk Delete action to run.
- Choose a Data Range from:
- Latest: selects data from the latest recordsets
- All: selects data from all recordsets (default)
- Set the Filter Criteria to specify which records will be selected for deletion. See Filter → Filter Details
- 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
Where the Type is set to Delete on the Bulk Delete 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 Tuning → Delete Batch Size, is used as the default. The System Configuration value can be overridden with this batch size. Specify Delete Batch Size
Worked Example
Here's a worked example using the Company Data (available from the Learning Centre).
In this example, we are using:
- A 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
- Open the Company Rejected Companies screen
- Create an Actionflow on the Delete All button
- Name:
BulkDeleteRejectedCompanies
- Name:
- Configure the input connection point to On Click
- Create a View to the Companies data to output the CompanyID of rejected companies only
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. Use a lookup to pass a large block of data (an array) rather than one record at a time.
Bulk Delete Action Setup
- Create three Bulk Delete Actions for deleting from the three tables: Companies, Orders and OrderLines
- Map the associated ID attribute into the relevant Bulk Delete node
- Set up filters on each node in the Data Retrieval Options section to ensure only records associated with a rejected company are deleted
Testing
- Return to the Company Rejected Companies screen
- Press the Bulk Delete button
- Refresh the data in each grid to see the results
- Review the Orders and Order Lines data to check there are no orders or order lines with a blank company