filesoft.Discuss a project
← Practical FileMaker guides

PRACTICAL FILEMAKER GUIDES

Archive FileMaker records while preserving related history

Keep stable IDs and historical totals while removing archived projects from new-work choices, then verify a controlled restore.

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.

ProjectIDNameArchivedRelated minutes
P01Website045 + 75 = 120
P02Research030

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.

Download the fixture and expected states ↓

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.

ViewExpected after archiving P01
Active project listResearch only
New-entry pickerResearch eligible; Website excluded
Existing Website entriesStill linked to Website
All-history report3 entries; 150 minutes
Explicit active-project report1 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.