138 lines
3.2 KiB
Markdown
138 lines
3.2 KiB
Markdown
# EPI → CrewBrain Dokumenten-Uploader
|
|
|
|
Dieses Tool überträgt PDF-Dokumente (Angebote, Aufträge, Lieferscheine) automatisiert aus definierten Ordnern in **CrewBrain** und ordnet sie den passenden Jobs/Events zu.
|
|
|
|
Die Zuordnung erfolgt über die **EventIDManual** (z. B. `4843-01`), die aus dem Dateinamen extrahiert wird.
|
|
|
|
---
|
|
|
|
## Voraussetzungen in CrewBrain (wichtig)
|
|
|
|
Damit Dokumente hochgeladen werden können, **müssen in CrewBrain passende Zusatzinformationen vom Typ „Dokument“ angelegt sein**.
|
|
|
|
### 1. Zusatzinformationen anlegen
|
|
|
|
Öffne in CrewBrain:
|
|
|
|
https://<crewbrain-domain>/administration/jobs/jobdata
|
|
|
|
|
|
(z. B. `https://vt-media.crewbrain.com/administration/jobs/jobdata`)
|
|
|
|
Lege dort für **jede Dokumentart** eine Zusatzinformation an:
|
|
|
|
- Angebot
|
|
- Auftrag
|
|
- Lieferschein
|
|
|
|
**Wichtig:**
|
|
- Der Typ der Zusatzinformation **muss „Dokument“ sein**
|
|
- Jede Zusatzinformation erhält intern eine **TypeID**
|
|
|
|
---
|
|
|
|
### 2. TypeID ermitteln
|
|
|
|
Nach dem Anlegen oder Bearbeiten einer Zusatzinformation kannst du die **TypeID** direkt aus der URL ablesen:
|
|
|
|
Beispiel:
|
|
|
|
https://vt-media.crewbrain.com/administration/jobs/jobdata/additionaldatatype/2
|
|
|
|
|
|
➡️ **TypeID = 2**
|
|
|
|
Diese TypeID wird später in der Anwendung konfiguriert.
|
|
|
|
---
|
|
|
|
## Konfiguration (`appsettings.json`)
|
|
|
|
### Relevanter Bereich: `Crewbrain`
|
|
|
|
```json
|
|
"Crewbrain": {
|
|
"ApiBase": "https://vt-media.crewbrain.com/api",
|
|
|
|
"Upload": {
|
|
"Target": "AdditionalData",
|
|
"AttachmentsVisibility": "ALL",
|
|
"Angebot": {
|
|
"TypeId": 1,
|
|
"OverwriteSingleDocument": false
|
|
},
|
|
"Auftrag": {
|
|
"TypeId": 0,
|
|
"OverwriteSingleDocument": true
|
|
},
|
|
"Lieferschein": {
|
|
"TypeId": 2,
|
|
"OverwriteSingleDocument": false
|
|
}
|
|
},
|
|
|
|
"TokenAuth": {
|
|
"AccessToken": ""
|
|
}
|
|
}
|
|
Erklärung der Felder
|
|
Feld Bedeutung
|
|
ApiBase Basis-URL der CrewBrain API
|
|
|
|
Crewbrain:Upload:Target:
|
|
|
|
"AdditionalData" = AddOnField-Dokument (TypeId je Dokumentart)
|
|
|
|
"JobAttachments" = normales Job Attachment (TypeId wird ignoriert)
|
|
|
|
Upload.<Typ>.TypeId TypeID der Zusatzinformation (siehe oben)
|
|
Upload.<Typ>.OverwriteSingleDocument Ersetzt vorhandenes Dokument (nur erlaubt bei DOCUMENT_SINGLE)
|
|
TokenAuth.AccessToken Wird automatisch vom Tool gesetzt
|
|
Dokumentverarbeitung
|
|
Unterstützte Dateitypen: PDF
|
|
|
|
Event-Zuordnung erfolgt über EventIDManual im Dateinamen
|
|
|
|
Unterstützte Formate:
|
|
|
|
905-01
|
|
|
|
4843-01
|
|
|
|
12345-01
|
|
|
|
Bei mehreren Treffern im Dateinamen wird automatisch die längste ID verwendet
|
|
|
|
Beispiel
|
|
ABM4843-01-Kunde-Angebot.pdf
|
|
→ EventIDManual = 4843-01
|
|
Token-Authentifizierung
|
|
Das Tool verwendet CrewBrain Access Tokens (X-API-KEY):
|
|
|
|
Beim ersten Start:
|
|
|
|
Benutzername & Passwort werden einmalig abgefragt
|
|
|
|
Token wird automatisch gespeichert
|
|
|
|
Tokens bleiben 14 Tage nach letzter Nutzung gültig
|
|
|
|
Bei 401/403 wird automatisch ein neuer Token angefordert
|
|
|
|
⚠️ Passwörter werden nicht gespeichert
|
|
|
|
Ergebnis
|
|
Erfolgreich hochgeladene Dateien werden in einen Uploaded/-Unterordner verschoben
|
|
|
|
Bei Namenskonflikten wird ein Zeitstempel vor der Dateiendung ergänzt:
|
|
|
|
Angebot_4843-01.pdf
|
|
→ Angebot_4843-01_202601210915301234.pdf
|
|
Hinweise
|
|
Fehlerhafte oder nicht zuordenbare Dateien werden nicht verschoben
|
|
|
|
Alle API-Requests (inkl. Payload-Preview) sind im DEBUG-Log sichtbar
|
|
|
|
Base64-Inhalte werden im Log nicht vollständig ausgegeben
|
|
|