A system, which allows a deleted record to be retrieved back or to be permanently removed from the system. Record deletion is implemented at system level (there is no business logic) and it provides the opportunity to call standard methods of the business object only – thus the deletion option can either be removed or a business logic can be added to the action.
Deleted records are kept in a separate database, mirroring the main one, having the same name plus Recycle Bin at the end. The database is synchronized with the main one upon generation.
Due to the existing relations between objects, the deletion of a record may lead to the deletion of other records (which may reach thousands in total). The dialog box used to confirm the deletion of a row is a standard one and provides an interface which allows the user to see exactly what he is about to delete in addition to the record selected (for example if a Client is removed his orders will also be deleted). Only the objects, which would remain meaningless if the record is deleted, are removed (orders with no client would have no meaning for example). Also, if a record of an object is a tree, deleting it will remove its sublevels as well.
There are two levels of deleted records management – personal and common records.