Files
Ai/TrafagSalesExporter/NEXT_STEPS_2026-04-15.md
T
2026-04-17 07:08:04 +02:00

160 lines
4.5 KiB
Markdown

# Next Steps
Stand: 2026-04-15
## Nachtrag 2026-04-16
Seit dem letzten Stand kamen mehrere groessere Erweiterungen dazu. Die offenen Punkte unten muessen deshalb im neuen Kontext gelesen werden.
## 0. Neuer Ist-Stand
Zusaetzlich zum alten Stand ist jetzt vorhanden:
- manueller Standort-Import ueber `MANUAL_EXCEL`
- Dashboard mit `Alle exportieren`, `Zentrale Datei neu erzeugen` und zentralem `Excel oeffnen`
- Roh-Auswertung im `Management Cockpit` direkt aus `CentralSalesRecords`
- erweitertes Transformationssystem mit `Value`- und `Record`-Regeln
- HANA-Schema-Lookup im Standortdialog
- Testprojekt mit aktuell 18 gruenden Tests
## 1. Status
Der Export geht jetzt wieder durch.
Die zuletzt gefundene Hauptursache war nicht mehr ein reiner SQLite-Lock beim Batch-Insert, sondern ein kaputter FK-Schemazustand in der bestehenden DB:
- SQLite referenzierte in mindestens einer Tabelle noch `main.Sites_old`
- dadurch scheiterte `SaveChangesAsync()` beim Schreiben z. B. in `AppEventLogs` oder `ExportLogs`
- sichtbarer Effekt: Export blieb nach `Zentrale Tabelle: ... Datensaetze gespeichert.` haengen
## 2. Umgesetzter Fix
Umgesetzt wurde:
- Dashboard-Live-Status liest waehrend laufendem Export nicht mehr staendig aus `AppEventLogs`, sondern nutzt den In-Memory-Status des `ExportOrchestrationService`
- SQLite `Default Timeout` in `Program.cs` auf `60` erhoeht
- `CentralSalesRecordService` setzt nach den Batches explizit `Zentrale Tabelle aktualisiert`
- `DatabaseInitializationService` repariert beim App-Start automatisch Tabellen, deren FK-SQL noch `Sites_old` referenziert
Betroffene Dateien:
- `Program.cs`
- `Components/Pages/Dashboard.razor`
- `Services/CentralSalesRecordService.cs`
- `Services/DatabaseInitializationService.cs`
## 3. Was noch getestet werden sollte
Kurz gegenpruefen:
- Export eines Standorts erneut
- `Excel oeffnen` nach erfolgreichem Export
- `Export erfolgreich` inkl. `Pfad=...`
- Dashboard-Live-Status setzt sich nach Abschluss sauber zurueck
- `Alle exportieren`
- `Zentrale Datei neu erzeugen`
- zentrale Datei im Dashboard oeffnen
## 3a. Manuellen Excel-Import pruefen
Zu testen:
- Standort auf `MANUAL_EXCEL` stellen
- Excel im Standort hochladen
- Standort exportieren
- pruefen, ob `CentralSalesRecords` fuer diesen Standort ersetzt wurden
- pruefen, ob der zentrale Export den Standort korrekt enthaelt
Dateien:
- `Components/Pages/Standorte.razor`
- `Services/ManualExcelImportService.cs`
- `Services/SiteExportService.cs`
## 3b. HANA-Schema-Lookup pruefen
Zu testen:
- bei `BI1`-Standort `Schemas laden`
- bei `SAGE`-Standort `Schemas laden`
- wird ein plausibles B1-Schema angeboten?
- funktioniert danach Export ohne manuelle Schema-Eingabe?
- zeigt England / Spezialstandort jetzt schneller, wenn Schema oder Rechte nicht passen?
Dateien:
- `Components/Pages/Standorte.razor`
- `Services/HanaQueryService.cs`
## 4. Falls wieder ein Fehler auftritt
In dieser Reihenfolge pruefen:
1. Exakte Fehlermeldung aus `AppEventLogs` bzw. Console notieren
2. Pruefen, ob die Reparaturlogik beim Start gelaufen ist
3. Pruefen, ob noch weitere Tabellen mit veralteter FK-Referenz existieren
4. Erst danach wieder am Batch-/Commit-Pfad der zentralen Speicherung arbeiten
## 5. SAP-Funktionalitaet kurz gegenpruefen
Zu testen:
- `Quellen refreshen`
- `Felder aus Quellen laden`
- `Auto-Match`
- SAP-Export eines Standorts
Dateien:
- `Components/Pages/Standorte.razor`
- `Services/SapGatewayService.cs`
- `Services/SapCompositionService.cs`
## 6. Management Cockpit pruefen
Zu testen:
- vorhandene Excel-Datei auswaehlbar
- Analyse laeuft
- Kennzahlen plausibel
- Roh-Auswertung aus `CentralSalesRecords` laeuft
- Jahr/Monat-Filter funktionieren
- Summen nach Quelle / Land plausibel
Dateien:
- `Components/Pages/ManagementCockpit.razor`
- `Services/ManagementCockpitService.cs`
## 6a. Fachlich bewusst noch offen
Noch nicht final umsetzen ohne Rueckmeldung Fachseite:
- Intercompany-Filter
- CHF-Umrechnung / Wechselkurse
- Budgetvergleich
- Gruppenlogik
- Spartenlogik
- Margenlogik
Diese Punkte sollen spaeter moeglichst dynamisch auf dem neuen Transformations-/Mapping-Ansatz aufsetzen, aber aktuell nicht hart geraten werden.
## 6b. Naechste sinnvolle Testkandidaten
Wenn weiter in Tests investiert wird, sind die naechsten Kandidaten:
- `ExportOrchestrationService`
- spaeter evtl. SQLite-nahe Integrationstests fuer `DatabaseInitializationService`
Aktueller Teststatus:
- `dotnet test TrafagSalesExporter.sln --verbosity minimal`
- erfolgreich
- `18/18` Tests gruen
## 7. Referenzdatei
Fuer den vollstaendigen Kontext zuerst lesen:
- `HANDOFF_2026-04-15.md`