Skip to content

Service Reports — models

Responsibilities

What is modeled here.

Main models

ModelName

  • Fields
  • Constraints
  • Relationships
flowchart LR
  %% ============================================================
  %% CONTEXT (projects)
  %% ============================================================
  PROJECT["Project\n(projects)"]
  SO["Service Order\n(projects)"]
  IB["Install Base Item\n(projects)"]
  IBU["Install Base Unit Item\n(projects)"]
  UT["Unit Type\n(projects)"]

  PROJECT --> SO
  PROJECT --> IB
  PROJECT --> IBU
  IBU --> UT

  %% ============================================================
  %% DESIGN-TIME (templates in servicereports)
  %% ============================================================
  RT["Report Template\n(servicereports)"]
  TB["Template Block\n(servicereports)"]
  TC["Template Checkpoint\n(servicereports)"]

  RT --> TB
  TB --> TC

  %% Instruction links from templates to manuals content
  IL["Instruction Link\n(projects)"]
  MAN["Manual\n(manuals)"]
  CH["Chapter\n(manuals)"]
  SG["Step Group\n(manuals)"]

  TB --> IL
  TC --> IL
  IL --> MAN
  IL --> CH
  IL --> SG

  %% Template targeting hints
  RT --> UT

  %% Template spare parts linking (template-level)
  TSPL["Template Spare Parts Link\n(servicereports)"]
  SPL["Spare Parts List\n(projects)"]
  RT --> TSPL
  TB --> TSPL
  TSPL --> SPL

  %% ============================================================
  %% RUN-TIME (execution in servicereports)
  %% ============================================================
  SR["Service Report\n(servicereports)"]
  BI["Report Block Instance\n(servicereports)"]
  CI["Report Checkpoint Instance\n(servicereports)"]
  ABN["Abnormality\n(servicereports)"]

  SO --> SR
  IB --> SR
  RT --> SR

  SR --> BI
  BI --> CI
  BI --> ABN
  CI --> ABN

  %% Block instances can carry unit identifiers (tag/serial/unit_type fields)
  IBU --> BI
  UT --> BI

  %% ============================================================
  %% RAMS (templates + live instances)
  %% ============================================================
  RAMST["RAMS Template\n(servicereports)"]
  MAP["TemplateBlock RAMS Mapping\n(servicereports)"]

  RT --> RAMST
  TB --> MAP
  MAP --> RAMST

  RAMSR["RAMS Report\n(servicereports)"]
  HAZ["RAMS Hazard Instance\n(servicereports)"]
  CTRL["RAMS Control Instance\n(servicereports)"]
  RPPE["RAMS PPE Instance\n(servicereports)"]
  STEP["RAMS Step Instance\n(servicereports)"]

  SR --> RAMSR
  RAMSR --> HAZ
  HAZ --> CTRL
  HAZ --> RPPE
  RAMSR --> STEP

  %% ============================================================
  %% INVENTORY (inventory) + spare part usage (servicereports)
  %% ============================================================
  INV["Inventory\n(inventory)"]
  PPEI["PPE\n(inventory)"]
  PART["Part\n(inventory)"]
  STOCK["Stock Item\n(inventory)"]

  INV --> PPEI
  INV --> PART
  INV --> STOCK

  %% Template spare list can imply inventory usage
  SPL --> INV

  %% Run-time spare part lines
  SPI["Spare Part Item\n(servicereports)"]

  SR --> SPI
  BI --> SPI
  SPI --> PART
  SPI --> STOCK

  %% RAMS PPE templates can also map to inventory PPE
  RPPE --> PPEI

  %% ============================================================
  %% MEDIA + ATTACHMENTS (servicereports)
  %% ============================================================
  MEDIA["Report Media\n(servicereports)"]
  ATT["Report Attachment\n(servicereports)"]

  SR --> MEDIA
  BI --> MEDIA
  CI --> MEDIA

  SR --> ATT
  BI --> ATT

  %% ============================================================
  %% PLANNING (planning) + timesheets reuse (timesheets)
  %% ============================================================
  PTE["Planned Time Entry\n(planning)"]
  IND["Indirect Code\n(timesheets)"]

  ENG["Engineer/User\n(accounts)"]

  ENG --> PTE
  SR --> PTE
  BI --> PTE
  IND --> PTE

  %% Timesheets reuse service orders and connect to reports (you already have M2M)
  TS["Timesheet Entry\n(timesheets)"]
  EXTTS["External Timesheet\n(timesheets)"]

  SO --> TS
  TS --> EXTTS
  EXTTS --> SR