Verbesserung der Dokumentation und implementierung von automation funktion in pck_auto_import

This commit is contained in:
2026-04-21 14:51:50 +02:00
parent b2233e7da0
commit a5e2fc6720
7 changed files with 166 additions and 48 deletions

View File

@@ -62,6 +62,8 @@ Alle zur Laufzeit via `pck_system.f_get_par_wert_by_programmid`:
| `NETSTORE_BA_PREFIX` | Pfad in Object Storage, wo BA-Daten liegen. Muss mit einem `/` enden, z.B. `BA/Eingang/` |
| `NETSTORE_BA_IMPORT` | Name des Unterordners von NETSTORE_BA_PREFIX im Object Storage, wo entpackte Dateien, die noch importiert werden müssen, zwischengespeichert werden. |
| `BA_IMPORT_SB_MIT_ID` | Mitarbeiter-ID für Import von BA Daten (z.B. Korrespondenzen). Diese Mitarbeiter-ID bekommt eine Wiedervorlage, für jede Datei, die nicht automatisch importiert werden konnte. |
| `AUTOMATON_BASE_URL` | Base-URL des Quarkus Dateieingang Service, z.B. `http://dateieingang:8080` |
| `AUTOMATON_API_KEY` | API-Key für den Quarkus Dateieingang Service (Header `X-Api-Key`) |
---
@@ -156,7 +158,7 @@ Bucket nicht erreichbar → -20003 via `f_make_request`
## Sicherheit / Tenant-Isolation
`p_assert_allowed` wird am Anfang jeder öffentlichen Funktion/Prozedur aufgerufen:
1. Tenant-Prefix laden via `f_get_cfg('NET_STORAGE_TENANT_ID')`
1. Tenant-Prefix laden via `f_get_cfg('NETSTORE_TENANT_ID')`
2. `..`-Sequenzen im übergebenen Key prüfen → -20004
3. Prüfen ob Key mit Tenant-Prefix beginnt → -20005
@@ -184,7 +186,22 @@ Die DB verarbeitet einen Unterordner **ausschließlich wenn der Marker vorhanden
Der Marker wird erst gelöscht wenn **alle** Dateien des Unterordners erfolgreich
verarbeitet wurden — so werden fehlgeschlagene Dateien beim nächsten Lauf erneut versucht.
### Prozedur `p_process_incoming_ba_data` (in `pck_auto_import`, nicht in pck_net_storage)
### Prozedur `p_run_ba_korrespondenz_dateieingang_automation` (in `pck_auto_import`) — APEX Automation Einstiegspunkt
Von der APEX Automation (stündlich) aufgerufen. Orchestriert den Gesamtablauf:
```
1. p_process_incoming_ba_data aufrufen
→ verarbeitet Batches die bereits in OCI liegen (Fallback, falls ORDS-Aufruf letzten Lauf fehlschlug)
→ Fehler eskalieren (APEX Automation markiert Lauf als fehlerhaft)
2. HTTP POST an AUTOMATON_BASE_URL/api/process-incoming (Header: X-Api-Key: AUTOMATON_API_KEY)
→ 202 Accepted: Pipeline gestartet
→ 409 Conflict: Service läuft bereits — kein zweiter Lauf, kein Fehler
→ sonstige Fehler: loggen, nicht eskalieren (nächster Lauf führt Schritt 1 wieder aus)
```
### Prozedur `p_process_incoming_ba_data` (in `pck_auto_import`) — ORDS-Einstiegspunkt
```
1. Unterordner von eingang/ auflisten (f_list_objects mit delimiter='/')