Centurio System & Module Documentation
🏛️ Platform Architecture 🔑 Login
All Modules / organization_compliance / Mitarbeiter & Personal
👤

Mitarbeiter & Personal

employees organization_compliance 🛡️ RLS Protected

Stammdaten, Arbeitsverträge (NachwG), Zeiterfassung mit ArbZG-Hinweisen, Abwesenheiten und eAU/EFZG.

Fachliche Bestimmung: Operative Personalabteilung: EmploymentContract, TimeEntry (ArbZG-Pausenregeln), Absence (Urlaub/Krank inkl. § 9 BUrlG-Rückbuchung), Qualifikationen und Notfallkontakte. Self-Service unter /zeiterfassung und /abwesenheiten; Fremddaten über Module.EMPLOYEES.

⚡ Workflows & Lifecycles

Stempeln, Urlaub und Krankmeldung hr_time_and_absence

Self-Service-Zeiterfassung und Abwesenheitsanträge mit Manager-Freigabe.

1. CLOCK_IN
Einstempeln
POST /api/v1/hr/clock-in startet TimeEntry running.
Aktionen: arbzg_warnings
2. CLOCK_OUT
Ausstempeln
Abschluss mit Pausenhinweisen nach ArbZG.
Aktionen: time_summary
3. ABSENCE_REQUEST
Antrag
Urlaub/Sonderurlaub als requested.
Aktionen: vacation_balance
4. ABSENCE_APPROVE
Genehmigung
Manager approve/reject; Krank mit eAU-Status.
Aktionen: eau_status, efzg_exhausted

Benutzerbefehl: employee crud subagent plan:command_employee_crud_subagent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. employee_crud_subagent
employee_crud_subagent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "employee_crud_subagent", "condition_fact": null}
Aktionen: employee_crud_subagent

Benutzerbefehl: hr absence agent plan:command_hr_absence_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. hr_absence_agent
hr_absence_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "hr_absence_agent", "condition_fact": null}
Aktionen: hr_absence_agent

Benutzerbefehl: hr contract agent plan:command_hr_contract_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. hr_contract_agent
hr_contract_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "hr_contract_agent", "condition_fact": null}
Aktionen: hr_contract_agent

Benutzerbefehl: safety agent plan:command_safety_agent

Geprüfter Durable-Plan (durable_plan), Start: manual_command.

1. safety_agent
safety_agent
{"key": "execute_command", "label": "Befehl prüfen, ausführen oder zur Freigabe vorlegen", "adapter": "agent.execute", "agent": "safety_agent", "condition_fact": null}
Aktionen: safety_agent

⚙️ Fachprozesse & Capabilities (System-Fachlogik)

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

Gesamt: 52 manual_entry: 1 engine: 46 engine_step: 1 durable_plan: 4
Capability & Schlüssel Fachliche Bezeichnung Ausführung / Coverage Risikostufe & Freigabe Effekte & Kaskaden
Agent-Einstieg employee_crud_subagent agent_entry:employee_crud_subagent
Agent-Einstieg employee_crud_subagent
Quelle: code:module_agent_map
manual_entry
✓ Auto
Keine Seiteneffekte deklariert
Mitarbeiter anlegen capability:employee.create
Op: employee.create
Intent: create_employee
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • employee.created
Mitarbeiter deaktivieren capability:employee.deactivate
Op: employee.deactivate
Intent: deactivate_employee
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • employee.deactivated
Absence: cancel capability:hr.absence.cancel
Op: hr.absence.cancel
Objekt: absence
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • absence.cancel
Absence: decide capability:hr.absence.decide
Op: hr.absence.decide
Objekt: absence
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • absence.decide
Absence: request capability:hr.absence.request
Op: hr.absence.request
Objekt: absence
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • absence.request
Absence: set eau status capability:hr.absence.set_eau_status
Op: hr.absence.set_eau_status
Objekt: absence
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • absence.set_eau_status
Zugang provisionieren capability:hr.access.provision
Op: hr.access.provision
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.access.provision
Mitarbeitergespräch capability:hr.appraisal.create
Op: hr.appraisal.create
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.appraisal.create
Benefits einschreiben capability:hr.benefits.enroll
Op: hr.benefits.enroll
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.benefits.enroll
Zeugnis erzeugen capability:hr.certificate.issue
Op: hr.certificate.issue
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.certificate.issue
Compensation: record capability:hr.compensation.record
Op: hr.compensation.record
Objekt: compensation
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • compensation.record
Arbeitsvertrag aktivieren capability:hr.contract.activate
Op: hr.contract.activate
Intent: activate_contract
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • contract.activated
Arbeitsvertrag anlegen capability:hr.contract.create
Op: hr.contract.create
Intent: create_contract
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • contract.created
Arbeitsvertrag beenden capability:hr.contract.terminate
Op: hr.contract.terminate
Intent: terminate_employment_contract
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: external_effect
  • contract.terminated
Contract: update capability:hr.contract.update
Op: hr.contract.update
Objekt: contract
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • contract.update
Contract Template: generate document capability:hr.contract_template.generate_document
Op: hr.contract_template.generate_document
Objekt: contract_template
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • contract_template.generate_document
Emergency Contact: create capability:hr.emergency_contact.create
Op: hr.emergency_contact.create
Objekt: emergency_contact
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • emergency_contact.create
Emergency Contact: delete capability:hr.emergency_contact.delete
Op: hr.emergency_contact.delete
Objekt: emergency_contact
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • emergency_contact.delete
Lohnexport Abwesenheiten capability:hr.expense.payroll_export
Op: hr.expense.payroll_export
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.expense.payroll_export
Offboarding starten capability:hr.offboarding.checklist.start
Op: hr.offboarding.checklist.start
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.offboarding.checklist.start
Onboarding starten capability:hr.onboarding.checklist.start
Op: hr.onboarding.checklist.start
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.onboarding.checklist.start
Überstunden entscheiden capability:hr.overtime.decide
Op: hr.overtime.decide
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.overtime.decide
Überstunden beantragen capability:hr.overtime.request
Op: hr.overtime.request
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.overtime.request
Gehaltsabrechnung capability:hr.payslip.generate
Op: hr.payslip.generate
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.payslip.generate
Qualification: create capability:hr.qualification.create
Op: hr.qualification.create
Objekt: qualification
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • qualification.create
Qualification: delete capability:hr.qualification.delete
Op: hr.qualification.delete
Objekt: qualification
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • qualification.delete
Qualification: update capability:hr.qualification.update
Op: hr.qualification.update
Objekt: qualification
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • qualification.update
Schicht planen capability:hr.shift.plan
Op: hr.shift.plan
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.shift.plan
Schicht veröffentlichen capability:hr.shift.publish
Op: hr.shift.publish
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.shift.publish
Zeitbuchung freigeben capability:hr.time.approve
Op: hr.time.approve
Objekt: time_entry
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • time_entry.approved
Einstempeln capability:hr.time.clock_in
Op: hr.time.clock_in
Intent: record_time
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_entry.started
Ausstempeln capability:hr.time.clock_out
Op: hr.time.clock_out
Intent: record_time
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_entry.stopped
Zeitbuchung anlegen capability:hr.time.create_entry
Op: hr.time.create_entry
Objekt: time_entry
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_entry.created
Time Tracking: approve capability:hr.time_tracking.approve
Op: hr.time_tracking.approve
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.approve
Time Tracking: clock in capability:hr.time_tracking.clock_in
Op: hr.time_tracking.clock_in
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.clock_in
Time Tracking: clock out capability:hr.time_tracking.clock_out
Op: hr.time_tracking.clock_out
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.clock_out
Time Tracking: create entry capability:hr.time_tracking.create_entry
Op: hr.time_tracking.create_entry
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.create_entry
Time Tracking: delete capability:hr.time_tracking.delete
Op: hr.time_tracking.delete
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.delete
Time Tracking: update entry capability:hr.time_tracking.update_entry
Op: hr.time_tracking.update_entry
Objekt: time_tracking
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • time_tracking.update_entry
Schulung zuweisen capability:hr.training.assign
Op: hr.training.assign
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.training.assign
Schulung abschließen capability:hr.training.complete
Op: hr.training.complete
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • hr.training.complete
GBU aktivieren capability:risk_assessment.activate
Op: risk_assessment.activate
Intent: conduct_safety_instruction
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • risk_assessment.activated
Übung planen capability:safety.drill.schedule
Op: safety.drill.schedule
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • safety.drill.schedule
Unterweisung durchführen capability:safety.instruction.conduct
Op: safety.instruction.conduct
Intent: conduct_safety_instruction
Quelle: code:capability_registry
⚙️ Engine
🔒 Freigabe nötig Risiko: business_record
  • safety_instruction.conducted
Unterweisung planen capability:safety.instruction.schedule
Op: safety.instruction.schedule
Intent: conduct_safety_instruction
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • safety_instruction.planned
PSA zuweisen capability:safety.ppe.assign
Op: safety.ppe.assign
Objekt: employee
Quelle: code:capability_registry
⚙️ Engine
✓ Auto Risiko: business_record
  • safety.ppe.assign
Unterweisung durchführen gateway:safety_management
Op: safety.instruction.conduct
Unterweisung durchführen
Quelle: code:reviewed_gateway
⚙️ Engine
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: employee crud subagent plan:command_employee_crud_subagent
Benutzerbefehl: employee crud subagent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: hr absence agent plan:command_hr_absence_agent
Benutzerbefehl: hr absence agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: hr contract agent plan:command_hr_contract_agent
Benutzerbefehl: hr contract agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert
Benutzerbefehl: safety agent plan:command_safety_agent
Benutzerbefehl: safety agent
Quelle: code:reviewed_execution_plan
durable_plan
✓ Auto
Keine Seiteneffekte deklariert

🧠 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)

Der durchgängige Personal- und Recruitingprozess in der betrieblichen Praxis

Die Mitarbeitenden sind das wertvollste Gut jedes Unternehmens. Centurio ERP verbindet ein modernes Bewerbermanagement mit rechtssicherer Personalverwaltung und transparenter Zeiterfassung.

1. Stellenbedarf & Recruiting-Pipeline (Job Requisition & Ingestion)

Der Recruiting-Prozess startet bei personellen Engpässen:

  • Bedarfsanforderung: Ein Abteilungsleiter meldet eine neue Planstelle oder Nachbesetzung (cap:recruiting.job.create).
  • Veröffentlichung: Das System generiert die Stellenanzeige und publiziert sie auf der Unternehmenswebsite (publishing), in Jobbörsen oder über Social Media.
  • Bewerbungseingang: Eingehende Bewerbungen (per Webformular oder E-Mail an jobs@) werden über das Posteingangsmodul (inbox) erfasst. Die KI extrahiert Lebenslaufdaten (Skills, Berufserfahrung, Ausbildung, Kündigungsfrist) und legt die Bewerberakte an (cap:recruiting.candidate.create_from_inbox).
  • DSGVO-Bewerberdatenschutz: Der Bewerber erhält eine automatisierte Datenschutzerklärung mit Hinweis auf die gesetzliche Speicherfrist (6 Monate nach Abschluss des Verfahrens zur Abwehr von AGG-Klagen).

2. Bewerberauswahl, Vorstellungsgespräch & Zusage (Interview & Hiring)

  • Die Bewerber durchlaufen den visuellen Kanban-Funnel: Eingegangen ➔ Vorauswahl / Screening ➔ Erstes Interview ➔ Fachprüfung / Probearbeit ➔ Angebot ➔ Eingestellt (hired).
  • Vorstellungsgespräche: Einladungen und Termine werden mit dem Kalender (calendar) synchronisiert. Feedback-Bögen der Interviewer werden strukturiert erfasst.
  • Einstellungszusage: Bei positiver Entscheidung wird das Jobangebot erstellt. Nach Annahme konvertiert die Capability cap:recruiting.candidate.hire den Bewerber direkt in einen neuen Datensatz im Personalstamm (employees).

3. Digitale Personalakte & Onboarding

  • Personalstammdaten: Erfassung von Stammdaten, Steuer-ID, Sozialversicherungsnummer, Krankenkasse, IBAN und Notfallkontakten.
  • Vertragsdokumente: Der Arbeitsvertrag wird digital generiert, via DMS (documents) archiviert und vom Mitarbeiter gegengezeichnet.
  • Onboarding-Checkliste: Das System steuert automatische Aufgaben an die IT (Laptop, E-Mail-Konto einrichten), den Fuhrpark (Dienstwagen) und das Team (Einarbeitungsplan).

4. Arbeitszeiterfassung nach ArbZG & EuGH-Rechtsprechung

Centurio ERP erfüllt die gesetzliche Pflicht zur lückenlosen Arbeitszeiterfassung (BAG-Beschluss 2022 / EuGH):

  • Stempelung: Mitarbeiter buchen Arbeitsbeginn, Pausen und Arbeitsende über Browser, Mobile-App oder stationäre Terminals (cap:employees.time.clock_in, cap:employees.time.clock_out).
  • ArbZG-Wächter (Compliance Guard): Das System überwacht im Hintergrund die Schutzvorschriften des Arbeitszeitgesetzes:
    • Höchstarbeitszeit (§ 3 ArbZG): Warnung bei Überschreitung von 8 Stunden (max. 10 Stunden mit Ausgleich).
    • Pflichtpausen (§ 4 ArbZG): Automatischer Hinweis bei Arbeiten über 6 Stunden ohne 30-minütige Pause.
    • Ruhezeiten (§ 5 ArbZG): Mindestens 11 Stunden ununterbrochene Ruhezeit zwischen zwei Schichten.
  • Verstöße werden im HR-Audit-Dashboard für den Betriebsrat und die Personalleitung transparent gemacht.

5. Urlaubsverwaltung & Abwesenheitsworkflow (Leave Management)

  • Urlaubsanspruch: Das System berechnet den vertraglichen Urlaubsanspruch nach Bundesurlaubsgesetz (BUrlG) unter Berücksichtigung von Betriebszugehörigkeit und Resturlaub.
  • Antragsworkflow: Der Mitarbeiter beantragt Urlaub oder Sonderurlaub im Self-Service-Portal (cap:employees.leave.request).
  • Vertretungsregelung & Genehmigung: Der Vorgesetzte prüft die Teamabdeckung und genehmigt den Antrag mit einem Klick. Der Kalender blockiert den Zeitraum automatisch.
  • Krankmeldungen & eAU: Erfassung von Arbeitsunfähigkeiten mit elektronischer Abfrage der eAU bei den Krankenkassen.

6. Vorbereitung der Entgeltabrechnung & Offboarding

  • Am Monatsende aggregiert das Modul geleistete Arbeitsstunden, Überstundensalden, Urlaubs- und Krankheitstage sowie genehmigte Spesen (expenses).
  • Die Daten werden als konsolidierter Vorbereitungsbericht für das Lohnbüro oder die DATEV-Lohnabrechnung exportiert.
  • Offboarding: Bei Austritt steuert das System die Rückgabe von Firmeneigentum, die Erstellung des qualifizierten Arbeitszeugnisses und die DSGVO-konforme Löschung nach Ablauf der steuerlichen Aufbewahrungsfristen.
🏛️

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

Meta-Fachlogik: Die ideologische Blaupause & das normative Weltbild

Die Meta-Fachlogik des Personalwesens stützt sich auf das Arbeitszeitgesetz (ArbZG), das Bundesurlaubsgesetz (BUrlG), das Allgemeine Gleichbehandlungsgesetz (AGG), die DSGVO und Grundsätze der Arbeitssicherheit.

1. Arbeitszeitschutz & EuGH-Vorgaben

  • Objektive, verlässliche und zugängliche Zeiterfassung: Nach dem Grundsatzurteil des EuGH (C-55/18) und dem BAG-Beschluss vom 13.09.2022 (1 ABR 22/21) sind Arbeitgeber verpflichtet, Beginn, Dauer und Ende der täglichen Arbeitszeit verbindlich aufzuzeichnen.
  • Zwingende Ruhepausen (§ 4 ArbZG) & Ruhezeiten (§ 5 ArbZG): Dienen der Erhaltung der Gesundheit der Beschäftigten. Das Soll-Modell verbietet das Überschreiben gestempelter Pausenzeiten ohne sachliche Begründung.

2. Antidiskriminierung & AGG-Schutz (§§ 1–15 AGG)

  • Bewerberverfahren müssen frei von Benachteiligungen wegen Rasse, ethnischer Herkunft, Geschlecht, Religion, Behinderung, Alter oder sexueller Identität sein.
  • Beweissicherungsfrist: Abgelehnte Bewerbungsunterlagen müssen zur Abwehr von Entschädigungsansprüchen nach § 15 AGG genau sechs Monate aufbewahrt und anschließend datenschutzkonform gelöscht werden.

3. Invarianten des Soll-Modells

  1. Keine Arbeitszeiterfassung darf nachträglich ohne Protokollierung im Revisions-Audit verändert werden.
  2. Bewerberdaten abgelehnter Kandidaten sind nach Ablauf von sechs Monaten zwingend zu löschen/anonymisieren.
  3. Urlaubsanträge dürfen den verfügbaren Urlaubsanspruch des Mitarbeiters nicht unberechtigt überziehen.
  4. Gehalts- und Personaldaten unterliegen striktem Mandanten- und Rollenschutz (HR-Admin-Berechtigung).

Normbezug für employees

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:

  • eu-gdpr-2016-679, Regulation (EU) 2016/679 (General Data Protection Regulation, GDPR/DSGVO), Ausgabe Regulation (EU) 2016/679, anwendbar ab 2018-05-25. Art: regulatory. Öffentlicher Text. Die Nennung ist 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 30414, ISO 30409. 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

Systemische Fachlogik: Die faktische Umsetzung in Centurio ERP

Die System-Fachlogik dokumentiert die Realisierung in den Modulen employees, hr, recruiting und personal.

1. Datenmodelle & Semantische Schicht (ORM)

  • Employee: Personalstamm (Felder: id, tenant_id, employee_number, first_name, last_name, email, department_id, position, hire_date, weekly_hours, vacation_days_yearly, is_active).
  • TimeRecord: Arbeitszeitstempel (Felder: employee_id, clock_in, clock_out, break_duration_minutes, record_type [work, travel, home_office], is_violation_arbzg).
  • LeaveRequest: Urlaubs- und Abwesenheitsantrag (Felder: employee_id, leave_type [vacation, sick, parental, special], start_date, end_date, days_count, status [pending, approved, rejected]).
  • JobOpening: Stellenausschreibung (Felder: id, title, department, status [draft, published, closed]).
  • Candidate: Bewerberakte (Felder: job_opening_id, name, email, stage [new, screening, interview, offer, hired, rejected], gdpr_consent_date, retention_until).

2. Das Capability-Register

  • cap:recruiting.job.create: Anlegen einer neuen Stellenausschreibung.
  • cap:recruiting.candidate.create_from_inbox: Automatische Bewerberanlage aus E-Mail.
  • cap:recruiting.candidate.hire: Übernahme eines Bewerbers in den Personalstamm.
  • cap:employees.time.clock_in: Arbeitsbeginn buchen.
  • cap:employees.time.clock_out: Arbeitsende buchen mit Pausenabzug.
  • cap:employees.leave.request: Einreichen eines Urlaubsantrags.
  • cap:employees.leave.approve: Genehmigung des Abwesenheitsantrags durch Vorgesetzten.
  • cap:hr.payroll.export_summary: Aggregation der Monatsstunden für das Lohnbüro.

3. Der Gateway gw:candidate_hiring@v1

Sichert die rechtsverbindliche Einstellung ab:

  1. Validierung: Prüft Gehalt, Arbeitszeiten und Vollständigkeit der Vertragsdaten.
  2. Personalaktengenerierung: Erzeugt Employee, weist Nummernkreis zu und sperrt die Bewerberakte.
  3. Outbox-Signal: Feuert EMPLOYEE_HIRED und stößt die IT-Onboarding-Kaskade an.

4. Statusmodelle

  • Bewerber-Phasen: new ➔ screening ➔ interview ➔ offer ➔ hired oder rejected.
  • Urlaubsantrag: draft ➔ pending_approval ➔ approved oder rejected.
🤖

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

AI Solution Architect Blueprint

KI-Consultant Blueprint: Customizing & No-Code Architektur

Anleitung für Solution Architects zur Einrichtung von HR- und Zeiterfassungsabläufen.

1. Kundenanforderungsanalyse

  • Welche Arbeitszeitmodelle existieren (Gleitzeit mit Kernarbeitszeit, Vertrauensarbeitszeit, Schichtmodelle)?
  • Welche Urlaubsarten sollen unterstützt werden (Erholungsurlaub, Bildungsurlaub, Sonderurlaub bei Heirat/Geburt)?
  • Wie lange soll der Bewerber-Talentpool mit expliziter Einwilligung gespeichert werden (z.B. 12 oder 24 Monate)?

2. No-Code Zusatzfelder (Custom Fields)

Im No-Code Studio (/semantic/customizing):

  • Auf Employee:
    • home_office_days_per_week (Ganzzahl): Vertraglich vereinbarte Home-Office-Tage.
    • safety_shoe_size (Ganzzahl): Kleidergröße für PSA-Ausgabe in der Werkstatt.
  • Auf Candidate:
    • salary_expectation_yearly (Währungsbetrag): Gehaltsvorstellung des Bewerbers.
    • earliest_start_date (Datum): Frühestmöglicher Eintrittstermin.

3. No-Code Workflow Canvas DAGs

Blueprint A: ArbZG-Verstoß-Alarmierung an Vorgesetzte
  • Trigger-Node: cap:employees.time.clock_out wird aufgerufen.
  • Condition-Node: time_record.worked_hours > 10.0 OR time_record.break_duration < 30.
  • Action-Node: Markiere is_violation_arbzg = true und sende dezente Information an Mitarbeiter und Teamleiter zur Einhaltung der Arbeitsruhe.
Blueprint B: Automatisches Onboarding-Aufgabenpaket
  • Trigger-Node: Event EMPLOYEE_HIRED.
  • Action-Node 1: Erzeuge IT-Aufgabe: Laptop & Benutzerkonto einrichten.
  • Action-Node 2: Erzeuge Fuhrpark-Aufgabe: Dienstwagenübergabe terminieren.
  • Action-Node 3: Sende Begrüßungs-Mail an neuen Mitarbeiter mit Onboarding-Portal-Zugang.

📚 Operative Prozessbegriffe & Transaktionsschnittstellen

Zentrale Fachbegriffe im Prozesszusammenhang (Operatives Modell)
Hire-to-Retire
Ganzheitlicher Lebenszyklus eines Mitarbeiters von der Bewerbung bis zum Renteneintritt.
ArbZG-Compliance
Einhaltung der gesetzlichen Vorschriften zu Höchstarbeitszeit (10h), Pausen und 11h Ruhezeit.
Digitale Personalakte
Zentraler, geschützter Datenspeicher für alle Mitarbeiterdokumente und Verträge.
Urlaubsanspruch nach BUrlG
Gesetzlich oder vertraglich festgelegte Anzahl bezahlter Erholungstage pro Kalenderjahr.
AGG-Klagefrist (6 Monate)
Frist zur Aufbewahrung von Bewerberdaten zur rechtlichen Absicherung gegen Benachteiligungsklagen.
eAU (Elektronische Arbeitsunfähigkeitsbescheinigung)
Digitaler Krankmeldungsabruf bei den gesetzlichen Krankenkassen.
📥 Eingänge & Trigger (Inputs)
  • Eingehende Bewerbungen über Karriereportal und Postfach
  • Tägliche Arbeitszeitstempelungen der Mitarbeiter (Terminal/App)
  • Urlaubs- und Abwesenheitsanträge aus dem Mitarbeiter-Self-Service
  • Krankmeldungen und eAU-Mitteilungen der Krankenkassen
📤 Ausgänge & Arbeitsergebnisse (Outputs)
  • Rechtskonforme digitale Personalakten und Arbeitsverträge
  • Lückenlose Arbeitszeitprotokolle mit ArbZG-Audit-Trail
  • Genehmigte Urlaubspläne mit kalendarischer Teamübersicht
  • Lohn- und Gehalts-Vorbereitungsberichte für den Steuerberater
⚡ Kaskaden & Folgeprozesse (Cascades)
  • candidate_hired -> create_employee_master: Automatische Anlage im Personalverzeichnis
  • employee_hired -> trigger_onboarding_tasks: Verteilung der Ausstattungsaufgaben an IT und Office
  • leave_approved -> update_shared_calendar: Sperrung des Abwesenheitszeitraums im Teamkalender
  • time_recorded -> calculate_monthly_overtime: Fortschreibung des Arbeitszeitkontos
🛡️ Nebenprozesse & Resilienz
  • Verwaltung des Bewerber-Talentpools mit automatischer Wiedervorlage
  • Überwachung von Befristungsdaten bei befristeten Arbeitsverträgen
  • Wiedereingliederungsmanagement (BEM) bei langzeiterkrankten Mitarbeitern
  • Ausstellung qualifizierter Arbeitszeugnisse mit Vorlagenunterstützung
💡 No-Code Checkliste & Praxistipps
  • Arbeitszeitmodelle (Vollzeit 40h, Teilzeit 20h/30h) im System definieren
  • Urlaubsanspruch nach Alter oder Betriebszugehörigkeit staffeln
  • ArbZG-Schwellenwerte für automatische Warnungen aktivieren
  • No-Code Zusatzfelder für Home-Office-Regelung und Gehaltsvorstellung anlegen

🗄️ Data Models & Fields

HrAbsences hr_absences RLS Aktiv
24 Fields / Columns

Tabelle hr_absences

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
absence_type VARCHAR(48) Ja * - Feld absence_type
status VARCHAR(48) Ja * - Feld status
start_date DATE Ja * - Feld start_date
end_date DATE Ja * - Feld end_date
days NUMERIC(5, 1) Ja * - Feld days
half_day BOOLEAN Ja * - Feld half_day
notes TEXT Nein - Feld notes
requested_by_id UUID Nein FK ➔ users.id Feld requested_by_id
decided_by_id UUID Nein FK ➔ users.id Feld decided_by_id
decided_at DATETIME Nein - Feld decided_at
decision_note TEXT Nein - Feld decision_note
eau_status VARCHAR(48) Ja * - Feld eau_status
eau_retrieved_at DATETIME Nein - Feld eau_retrieved_at
is_child_sick BOOLEAN Ja * - Feld is_child_sick
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
HrCompensations hr_compensations RLS Aktiv
18 Fields / Columns

Tabelle hr_compensations

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
contract_id UUID Nein FK ➔ hr_employment_contracts.id Feld contract_id
component VARCHAR(32) Ja * - Feld component
salary_type VARCHAR(48) Ja * - Feld salary_type
amount NUMERIC(10, 2) Ja * - Feld amount
currency VARCHAR(3) Ja * - Feld currency
effective_from DATE Ja * - Feld effective_from
effective_to DATE Nein - Feld effective_to
reason VARCHAR(255) Nein - Feld reason
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
HrContractTemplates hr_contract_templates
14 Fields / Columns

Tabelle hr_contract_templates

Feldname Data Type Required Schlüssel Functional Meaning
id UUID Nein PK Feld id
country VARCHAR(2) Ja * - Feld country
doc_key VARCHAR(64) Ja * - Feld doc_key
language VARCHAR(8) Ja * - Feld language
title VARCHAR(255) Ja * - Feld title
description TEXT Nein - Feld description
sections JSONB Ja * - Feld sections
variables JSONB Ja * - Feld variables
legal_basis VARCHAR(255) Nein - Feld legal_basis
source_note VARCHAR(255) Nein - Feld source_note
version INTEGER Ja * - Feld version
sort_order INTEGER Ja * - Feld sort_order
active BOOLEAN Ja * - Feld active
created_at DATETIME Ja * - Feld created_at
HrEmergencyContacts hr_emergency_contacts RLS Aktiv
14 Fields / Columns

Tabelle hr_emergency_contacts

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
name VARCHAR(255) Ja * - Feld name
relationship VARCHAR(128) Nein - Feld relationship
phone VARCHAR(64) Ja * - Feld phone
priority INTEGER Ja * - Feld priority
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
HrEmploymentContracts hr_employment_contracts RLS Aktiv
29 Fields / Columns

Tabelle hr_employment_contracts

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
contract_type VARCHAR(48) Ja * - Feld contract_type
status VARCHAR(48) Ja * - Feld status
position_title VARCHAR(255) Ja * - Feld position_title
job_description TEXT Nein - Feld job_description
workplace VARCHAR(255) Nein - Feld workplace
start_date DATE Ja * - Feld start_date
end_date DATE Nein - Feld end_date
probation_months INTEGER Nein - Feld probation_months
weekly_hours NUMERIC(5, 2) Nein - Feld weekly_hours
salary_type VARCHAR(48) Ja * - Feld salary_type
salary_amount NUMERIC(10, 2) Nein - Feld salary_amount
vacation_days_per_year INTEGER Nein - Feld vacation_days_per_year
notice_period_employee VARCHAR(255) Nein - Feld notice_period_employee
notice_period_employer VARCHAR(255) Nein - Feld notice_period_employer
tariff_agreement VARCHAR(255) Nein - Feld tariff_agreement
terminated_at DATE Nein - Feld terminated_at
termination_effective_date DATE Nein - Feld termination_effective_date
document_id UUID Nein FK ➔ documents.id Feld document_id
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
HrQualifications hr_qualifications RLS Aktiv
17 Fields / Columns

Tabelle hr_qualifications

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
name VARCHAR(255) Ja * - Feld name
issuer VARCHAR(255) Nein - Feld issuer
acquired_at DATE Nein - Feld acquired_at
expires_at DATE Nein - Feld expires_at
document_id UUID Nein FK ➔ documents.id Feld document_id
is_required BOOLEAN Ja * - Feld is_required
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
HrRiskAssessments hr_risk_assessments RLS Aktiv
18 Fields / Columns

Tabelle hr_risk_assessments

Feldname Data Type Required Schlüssel Functional Meaning
area VARCHAR(255) Ja * - Feld area
activity VARCHAR(255) Ja * - Feld activity
hazards TEXT Nein - Feld hazards
measures JSONB Ja * - Feld measures
status VARCHAR(16) Ja * - Feld status
reviewed_at DATE Nein - Feld reviewed_at
next_review_at DATE Nein - Feld next_review_at
document_id UUID Nein FK ➔ documents.id Feld document_id
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
HrSafetyInstructions hr_safety_instructions RLS Aktiv
17 Fields / Columns

Tabelle hr_safety_instructions

Feldname Data Type Required Schlüssel Functional Meaning
template_id UUID Nein FK ➔ hr_safety_templates.id Feld template_id
title VARCHAR(255) Ja * - Feld title
conducted_on DATE Nein - Feld conducted_on
instructor_name VARCHAR(255) Nein - Feld instructor_name
status VARCHAR(16) Ja * - Feld status
next_due_at DATE Nein - Feld next_due_at
document_id UUID Nein FK ➔ documents.id Feld document_id
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
HrSafetyParticipants hr_safety_participants RLS Aktiv
10 Fields / Columns

Tabelle hr_safety_participants

Feldname Data Type Required Schlüssel Functional Meaning
instruction_id UUID Ja * FK ➔ hr_safety_instructions.id Feld instruction_id
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
attended BOOLEAN Ja * - Feld attended
signed_at DATETIME Nein - Feld signed_at
signature_document_id UUID Nein FK ➔ documents.id Feld signature_document_id
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
HrSafetyTemplates hr_safety_templates RLS Aktiv
15 Fields / Columns

Tabelle hr_safety_templates

Feldname Data Type Required Schlüssel Functional Meaning
title VARCHAR(255) Ja * - Feld title
content TEXT Nein - Feld content
document_id UUID Nein FK ➔ documents.id Feld document_id
interval_months INTEGER Ja * - Feld interval_months
applies_to JSONB Ja * - Feld applies_to
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
HrTimeEntries hr_time_entries RLS Aktiv
23 Fields / Columns

Tabelle hr_time_entries

Feldname Data Type Required Schlüssel Functional Meaning
employee_id UUID Ja * FK ➔ organization_users.id Feld employee_id
work_date DATE Ja * - Feld work_date
started_at DATETIME Ja * - Feld started_at
ended_at DATETIME Nein - Feld ended_at
break_minutes INTEGER Ja * - Feld break_minutes
kind VARCHAR(48) Ja * - Feld kind
status VARCHAR(48) Ja * - Feld status
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
project_id UUID Nein FK ➔ projects.id Feld project_id
description TEXT Nein - Feld description
warnings JSONB Ja * - Feld warnings
approved_by_id UUID Nein FK ➔ users.id Feld approved_by_id
approved_at DATETIME Nein - Feld approved_at
correction_of_id UUID Nein FK ➔ hr_time_entries.id Feld correction_of_id
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
HrWorkInstructions hr_work_instructions RLS Aktiv
20 Fields / Columns

Tabelle hr_work_instructions

Feldname Data Type Required Schlüssel Functional Meaning
workplace_id UUID Nein FK ➔ hr_workplace_descriptions.id Feld workplace_id
code VARCHAR(64) Ja * - Feld code
title VARCHAR(255) Ja * - Feld title
steps JSONB Ja * - Feld steps
integration_notes TEXT Nein - Feld integration_notes
status VARCHAR(16) Ja * - Feld status
source VARCHAR(64) Ja * - Feld source
plan_hash VARCHAR(64) Nein - Feld plan_hash
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
document_id UUID Nein FK ➔ documents.id Feld document_id
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
HrWorkplaceDescriptions hr_workplace_descriptions RLS Aktiv
22 Fields / Columns

Tabelle hr_workplace_descriptions

Feldname Data Type Required Schlüssel Functional Meaning
code VARCHAR(64) Ja * - Feld code
title VARCHAR(255) Ja * - Feld title
summary TEXT Nein - Feld summary
duties JSONB Ja * - Feld duties
role_code VARCHAR(64) Nein - Feld role_code
org_unit_name VARCHAR(255) Nein - Feld org_unit_name
headcount_planned INTEGER Nein - Feld headcount_planned
status VARCHAR(16) Ja * - Feld status
source VARCHAR(64) Ja * - Feld source
plan_hash VARCHAR(64) Nein - Feld plan_hash
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
document_id UUID Nein FK ➔ documents.id Feld document_id
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

🔌 Entry Points (UI & APIs)

Art Method Endpoint / Path Titel & Zweck Required Role
⚡ REST API GET /api/v1/directory/colleagues
list_colleagues
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /api/v1/employees
list_employees
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /api/v1/employees/stats
employee_stats
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /api/v1/employees/{employee_id}
get_employee
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /api/v1/employees/{employee_id}/permissions
get_employee_permissions
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /employees
employees_page
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /employees/new
employee_create_page
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API GET /employees/{employee_id}
employee_edit_page
Semantic binding: inventory_only; mutation=False
employees
⚡ REST API PATCH /api/v1/employees/{employee_id}
update_employee
Semantic binding: operator_surface; mutation=True
employees
⚡ REST API POST /api/v1/employees
create_employee
Semantic binding: operator_surface; mutation=True
employees
⚡ REST API POST /api/v1/employees/{employee_id}/deactivate
deactivate_employee
Semantic binding: operator_surface; mutation=True
employees

🛡️ Regulatory & Compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • ArbZG § 3/4
  • BUrlG § 9
  • EFZG
  • NachwG
  • RLS Mandantenisolation
Related Modules:
➔ identity ➔ tasks ➔ contracts