- Documentation
- /
- Erpam
- /
- 02 — System Diagram
02 — System Diagram
🔍 Open the Interactive Diagram Viewer — pan, mouse-wheel zoom, fit-to-screen, full-screen, per-area tabs, the full ERD, and a focus mode that draws one model and its neighbours at a chosen depth. ERPProject is a hub table, so its links can be hidden to declutter the overview.
Regenerate the viewer after any DSL, menu_config.yaml or diagram_config.yaml change:
python scripts/build_diagram_viewer.py erpam.
The assurance spine
flowchart TD
Entity[Entity]
Proj[ERPProject]
Leg[LegacySystem]
BP[BusinessProcess]
Req[Requirement]
Dsn[SolutionDesign]
DO[DataObject]
MR[MigrationRule]
MB[MigrationBatch]
Rec[Reconciliation]
IF[Interface]
TCy[TestCycle]
TCa[TestCase]
Def[Defect]
RA[RemediationAction]
ER[EvidenceRequirement]
EV[EvidenceSubmission]
RdA[ReadinessArea]
GLD[GoLiveDecision]
CR[ClosureRequest]
CA[ClosureApproval]
SH[StatusHistory]
Entity --> Proj
Proj --> Leg
Proj --> BP
Proj --> Req
BP --> Req
Req --> Dsn
Proj --> DO
DO --> MR
DO --> MB
MB --> Rec
Proj --> IF
Proj --> TCy
TCy --> TCa
Req --> TCa
TCa --> Def
Def --> RA
Req --> ER
Def --> ER
ER --> EV
Proj --> RdA
Proj --> GLD
Proj --> CR
CR --> CA
Proj --> SH
How to read it
ERPProjectis the hub. Almost everything hangs off it; the viewer lets you hide those hub edges to see local structure (migration, testing, readiness).- Migration is a chain: a Data Object has Migration Rules and Batches, and each batch carries a Reconciliation that must pass its tolerance.
- Defects trace to tests. A Test Case can raise a Defect; a
go_live_blockingdefect must be resolved (via Remediation Actions) and evidenced before go-live. - Readiness gates the decision. Readiness Areas are assessed; the authorised
Go-Live Decision can be
APPROVED,CONDITIONAL,DEFERREDorREJECTED. - Closure is two-part: a Closure Request and an independent Closure Approval
(which may itself be
DEFERREDuntil conditions are met). StatusHistoryis the audit trail of the project's state transitions.
Backing data (denormalised for display)
Each foreign key carries a denormalised <fk>_name display column so lists read in plain
language (e.g. a Reconciliation shows its batch code; a Defect shows its test-case
title) without a join at read time — the house style for these apps.