186 lines
5.6 KiB
Markdown
186 lines
5.6 KiB
Markdown
# Next Steps
|
|
|
|
Stand: 2026-04-15
|
|
|
|
## Nachtrag 2026-04-17
|
|
|
|
Der Punkt `CHF-Umrechnung / Wechselkurse` ist nicht mehr komplett offen.
|
|
|
|
Der aktuelle Ist-Stand ist:
|
|
|
|
- `CurrencyExchangeRateService` ist implementiert
|
|
- `ExchangeRateImportService` importiert ECB-Kurse
|
|
- `NormalizeCurrencyCode` und `ConvertCurrency` sind im Transformationssystem registriert
|
|
- fehlende Unit-Tests dafuer wurden am 2026-04-17 ergaenzt
|
|
|
|
Neuer Teststand:
|
|
|
|
- `dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal`
|
|
- erfolgreich
|
|
- `31/31` Tests gruen
|
|
|
|
Was fuer Waehrungen trotzdem noch offen bleibt:
|
|
|
|
- fachlicher Einsatz der `ConvertCurrency`-Regeln in echten Standortkonfigurationen pruefen
|
|
- UI-Flow fuer Wechselkurspflege in `Settings.razor` manuell gegenpruefen
|
|
- ECB-Import einmal real ueber die UI bzw. App-Funktion pruefen
|
|
- bestaetigen, fuer welche Sichten CHF die Zielwaehrung sein soll
|
|
- Management-Cockpit-Rohsicht nur dann auf CHF umstellen, wenn fachlich gewuenscht
|
|
|
|
## 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
|
|
- fachliche Nutzung der CHF-Umrechnung in Cockpit / Reports
|
|
- 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 End-to-End-Tests fuer den Wechselkurs-/Transformationspfad
|
|
- spaeter evtl. SQLite-nahe Integrationstests fuer `DatabaseInitializationService`
|
|
|
|
Aktueller Teststatus:
|
|
|
|
- `dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal`
|
|
- erfolgreich
|
|
- `31/31` Tests gruen
|
|
|
|
## 7. Referenzdatei
|
|
|
|
Fuer den vollstaendigen Kontext zuerst lesen:
|
|
|
|
- `HANDOFF_2026-04-15.md`
|