1. Decide what archive means
Archiving a project should not make recorded work disappear. In this practice design, archived means “unavailable for new time entries.” Existing entries, links and all-history totals remain.
This is a generic learning pattern in a separate practice file, not a claim that every Filesoft product archives identically. Define which lists hide archived projects, which selectors exclude them, which reports include their history and who may restore them.
A hidden row is a display decision, not an access permission. Keep this exercise separate from any policy about deleting sensitive records.
2. Create history with known totals
Use Projects with ProjectID and Name (Text) and Archived (Number, 0 or 1). Use TimeEntries with EntryID and ProjectID (Text) and Minutes (Number). Give IDs unique, nonblank values and link history by ProjectID only.
| ProjectID | Name | Archived | Related minutes |
|---|---|---|---|
| P01 | Website | 0 | 45 + 75 = 120 |
| P02 | Research | 0 | 30 |
The three entries total 150 minutes. Put a read-only ID beside the project name in the practice history view to distinguish identity from the display label.
3. Use separate selection and history contexts
Keep the historical relationship unfiltered: TimeEntries::ProjectID matches Projects::ProjectID even after archiving. Build a separate relationship for eligible new-entry choices.
For this exercise, add a global Number field TimeEntries::gEligibleArchived and set it to 0. Create a Projects occurrence called EligibleProjects. Relate TimeEntries::gEligibleArchived = EligibleProjects::Archived. Define a two-field value list from EligibleProjects::ProjectID and Name, including only related values starting from the TimeEntries occurrence used by the entry layout.
Initialize the global when starting the practice session. Every active project needs an explicit Archived value of 0; a blank is not the agreed active state. The historical occurrence still uses only ProjectID.
Store the ID while showing the name, following the two-field picker guide. Recheck eligibility before committing a new assignment. The filtered picker alone cannot stop a script or pasted value assigning an archived project.
4. Archive one project and inspect the results
Set P01’s Archived flag to 1 and commit. Do not delete P01, clear its ID or change the children’s ProjectID values.
| View | Expected after archiving P01 |
|---|---|
| Active project list | Research only |
| New-entry picker | Research eligible; Website excluded |
| Existing Website entries | Still linked to Website |
| All-history report | 3 entries; 150 minutes |
| Explicit active-project report | 1 entry; 30 minutes |
The reports answer different questions. Show their scopes in their titles. If an old Website entry goes blank, check whether its project label accidentally uses EligibleProjects instead of the history relationship.
Inspect both Website entries after changing records. A correct-looking first row is not enough to establish that all history is preserved.
5. Restore the same identity
Set P01’s flag back to 0 and commit. It should reappear in the picker with its original ID. Both entries remain linked, and the all-history total stays 150 minutes.
Creating a new project named Website is not a restore: it creates another identity and splits the history. Test duplicate display names separately so people can tell their choices apart.
For a real app, decide whether archive and restore need a reason, permission and dated event. A boolean flag records current state, not a complete change history.
6. Check persistence and assignment rules
Download the archive/restore checklist ↓
- Archive and restore P01 twice: its ID, two children and historical minutes remain unchanged.
- Try assigning new work while P01 is archived: the normal save path should reject it.
- Open an existing entry: its historical project name and key remain readable.
- Compare active-only and all-history reports with their scopes visible.
- Reopen the file and repeat, checking global initialization and saved state.
Before adapting an app, inspect its pickers, scripts, reports and relationships using the pre-change review. A portal filter is not a complete archive feature.
Finished result: archived projects leave new-work choices while their history remains explainable and restorable. This does not replace backups, security or a legal retention policy. Permanent deletion is outside the exercise.
References
Use a practice copy and verify the result in your FileMaker version. Product requirements and platform support remain specific to each product.
Filesoft counts page loads and selected resource and practice-download clicks in aggregate. These aggregate counts contain no practice data or visitor identifiers. Browser privacy signals and the site’s analytics-off preference disable these counts.