Although FF&EZ includes the Ctrl-Z function that "undoes" changes to text, it does not have a general "undo" function that reverses the last change after saving data. This is primarily due to the complicated relationships between the data tables that involve both "referential integrity" (the validity of the database itself) and, for purchasing, the ability to audit changes when legal documents are involved. Nevertheless, the Design side of the system includes a number of "undelete" functions that can restore almost any element of a design project that has been deleted. However, the rules of data integrity affect how automatic this may be. If you are immediately undeleting something that was deleted by mistake, none of the complications described below will apply. The possible complications become more likely after a lot of subsequent project activity has deleted other related parts of the project. The specifications (and entire projects) have the least restrictions on what can be undeleted on that screen. There is more information about the logic for this at the end of this section. However, there are three simple rules that keeps undeleting simple:
In all cases, the Undelete command is called by right-clicking on the Delete command of the parent you want to restore. That is, if you want to restore a room, display the Room List screen and right-click on its Delete command. You will see a list of rooms you can restore (rooms that were deleted using that screen's Delete command). The following sections contain full explanations for how to restore specific types of data. We list the basic limitations or prerequisites for restoring them, but the separate sections have more details:
The undelete function will not display any items that cannot be undeleted, so the above simply explains why something may not appear on the list of eligible items for the screen you are using. For instance, a room deleted by the deletion of an area will not appear on the Rooms List screen's list of eligible deleted rooms. The room would be restored automatically when the area was restored. Why undeleting gets more complex the longer you wait Databases like FF&EZ use a hidden "key" (a unique numeric ID) to tie the pieces of the data together. The related parts of a project database (areas, rooms, object usages, etc.) are connected to each other by these keys, not by the visible IDs. This is what allows you to change an ID any time you need to. For instance, the "key" that points to a vendor never changes unless you select a different vendor. If you simply change the Vendor ID on the vendor screen, all the specifications that pointed to it are updated with the new spelling. Although restoring an entire project has been available since version 4.1.011, the restoring of areas, rooms or objects requires a deliberate approach, which was implemented as of version 4.3.030: When one of these items is deleted, FF&EZ creates a "deletion set" that identifies all the related content that existed at the time of the deletion. Only these records will be restored when the "parent" item is undeleted.
When data integrity issues might be involved, the undelete utility will give you information about this. Two types of undelete operations are quite simple (we only need to verify the existence of the original vendors):
|