Cascade Delete Application Nic Campbell 30 November 2023

Cascade Delete Application

The Cascade Delete App, available on the OutSystems Forge, is a powerful tool designed to simplify the deletion of data from one or more OutSystems database entities. Its primary purpose is to facilitate the purging of testing data generated during the development and testing phases of an application. This application addresses the challenges and complexities associated with reliably purging databases.

Why purge your data during development?


During application development, data accumulated from testing can result in inaccuracies, outdated information, duplicates, and inconsistencies – commonly referred to as “bad data”. This can create the appearance of bugs when it is just old data reflecting old bugs and the past incompleteness of the app. These false bugs can waste valuable time. The Cascade Delete App aims to tackle this issue by providing a method to easily purge this data. Purging data ensures that only valid and reliable information is used for testing purposes.
 

For a deeper understanding of data purging and common strategies, consult the OutSystems documentation. 

The solution: Simplifying data deletion

Traditionally, developers may resort to manual methods, such as creating delete actions or writing SQL queries. This approach works when dealing with a simple database structure. However, as databases evolve in complexity over time – undergoing refactoring, adding new entities, introducing foreign key constraints – the maintenance of these manual methods becomes a significant challenge. The Cascade Delete App addresses this by allowing the application itself to manage, track, and update the delete logic. 

Cascade Delete Application approach
 

The key feature of the Cascade Delete App is its ability to create “Delete-Groups.” These groups comprise of selected entities to be deleted by the user, and automatically include all dependent entities based on their foreign key references. The app utilizes the OutSystems system entities to determine foreign key relationships, eliminating the need for developers to manually specify dependent entities and their deletion order. This “cascading” effect simplifies the entire process, saving substantial setup time compared to traditional approaches.

Figure 1: Home screen dashboard showing sample data

Figure 2: Delete-Group details screen showing sample data for one original entity selected (Agents) and one dependent entity (AgencyUsers) pulled in automatically due to a foreign key constraint referencing the Agents entity Id

The Delete-Groups are not static; they can have entities added or removed. A key feature is that they dynamically update each time they are opened to incorporate any newly created or deleted dependent entities. This auto-updating functionality ensures that the purge logic remains accurate and up to date, streamlining maintenance efforts.

Kevin du Pont, Senior OutSystems Developer at Systems iO shares his experience with the app:

The Cascade Delete App has already made such a difference for us at Systems iO. Being able to purge our test data quickly and efficiently with zero maintenance has reduced the number of false bugs logged and freed up our developers’ time. It has made a very laborious task effortless.

Key Features of the Cascade Delete Application

• Create Unlimited Delete-Groups:
Effortlessly set up complex database purges in minutes.

• Automatic Maintenance of Delete-Groups: Dynamically update dependencies to avoid foreign key constraint errors.
Custom Scheduling: Reuse Delete-Groups on demand or create custom schedules for purges. Schedule can be set to run One-off, Daily, Weekly, Monthly or a combination of these.

Figure 3: Delete-Group details screen Schedule tab allowing the user to set up various custom delete schedules

• Ease of Entity Selection: Easily add or remove entities from across the environment. Copy existing Delete-Groups to speed up the process for similar purges. 

• Timeout-Free Purging: Delete substantial data without worrying about timeouts, thanks to self-awakening timers.
Auditing and History Tracking: Track all interactions, deletions, and their details for comprehensive auditing.

Figure 4: Delete-Group details screen Audit History tab showing the history of deletes with details of each delete available

User-Friendly Interface: Avoid unexpected data deletion with a friendly UI displaying all entities to be deleted.
Central Console: A centralized platform for all data purging needs, including audit and history tracking.
Manual Kill Switch: Accessible via the service centre to stop and roll back a delete if needed.
Multi-User Support: Allows multiple users to request deletes simultaneously, queuing them automatically.
Live Progress Tracking: Track the real-time status of delete progress, showing which entities have been deleted, which have failed, and why.

How to access this application
 

The Cascade Delete App is freely available on the OutSystems Forge. By downloading and installing it in your environment, it seamlessly integrates with your entities and data, ready for immediate use. Comprehensive documentation and guides are available on the Forge, and user reviews and feedback are welcomed.

Build IT Now

Want to learn more about what we can do for your business? And how quickly? Go to the Systems iO services page or

If you would like to receive our newsletter direct to your inbox, simply sign up at the bottom of this page.