Centurio System & Module Documentation
🏛️ Platform Architecture 🔑 Login
All Modules / core_platform / Qualität & CAPA
📘

Qualität & CAPA

quality core_platform 🛡️ RLS Protected

Qualität & CAPA — aus Code abgeleitete Prozess- und API-Dokumentation.

Fachliche Bestimmung: Qualität & CAPA — aus Code abgeleitete Prozess- und API-Dokumentation.

⚡ Workflows & Lifecycles

Dieses Modul folgt dem standardisierten transaktionalen CRUD- und Event-Lifecycle.

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

Registrierte Fachoperationen und System-Capabilities dieses Moduls zur Steuerung von Workflows, Kaskaden und KI-Agenten.

Gesamt: 9 engine: 9
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
CAPA-Maßnahme anlegen capability:quality.action.create
Op: quality.action.create
Intent: plan_quality_action
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.action.created
Qualitätsfall anlegen capability:quality.case.create
Op: quality.case.create
Intent: report_quality_issue
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.case.created
Reklamation in QMS übernehmen capability:quality.case.from_claim
Op: quality.case.from_claim
Intent: link_claim_to_quality_case
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.case.created_from_claim
Qualitätsfall weiterbearbeiten capability:quality.case.transition
Op: quality.case.transition
Intent: advance_quality_case
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • quality.case.status_changed
Qualitätsprüfung abschließen capability:quality.inspection.complete
Op: quality.inspection.complete
Intent: execute_quality_inspection
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.inspection.completed
  • quality.case.created_on_failure
Qualitätsprüfung starten capability:quality.inspection.start
Op: quality.inspection.start
Intent: execute_quality_inspection
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.inspection.started
Prüfplan anlegen capability:quality.plan.create
Op: quality.plan.create
Intent: manage_quality_plan
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • quality.plan.created
Prüfplanversion freigeben capability:quality.plan.publish
Op: quality.plan.publish
Intent: manage_quality_plan
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • quality.plan.revision_activated
Prüfplanversion entwerfen capability:quality.plan.revision.create
Op: quality.plan.revision.create
Intent: manage_quality_plan
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: metadata
  • quality.plan.revision_created

🧠 Fachprozess-Erzählung & Dual Knowledge Architektur

Synthese aus der ideologischen Blaupause (Meta-Fachlogik / Soll), der faktischen System-Implementierung (System-Fachlogik / Ist) und No-Code Customizing für KI-Consultants.

Dual Knowledge Layer
📖

Der durchgängige Businessprozess im Detail (End-to-End Fließtext-Erzählung)

Qualität & CAPA — aus Code abgeleitete Prozess- und API-Dokumentation.

🏛️

Meta-Fachlogik: Ideologische Blaupause, Soll-Weltbild & Normen

Die Konfiguration benennt Prüfpunkte und Toleranzen. Die Auswertung bleibt für boolesche, numerische und Auswahlergebnisse deterministisch. Freigaben und rechtliche bzw. sicherheitsrelevante Dispositionen bleiben berechtigten Personen vorbehalten; KI darf Evidenz ordnen und Fälle vorschlagen, aber keine Prüfung erfinden.

Normbezug für quality

Prüfkatalog Standards-Registry v2026.10.1. Dieser Abschnitt ordnet Prüfreferenzen zu und stellt nicht fest, dass das Modul eine Norm einhält; keine Kataloganforderung ist als PASS bewertet.

Geführte Prüfreferenzen:

  • iso-9001-2026, ISO 9001:2026 Quality management systems — Requirements, Ausgabe ISO 9001:2026 (6. Ausgabe, 2026-09-16). Art: normative. Volltext liegt nicht vor. Keine Klauselprüfung. Keine modulspezifische Kataloganforderung. Die Zuordnung bleibt eine Prüfreferenz.
  • iso-9001-2015, ISO 9001:2015 Quality management systems — Requirements (inkl. Amd 1:2024), Ausgabe ISO 9001:2015 + Amd 1:2024. Art: normative. Volltext liegt nicht vor. Keine Klauselprüfung. Keine modulspezifische Kataloganforderung. Die Zuordnung bleibt eine Prüfreferenz.

Im Auditauftrag zusätzlich genannt und nicht im Prüfkatalog v2026.10.1: ISO 19011, ISO 10005. Dafür gibt es hier keine Klausel und keine Aussage, dass eine Vorgabe eingehalten wird.

Plattformweite Katalogwerke mit Geltungsbereich all (unter anderem WCAG 2.2, EN 301 549 V4.1.1, ISO 9241-110:2020, ISO 9241-210:2019, ISO/IEC 25010:2023, ISO 9001:2026, ISO/IEC 27001:2022, APQC PCF 8.0, DSGVO, EU AI Act) umfassen dieses Modul mit. Wo der Volltext fehlt, bleibt der Zugang ohne Quelle, lizenzpflichtig oder nur als öffentliche Zusammenfassung gekennzeichnet. Auch diese Nennung weist keine eingehaltene Vorgabe nach.

⚙️

Systemische Fachlogik: Faktische Umsetzung in Centurio ERP & Capabilities

quality_plans und quality_plan_revisions bilden versionierte Kontrollpläne; quality_inspections speichern Ergebnisse mit gepinnter Revision. SemanticPack definiert Felder, Beziehungen, Regeln, Operationen, Intent, Einstiegspunkte und den Workflow quality_inspection_lifecycle. CapabilityService führt die typisierten Operationen mit Modulrechten aus. Fertigungs- und Fieldservice-Einstiege erzeugen Prüfläufe idempotent; Assembly- und Workorder-Abschluss prüfen alle anwendbaren Pflichtprüfungen. QMS schreibt AuditEvents und erzeugt bei Misserfolg QualityCase/CAPA.

🤖

KI-Consultant Leitfaden: Customizing- & No-Code-Konzept (Soll-Ist-Synthese)

AI Solution Architect Blueprint

Beim Customizing von Workflows und No-Code-Regeln muss stets die Meta-Fachlogik mit der System-Fachlogik verknüpft werden. Benutzerdefinierte Canvas DAGs nutzen registrierte Capabilities als atomare Bausteine und sichern geschäftskritische Mutationen über Genehmigungsschranken ab.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

📥 Eingänge & Trigger (Inputs)
  • Prüfplanversion
  • Produkt und Charge
  • Quellvorgang
  • Messwerte, Auswahlwerte und Belege
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Prüfnachweis
  • Prüfergebnis
  • verknüpfter Qualitätsfall
  • CAPA und Auditspur
⚡ Kaskaden & Folgeprozesse (Cascades)
  • Fehlprüfung → Qualitätsfall → Eindämmung → Ursachenanalyse → Korrektur/Vorbeugung → Wirksamkeitsprüfung
  • Wareneingang mit offener Prüfung → Sperrlager → dokumentierte Freigabe oder Ausschussentscheidung
  • Fertigungsstart → Prüfungen pro betroffenem Ausgabeprodukt → Fertigmeldung erst nach bestandenen Pflichtprüfungen
  • Abgeschlossener Servicebericht → zugehörige Pflichtprüfungen → Auftragsabschluss erst nach bestandenem Prüfnachweis
🛡️ Nebenprozesse & Resilienz

Ausnahmebehandlung, Protokollierung im Revisionsjournal, Vier-Augen-Freigabe vor irreversiblen Mutationen.

🗄️ Data Models & Fields

QualityActions quality_actions RLS Aktiv
13 Fields / Columns

Tabelle quality_actions

Feldname Data Type Required Schlüssel Functional Meaning
case_id UUID Ja * FK ➔ quality_cases.id Feld case_id
action_type VARCHAR(24) Ja * - Feld action_type
description TEXT Ja * - Feld description
assigned_user_id UUID Nein FK ➔ organization_users.id Feld assigned_user_id
due_date DATE Nein - Feld due_date
completed_at DATETIME Nein - Feld completed_at
completion_note TEXT Nein - Feld completion_note
evidence JSONB Ja * - Feld evidence
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
QualityCases quality_cases RLS Aktiv
29 Fields / Columns

Tabelle quality_cases

Feldname Data Type Required Schlüssel Functional Meaning
case_number VARCHAR(64) Ja * - Feld case_number
title VARCHAR(255) Ja * - Feld title
description TEXT Nein - Feld description
status VARCHAR(24) Ja * - Feld status
severity VARCHAR(16) Ja * - Feld severity
category VARCHAR(32) Ja * - Feld category
source_module VARCHAR(48) Nein - Feld source_module
source_entity_type VARCHAR(64) Nein - Feld source_entity_type
source_entity_id UUID Nein - Feld source_entity_id
product_id UUID Nein FK ➔ products.id Feld product_id
supplier_id UUID Nein FK ➔ suppliers.id Feld supplier_id
asset_id UUID Nein FK ➔ assets.id Feld asset_id
stock_lot_id UUID Nein FK ➔ stock_lots.id Feld stock_lot_id
owner_user_id UUID Nein FK ➔ organization_users.id Feld owner_user_id
due_date DATE Nein - Feld due_date
closed_at DATETIME Nein - Feld closed_at
root_cause TEXT Nein - Feld root_cause
containment TEXT Nein - Feld containment
verification TEXT Nein - Feld verification
tags JSONB Ja * - Feld tags
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
QualityDispositions quality_dispositions RLS Aktiv
19 Fields / Columns

Tabelle quality_dispositions

Feldname Data Type Required Schlüssel Functional Meaning
goods_receipt_item_id UUID Ja * FK ➔ goods_receipt_items.id Feld goods_receipt_item_id
decision VARCHAR(12) Ja * - Feld decision
quantity NUMERIC(14, 4) Ja * - Feld quantity
inspection_ids JSONB Ja * - Feld inspection_ids
tracking_entries JSONB Ja * - Feld tracking_entries
stock_movement_id UUID Ja * FK ➔ stock_movements.id Feld stock_movement_id
target_location_id UUID Ja * FK ➔ locations.id Feld target_location_id
idempotency_key VARCHAR(128) Ja * - Feld idempotency_key
decided_by UUID Nein FK ➔ users.id Feld decided_by
notes TEXT Nein - Feld notes
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
QualityInspections quality_inspections RLS Aktiv
22 Fields / Columns

Tabelle quality_inspections

Feldname Data Type Required Schlüssel Functional Meaning
inspection_number VARCHAR(64) Ja * - Feld inspection_number
plan_revision_id UUID Ja * FK ➔ quality_plan_revisions.id Feld plan_revision_id
source_module VARCHAR(48) Ja * - Feld source_module
source_entity_type VARCHAR(64) Ja * - Feld source_entity_type
source_entity_id UUID Ja * - Feld source_entity_id
product_id UUID Nein FK ➔ products.id Feld product_id
status VARCHAR(16) Ja * - Feld status
outcome VARCHAR(8) Nein - Feld outcome
results JSONB Ja * - Feld results
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
inspected_by UUID Nein FK ➔ users.id Feld inspected_by
completed_at DATETIME Nein - Feld completed_at
quality_case_id UUID Nein FK ➔ quality_cases.id Feld quality_case_id
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ quality_plan_revisions.tenant_id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
QualityPlanRevisions quality_plan_revisions RLS Aktiv
15 Fields / Columns

Tabelle quality_plan_revisions

Feldname Data Type Required Schlüssel Functional Meaning
plan_id UUID Ja * FK ➔ quality_plans.id Feld plan_id
revision INTEGER Ja * - Feld revision
status VARCHAR(16) Ja * - Feld status
steps JSONB Ja * - Feld steps
created_by UUID Nein FK ➔ users.id Feld created_by
activated_by UUID Nein FK ➔ users.id Feld activated_by
activated_at DATETIME Nein - Feld activated_at
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
QualityPlans quality_plans RLS Aktiv
15 Fields / Columns

Tabelle quality_plans

Feldname Data Type Required Schlüssel Functional Meaning
code VARCHAR(64) Ja * - Feld code
name VARCHAR(255) Ja * - Feld name
process_kind VARCHAR(32) Ja * - Feld process_kind
product_id UUID Nein FK ➔ products.id Feld product_id
mandatory BOOLEAN Ja * - Feld mandatory
active BOOLEAN Ja * - Feld active
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

🔌 Entry Points (UI & APIs)

Art Method Endpoint / Path Titel & Zweck Required Role
⚡ REST API GET /api/v1/quality/cases
list_cases
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /api/v1/quality/cases/{case_id}
get_case
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /api/v1/quality/cases/{case_id}/actions
list_actions
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /api/v1/quality/inspections
list_inspections
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /api/v1/quality/inspections/{inspection_id}
get_inspection
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /api/v1/quality/plans
list_plans
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /quality
quality_cases_page
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /quality/inspections
quality_inspections_page
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /quality/inspections/{inspection_id}
quality_inspection_detail
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /quality/plans
quality_plans_page
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API GET /quality/{case_id}
quality_case_detail
Semantic binding: inventory_only; mutation=False
quality
⚡ REST API PATCH /api/v1/quality/cases/{case_id}/analysis
update_analysis
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/cases
create_case
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/cases/from-claim/{claim_id}
create_case_from_claim
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/cases/{case_id}/actions
add_action
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/cases/{case_id}/actions/{action_id}/complete
complete_action
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/cases/{case_id}/status
change_status
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/inspections/start
start_inspection
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/inspections/{inspection_id}/complete
complete_inspection
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/plan-revisions/{revision_id}/activate
activate_plan_revision
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/plans
create_plan
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /api/v1/quality/plans/{plan_id}/revisions
create_plan_revision
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/cases
quality_case_create
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/inspections/start
quality_inspection_start
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/inspections/{inspection_id}/complete
quality_inspection_complete
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/plan-revisions/{revision_id}/activate
quality_plan_activate
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/plan-revisions/{revision_id}/steps
quality_plan_add_step
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/plans
quality_plan_create
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/{case_id}/actions
quality_case_action
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/{case_id}/actions/{action_id}/complete
quality_action_complete
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/{case_id}/analysis
quality_case_analysis
Semantic binding: operator_surface; mutation=True
quality
⚡ REST API POST /quality/{case_id}/status
quality_case_status
Semantic binding: operator_surface; mutation=True
quality

🛡️ Regulatory & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • GoBD Nachvollziehbarkeit
  • Mandanten-Isolation (PostgreSQL RLS)