# EspoCRM Custom Directory - Übersicht ## Verzeichnisstruktur ``` custom/ ├── Espo/ │ ├── Custom/ # Custom Entitäten, Services, Controller etc. │ └── Modules/ # Custom Module ├── scripts/ # Custom PHP Scripts für Wartung/Verwaltung │ ├── check_and_rebuild.sh │ └── workflow_manager.php └── workflows/ # Workflow-Definitionen als JSON ├── README.md ├── vmh-erstberatung-abschliessen.json ``` ## Zweck der Verzeichnisse ### custom/Espo/Custom/ Hauptverzeichnis für EspoCRM-Customizations: - `Resources/metadata/` - Entity-, Field-, Client-Definitionen - `Resources/layouts/` - UI-Layout-Definitionen - `Resources/i18n/` - Übersetzungen - `Classes/` - Custom PHP-Klassen - `Controllers/` - Custom Controller - `Services/` - Custom Services - `Repositories/` - Custom Repositories ### custom/Espo/Modules/ Zusätzliche Module (z.B. von Extensions): - Jedes Modul hat eigene `Resources/metadata/` Struktur - Module sind gekapselt und wiederverwendbar ### custom/scripts/ **PHP Scripts für Wartung und Verwaltung:** #### workflow_manager.php Zentrale Schnittstelle für Workflow-Verwaltung: - **list** - Alle Workflows (BPM + Simple) auflisten - **read** - Workflow-Details anzeigen - **import** - Workflow aus JSON importieren - **export** - Workflow nach JSON exportieren - **delete** - Workflow löschen **Verwendung:** ```bash docker exec espocrm php /var/www/html/custom/scripts/workflow_manager.php [args] ``` #### check_and_rebuild.sh Validierung und Rebuild: - JSON-Syntax-Prüfung - EspoCRM Rebuild - Cache-Bereinigung ### custom/workflows/ **Workflow-Definitionen als JSON:** - Versionskontrolle für Workflows - Import/Export über workflow_manager.php - Sowohl Simple Workflows als auch BPM Flowcharts - Format-Dokumentation in `README.md` **Workflow-Typen:** 1. **Simple Workflows** - Regel-basierte Automationen - Trigger: afterRecordSaved, afterRecordCreated, scheduled, manual - Bedingungen: Feld-Vergleiche (equals, changed, contains, etc.) - Aktionen: sendEmail, createEntity, updateEntity, etc. 2. **BPM Flowcharts** - Komplexe BPMN 2.0-Workflows - Visuelle Designer im Admin-Interface - Start-Events, Gateways, Tasks, End-Events - Für mehrstufige Geschäftsprozesse ## Best Practices ### Workflow-Entwicklung 1. Workflow als JSON in `custom/workflows/` erstellen 2. Mit `workflow_manager.php import` einspielen 3. Im Admin-Interface testen 4. Bei Änderungen: Export → Anpassung → Import ### Versionskontrolle - Alle JSON-Dateien in Git committen - Beschreibende Dateinamen (z.B. `vmh--.json`) - Regelmäßig Backups per `export` erstellen ### Änderungen anwenden Nach Metadata-Änderungen immer: ```bash docker exec espocrm php /var/www/html/command.php rebuild # oder ./custom/scripts/check_and_rebuild.sh ``` ## Nützliche Befehle ```bash # Alle Workflows auflisten docker exec espocrm php /var/www/html/custom/scripts/workflow_manager.php list # Workflow importieren docker exec espocrm php /var/www/html/custom/scripts/workflow_manager.php import \ /var/www/html/custom/workflows/my-workflow.json # Workflow exportieren (Backup) docker exec espocrm php /var/www/html/custom/scripts/workflow_manager.php export \ /var/www/html/custom/workflows/backup-workflow.json # System rebuilden docker exec espocrm php /var/www/html/command.php rebuild # Cache löschen docker exec espocrm rm -rf /var/www/html/data/cache/* ``` ## Dokumentation - **Hauptdokumentation:** `/README.md` - Vollständige KI-Dokumentation für EspoCRM - **Workflow-Formate:** `/custom/workflows/README.md` - JSON-Format-Spezifikationen - **EspoCRM Docs:** https://docs.espocrm.com