44 KiB
Next Steps
Stand: 2026-05-20
Nachtrag 2026-05-20 Workflow-Fixes nach Review
Umgesetzt:
- Dashboard warnt vor aktiven manuellen Standorten ohne Datei.
- Nach Einzelstandortexport wird sichtbar, dass die zentrale Excel neu erzeugt werden muss.
- Dashboard erkennt eine veraltete zentrale Excel nach neuem Standortexport.
- Neuer Menuepunkt
Manuelle Importefuer Keyuser. Manuelle Importehat jetzt die ReiterImportdateienundAnleitung.- Der Reiter
Anleitungzeigt den Upload-/Export-/Zentraldatei-/Finance-Pruefprozess grafisch. - Zentrale Excel hat ein Blatt
Finance Summary. Management Analyseist als Rohdaten-/Plausibilitaetssicht markiert.Soll/Ist Vergleichist als verbindliche Finance-Sicht markiert.- Export-Live-Status ist nicht mehr pauschal
HANA Abfrage....
Weiterhin offen:
- DE Alphaplan-Fachabgrenzung: Kundenlaender/Filter muessen von Munir/Finance bestaetigt werden.
Nachtrag 2026-05-20 Keyuser Prozess-SVG
Erstellt:
docs/KEYUSER_PROZESSDOKU_2026-05-20.svg
Zielgruppe:
- Finance Keyuser / Poweruser.
Inhalt:
- Vorbereitung in Settings und Standorte.
- Manual-Excel-Dateien fuer UK/ES/DE.
- Einzelstandortexport, Export aller Standorte und zentrale Excel.
- Finance-Filter im Endexcel.
- Soll/Ist Vergleich, Management Analyse, Logs.
- Fehlerbehandlung und fachliche Freigabe.
Nachtrag 2026-05-20 Technische Architektur-SVG
Erstellt:
docs/SYSTEMARCHITEKTUR_TECHNISCH_2026-05-20.svg
Zielgruppe:
- Systemarchitekt / Serveradmin / technischer Projektkontext.
Abgrenzung:
- Nur produktive Applikation.
- Keine Testapp, Probe-Tools oder temporaeren Analyseprogramme.
Status:
- Keyuser-Prozessdoku wurde als separate SVG erstellt.
Nachtrag 2026-05-20 DE Alphaplan-Excel provisorisch eingebaut
Erledigt:
- Deutschland wird als manueller Excel-Standort vorbereitet:
TSC = TRDELand = DeutschlandSourceSystem = MANUAL_EXCEL- neuer Standort ist standardmaessig inaktiv, damit Export-All nicht ohne Datei scheitert
- Alphaplan-Mapping wird automatisch geseedet:
NettoPreisGesamtX->SalesPriceValueBelegnummer->InvoiceNumberPosition->PositionOnInvoiceArtikelNummer->MaterialArtikelBezeichnung->NameWarengruppen-Bezeichnung->ProductGroupAnz. VE->QuantityName/Land Lieferant,Name/Land Kunde,Branche,VersandbedingungBelegdatum-Rechnung->PostingDateundInvoiceDateDocumentType = Alphaplan Excel
- Datei erhalten:
docs/2025_DataExport_DE.xlsx
Bedienung:
- App starten.
Standorteoeffnen.- Deutschland /
TRDEoeffnen. - Alphaplan-Excel hochladen oder Pfad setzen.
- Standort aktivieren.
- Standortexport fuer DE ausfuehren.
- Danach zentrale Excel erzeugen; DE ist dann in
CentralSalesRecordsund im Endexcel enthalten.
Offen fachlich:
- Komplette Summe
NettoPreisGesamtX:4'154'690.05 EUR. - Nur
Land Kunde = Deutschland:3'455'276.64 EUR. - Sollwert DE:
3'635'923.00 EUR. - Finance/Munir muss bestaetigen, welche Kundenlaender oder Filter zum offiziellen DE-Ist gehoeren.
Nachtrag 2026-05-20 IIS 500 aktueller Stand
Vollstaendige Doku:
docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md
Was sicher bewiesen ist:
https://trch-webapp-bidashboard.trafagch.local/BiDashboard/diag.txtist erreichbar.- Browser zeigt dort:
BiDashboard publish folder reached 2026-05-20T08:19:14.2667783+02:00
- Damit stimmt IIS-URL
/BiDashboardund der Physical Path zum Publish-Ordner. - Der verbleibende
500ist kein falscher Pfad und kein HTTP/HTTPS-Verwechslungsproblem.
Was umgesetzt wurde:
- Publish weiterhin aus
TrafagSalesExporter. - Ausgabe weiterhin
BiDashboard.dll, keine EXE. web.configaufhostingModel="outofprocess"umgestellt.stdoutLogEnabled="true"bleibt aktiv.ASPNETCORE_DETAILEDERRORS=truefuer Diagnose gesetzt.- Neu publiziert auf
\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\.
Offen fuer Server-Spezialist:
- .NET 8 Hosting Bundle / AspNetCoreModuleV2 pruefen.
- App Pool pruefen:
.NET CLR Version = No Managed CodeManaged Pipeline Mode = IntegratedEnable 32-bit Applications = False
- Event Viewer lesen:
IIS AspNetCore Module V2.NET RuntimeApplication Error
- App-Pool-Identity mit
Modifyauf Publish-Ordner,logsundtrafag_exporter.db*bestaetigen.
Wichtig:
- Der Server braucht kein installiertes Microsoft Excel.
- XLSX wird ueber ClosedXML/OpenXML gelesen.
- CSV-Umstellung ist fuer diesen 500-Fehler nicht noetig.
Nachtrag 2026-05-20 IT Finance-Methode
Erledigt:
- IT-Methode gemaess Finance-Leiter umgesetzt.
CustomerNameenthaeltTrafag Italiawird fuer IT ausgeschlossen.- Doppelte IT-Zeilen mit leerem
Supplier countrywerden nur einmal gezaehlt. - Regel greift im Finance-Vergleich/Testprogramm und in den Finance-Spalten der zentralen Excel.
Bewusster Entscheid:
- Die alte 2025-Kombination ist naeher am Soll, aber fachlich nicht zukunftssicher.
- Fuer 2026+ gilt die neue Methode, auch wenn sie 2025 in der aktuellen DB weiter vom Sollwert abweicht.
Naechster Check:
- Nach neuem IT-Export pruefen, ob die vollstaendige
Trafag Italia-Summe aus den neuen Rohdaten sichtbar wird. - Zentrale Excel fuer
Finance | Country Key = IT,Finance | Include = TRUEfiltern und gegen Finance-Vergleich kontrollieren.
Nachtrag 2026-05-19 IIS Deployment / 500 Fehler
Vollstaendige Doku:
docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md
Aktueller Stand:
- Publish erfolgt direkt aus
TrafagSalesExporter. - Publish-Ausgabe ist an das alte
BiDashboardangepasst:BiDashboard.dll- keine EXE
web.configstartet.\BiDashboard.dll- Diagnose aktiv mit
stdoutLogEnabled=true
- URL mit App-Pfad liefert laut Browser
500:
https://trch-webapp-bidashboard.trafagch.local/BiDashboard/
Wahrscheinlichstes offenes Thema:
- App-Pool/IIS hat auf dem Publish-Ordner nur Lesen/Ausfuehren.
- Die App schreibt beim Start in SQLite (
trafag_exporter.db,db-shm,db-wal) und inlogs. icacls-Versuch von lokal wurde vom Server mitZugriff verweigertabgelehnt.
Naechster Schritt fuer Server-Spezialist:
- App-Pool-Identity ermitteln.
Modifyauf Publish-Ordner,logsundtrafag_exporter.db*setzen.- App-Pool neu starten.
- Danach URL neu testen und bei weiterem
500stdout-Log/Event Viewer lesen.
Nachtrag 2026-05-19 Finance-Cockpit-Login finalisieren
Aktueller Stand:
- Finance Cockpit hat einen separaten Login.
- HR-KPI-Login und Finance-Cockpit-Login sind technisch getrennte Services/Konfigurationen.
- Finance-Konfiguration liegt in
appsettings.jsonunterFinanceCockpitAccess. - Aktueller Benutzer:
finance. - Finance nutzt ein eigenes Passwort:
Trafag-Finance-Cockpit-2026!. - Globale AD-/Rollenpruefung ist fuer den Moment mit
Security.Enabled = falsedeaktiviert. - Die AD-Gruppen sind nicht geloescht und bleiben in
AccessGroups/AdminGroupsdokumentiert.
Wichtig:
- Finance- und HR-KPI-Sperren laufen weiter ueber eigene Passwortabfragen.
- AD/Rollen koennen spaeter durch
Security.Enabled = truewieder aktiviert werden.
Noch offen:
- Entscheiden, wann AD-/Rollenpruefung wieder aktiviert wird.
- Bei Reaktivierung
Security.Enabledauftruesetzen und Gruppen pruefen. - Pruefen, ob direkte Run-/Export-/FinanceProbe-Endpunkte ebenfalls geschuetzt werden muessen.
- In Browser testen:
http://127.0.0.1:5099/finance-cockpit/vergleich
- Nach Entsperren pruefen, dass Navigation und
Finance sperrenkorrekt funktionieren.
Nachtrag 2026-05-19 Finance-Vergleich / Formeldoku
Erledigt:
/finance-cockpit/vergleichnutzt dieselbeFinanceReconciliationService-Logik wie die FinanceProbe.- Leere Ist-Zeilen werden in der Haupt-App ausgefiltert.
- Berechnungslogik pro Land wurde dokumentiert:
docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md
Naechster Check:
- Bei neuer Datenladung
/finance-cockpit/vergleichund/financegegeneinander vergleichen. - Besonders ES, AT, UK und IT weiter fachlich klaeren.
Nachtrag 2026-05-19 Zentrale Excel fuer Finance-Filter
Erledigt:
- Die zentrale Excel
Sales_All_yyyy-MM-dd.xlsxenthaelt im BlattSaleseinen Finance-Spaltenblock:
Finance | Year
Finance | Country Key
Finance | Date
Finance | Net Sales Actual
Finance | Currency
Finance | Include
Finance | Source Value Field
- Die zentrale Excel enthaelt ein Hilfsblatt
Finance Filter Hilfe. - Das Hilfsblatt erklaert, wie Finance dieselben Ist-Summen wie im Testprogramm erhaelt:
Finance | Year = 2025
Finance | Country Key = Land
Finance | Include = TRUE
Summe Finance | Net Sales Actual
Geprueft:
- Excel-Finance-Spalten wurden gegen
FinanceReconciliationServicefuer 2025 verglichen. - AT, CH, ES, FR, IN, IT, UK und US ergaben jeweils
MATCHmit Differenz0.00.
Naechster praktischer Check:
- Nach dem naechsten echten Export die SharePoint-Datei
Sales_All_yyyy-MM-dd.xlsxoeffnen und mit Finance die Filter-/Summenlogik einmal gemeinsam durchgehen. - Dabei darauf achten, dass nicht versehentlich alte Spalten wie
Land,TSC,Document Total LCoderSales Price/Valuedirekt fuer CFO-Summen verwendet werden.
Nachtrag 2026-05-11 UK_B1 Mapping fertigstellen
Aktueller Stand:
- UK/England bleibt auf Quelle
UK_B1. - Korrekte Quelle:
https://trafagag.sharepoint.com/sites/WorldwideBIPlatform/Import/Finance/UK_B1
- Ursache der grossen UK-Abweichung:
- kein grafisches Mapping fuer
TRUK Sales Price/Valuewurde als Positionswert gelesen- in UK_B1 ist es nach aktuellem Befund ein Stueckpreis
- korrekte Formel ist
=[Sales Price/Value]*[Quantity]
- kein grafisches Mapping fuer
Bereits im Worktree umgesetzt:
ManualExcelImportServicekann berechnete Mapping-Quellen=[Header A]*[Header B].DatabaseSeedServiceseedet/repariert UK_B1-Pfad undTRUK-Mapping.DatabaseSeedServiceueberspringt den UK-Mapping-Seed, solangeManualExcelColumnMappingsnoch auf eine alte SQLite-Reparaturtabelle wieSites_repair_oldzeigt.- Unit-Test fuer berechnetes Manual-Excel-Mapping ist vorhanden.
- Doku wurde in
docs/FINANCE_ENTSCHEIDE.md,lastchange.mdundHANDOFF_2026-04-15.mdergaenzt. - Tests sind gruen:
59/59.
Verifizierter Testlauf:
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --no-restore -p:UseAppHost=false --verbosity minimal
Noch offen fuer den praktischen UK-Check:
- SharePoint-/Graph-Zugriff reparieren.
- letzter Fehler bei
/run/export/TRUK:
- letzter Fehler bei
ClientSecretCredential authentication failed
127.0.0.1:9 connection refused
- UK neu exportieren:
http://127.0.0.1:5099/run/export/TRUK
- Finance pruefen:
http://127.0.0.1:5099/finance
- Ergebnis bewerten:
- wenn UK nahe
3'749'865 GBPliegt: Mapping war Hauptursache. - wenn UK bei ca.
3'533'349 GBPbleibt: Restdifferenz gegen weitere UK-Netto-/Discount-/Frachtspalten pruefen.
- wenn UK nahe
Nicht vergessen:
- Keine harte Spezialkorrektur fuer genau 2025 einbauen.
- Die Loesung muss ueber Mapping und allgemeine Positionslogik laufen, damit andere Jahre ebenfalls korrekt funktionieren.
Nachtrag 2026-05-08 Manual Excel/CSV SharePoint-Automatik
Erledigt:
- SharePoint-Ordner koennen bei Manual Excel/CSV als Quelle hinterlegt werden.
- Bei Ordnern wird automatisch die neueste passende
.xlsx/.csvausgewaehlt. - Dateinamenmuster fuer bevorzugte Auswahl:
ddMMyy_TSC.xlsxbzw.ddMMyy_TSC.csv. - Manual-Export schreibt die erzeugte Exportdatei in den Quellordner zurueck:
- lokal: gleicher lokaler Ordner
- SharePoint: gleicher SharePoint-Ordner
- England/TRUK ist lokal auf den SharePoint-Ordner
Import/Finance/UK_B1korrigiert. - Spanien-Fehler nach erfolgreichem Einlesen der SharePoint-CSV ist behoben.
Naechste konkrete Schritte:
- App neu starten, damit die Seed-/Repair-Logik aktiv ist.
- England/TRUK exportieren und pruefen, ob die App
010526_TRUK.xlsxstatt010426_TRUK.xlsxauswaehlt. - Im SharePoint-Ordner
Import/Finance/UK_B1pruefen, ob die neue Exportdatei dort wieder abgelegt wird. - Deutschland/Alphaplan: im Standort den korrekten Alphaplan-Excel- oder SharePoint-Pfad hinterlegen.
- Deutschland exportieren und Mapping gegen die Alphaplan-Datei validieren.
- Falls UK-Dateinamen spaeter ein anderes Muster bekommen, Auswahlregel erweitern.
Nachtrag 2026-05-08 FinanceProbe
Erledigt:
- FinanceProbe zeigt alle Finance-Referenzen 2025.
- Datenabdeckung je Standort wurde ergaenzt.
- CH/AT-Zuordnung wurde fuer
ZSCHWEIZgeschaerft.
Naechste fachliche Schritte:
- Nach Export von England, Schweiz/Oesterreich, Spanien und Deutschland die FinanceProbe neu laden.
- In der Sektion
Datenabdeckung je Standortpruefen, ob Zeilen 2025 und Periode plausibel sind. - Fuer Laender mit
Keine Datenentscheiden:- Datenquelle fehlt
- Standort deaktiviert
- Mapping/Export noch nicht gelaufen
- Referenz ist nur zukuenftig relevant
- Fuer AT/CH nach
ZSCHWEIZ-Export pruefen, obLAND1korrektATbzw.CHliefert.
Nachtrag 2026-05-11 FinanceProbe KI-Steuerung
Neue Test-Routen:
/run/export/{siteKey}fuer Einzelstandortexporte/run/export-allfuer alle aktiven Standorte plus zentrale Datei/run/consolidatedfuer nur zentrale Datei
Naechster sinnvoller Prueflauf:
- FinanceProbe starten.
/run/export/TRUKfuer England testen./run/export/Spanientesten./run/export/Deutschlandtesten, sobald Alphaplan-Pfad korrekt ist./run/export/ZSCHWEIZtesten.- Danach
/financeunddocs/finance_status_2025.svgaktualisieren.
Nachtrag 2026-05-07 nach Mapper-/Finance-Aufraeumung
Erledigt:
- SAP-OData- und HANA-Mapping laufen ueber
MappedSalesRecordComposer. - Doppelte SAP-Mapping-Normalisierung wurde entfernt.
- Konsolidierter Export liest eindeutig aus
CentralSalesRecords. - Manuelle Standortdateien duerfen
.xlsxoder.csvsein. - Finance-Sollwerte, Budgetkurse und Intercompany-Regeln sind DB-Konfiguration mit Seed.
Naechste technische Schritte:
- App neu starten, damit Schema/Seed fuer
FinanceReferences,FinanceIntercompanyRulesund Budgetkurse laeuft. - In Settings Konfiguration exportieren und pruefen, ob Finance-Referenzen und IC-Regeln enthalten sind.
- Fuer produktive Pflege spaeter eine kleine UI fuer
FinanceReferencesundFinanceIntercompanyRulesbauen. - Manual Excel als naechsten Aufraeumpunkt vereinheitlichen: Header-Automatik und grafisches Mapping in eine gemeinsame Mapping-Engine ziehen.
- Bestehende BI1/SAGE-Standorte mittelfristig auf grafisches HANA-Mapping migrieren; erst danach den alten B1-Spezialpfad entfernen.
Nachtrag 2026-05-07 ZSCHWEIZ ueber SAP OData
Finaler Stand fuer Schweiz/Oesterreich:
- ABAP-Report
report.abapfuellt SAP-TabelleZSCHWEIZ. - Buchungskreis
1100= Schweiz,1200= Oesterreich. LAND1inZSCHWEIZist Reporting-Land aus Buchungskreis.CUSTOMER_LANDist Kundenland ausKNA1-LAND1.- Die App liest
ZSCHWEIZueber SAP OData, nicht ueber direkten HANA-Spezialcode.
In der App:
- Quellsystem-Code
SAPbleibt bestehen, DisplayName jetztSAP OData. SAP_HANAist nur fuer direkte HANA-Tabellen/Views und heisstSAP HANA Tables/Views.- Der grafische Mapper funktioniert fuer SAP OData und fuer HANA-Tabellen/Views.
- Vorkonfigurierter Standort:
TSC = ZSCHWEIZLand = Schweiz/OesterreichSourceSystem = SAP- Quelle
Z - EntitySet
ZSCHWEIZSet
- Quelle und Feldmapping werden beim App-Start per Seed-/Repair-Logik nachgezogen, auch wenn der Standort bereits existiert.
Naechste Schritte:
- App neu starten, damit die Seed-/Repair-Logik laeuft.
- In
Settings -> Quellsystemepruefen, obSAPalsSAP ODataangezeigt wird. - In
Standorteden StandortZSCHWEIZoeffnen. - Falls die zentrale SAP-Service-URL noch auf
ZPOWERBI_EINKAUF_SRVzeigt, beim StandortSAP Service URL Overrideauf den finalen OData-Service fuerZSCHWEIZsetzen. Entity Sets refreshen.- Quelle
ZaufZSCHWEIZSetkontrollieren. Felder aus Quellen laden.- Grafisches Mapping kontrollieren; manuell mappen musst du nur, wenn Gateway-Feldnamen vom erwarteten
ZSCHWEIZ-Layout abweichen. - Standort aktivieren und Export testen.
Keine manuelle Feldliste ist noetig, wenn der Gateway-Service $metadata korrekt liefert.
Nachtrag 2026-05-05 Abschlussstand FinanceProbe / Spanien / Deutschland
Aktueller lokaler Testpunkt:
http://localhost:55417/finance
FinanceProbe enthaelt jetzt:
Meeting Ampel 2025fuer alle Laender auscheck.xlsx- Ampel:
- Gruen: rechnerisch passend
- Gelb: Differenz oder fachliche Abgrenzung offen
- Grau: keine belastbaren Ist-Daten
Detail alle LaenderSpain CSV direct checkGermany Excel sample check
Spanien:
- finale v2-Datei liegt unter
sagespain/v2/Spain_Sales_2025.csv - Zeilen:
4'341 - Ist
SalesPriceValue:3'082'320.18EUR - Soll aus
check.xlsx:3'102'333.61 - Differenz:
-20'013.43 - Status: Gelb / Pruefen
- Export technisch lesbar, Differenz fachlich mit Spanien/Finance klaeren
Deutschland:
- Beispielfile liegt im Projektordner:
DE_Beispiel_Export_Daten.xlsx
- relevante Spalte:
NettoPreisGesamtX - Mapping-Ziel:
SalesPriceValue - Betragszeilen:
2 - Summe:
8'290.70EUR - das ist nur ein Sample, keine finale DE-Jahreszahl
- Deutschland bleibt fuer die finale Ampel offen/grau, bis ein vollstaendiger DE-Jahresfile 2025 oder ein bestaetigter Importlauf vorliegt
Offen fuer das Finance-Meeting / danach:
- Spanien Differenz
-20'013.43klaeren:- Periodendatum
- Serien
REG,LAT,PRO,REC - Gutschriften /
REC - offizielle Sage-Auswertung mit identischem Filter
- Deutschland finalen Jahresfile 2025 anfordern oder Importlauf mit finaler Datei ausfuehren.
- Fuer Laender mit Grau pruefen, ob Exportdaten fehlen oder Standort deaktiviert/ohne Datei ist.
- Fuer CHF-Aussage beachten:
- CHF nur direkt, wenn Quelle CHF liefert
- sonst Mandanten-/Originalwaehrung und separate FX-Regel noetig
Letzte Verifikation:
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal --no-restore
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal --no-restore
Ergebnis:
- FinanceProbe Build erfolgreich
- Tests erfolgreich
50/50Tests gruen- Web UI
HTTP 200
Nachtrag 2026-04-29 Dashboard-Referenzcheck
Das Dashboard enthaelt jetzt oben einen Net Sales Actuals 2025-Referenzcheck gegen die Zahlen aus check.xlsx / Power BI Stand 2026-04-29.
Technischer Stand:
- Ist-Wert wird automatisch aus dem besten Kandidaten gegen die Referenz gewaehlt:
SalesPriceValueDocumentTotalForeignCurrency - VatSumForeignCurrencyDocumentTotalLocalCurrency - VatSumLocalCurrency
- Belegkopfwerte werden per
TSC+DocumentType+DocumentEntrydedupliziert; Fallback istInvoiceNumber - Jahr 2025 ueber
InvoiceDate, fallbackExtractionDate - Vergleich gegen Power-BI-Wert, falls vorhanden, sonst LC-Referenz
- Dashboard zeigt das verwendete
Summenfeld
Noch fachlich zu pruefen:
- IT bleibt als bekannter
not ok-Fall offen - UK/US bleiben offen, bis die richtige Quelle bzw. Config geklaert ist
- bei weiteren Standorten erst Referenzwert und Datenquelle bestaetigen
- bestehende zentrale Altdaten enthalten fuer die neuen B1-Felder noch
0; fuer den echten Feldvergleich ist ein neuer Export/Rebuild noetig
Konkreter Ablauf nach Neustart/PC-Absturz:
- App starten und Dashboard oeffnen:
http://localhost:55416 Alle exportierenausfuehren oder betroffene Standorte einzeln exportieren.- Danach
Zentrale Datei neu erzeugenausfuehren. - Im oberen Dashboard-Block
Net Sales Actuals 2025 Referenzdie SpalteSummenfeldkontrollieren. - Wenn
Status = OK, passt die Summe zur hinterlegten Referenz. - Wenn
Status = Pruefen, zuerst kontrollieren:- richtige Standortquelle/Config
- richtiges Jahr
- ob nach der Codeaenderung wirklich neu exportiert wurde
- ob das gewaehlte Summenfeld fachlich Sinn macht
Naechster technischer Schritt fuer neue Jahre:
- Jahresauswahl im Dashboard einbauen.
- Fuer Jahre ohne Referenz trotzdem Ist-Summen und verwendetes Summenfeld anzeigen.
- Sobald eine neue Referenzdatei fuer 2026/2027 vorliegt, Referenzwerte ergaenzen.
Export-all-Abbruch am 2026-04-29:
- Fehler war SQLite-Schema:
ExportLogs,AppEventLogs,CentralSalesRecordszeigten noch auf"Sites_repair_old" - Schema-Reparatur wurde erweitert und beim App-Start erfolgreich angewendet
- gepruefter Zustand danach: alle drei Tabellen referenzieren wieder
Sites - Export kann jetzt erneut getestet werden
- falls erneut Fehler kommt, sollte die Snackbar die Inner Exception anzeigen und die Logs sollten nicht mehr selbst den Export abbrechen
Nachtest Export all:
- HANA-Schema-Fehler fuer Frankreich/Italien/USA wurde auf HANA-Quoting zurueckgefuehrt und korrigiert
- Indien bleibt Auth-/Credential-Thema
- England, Spanien und Deutschland sind aktuell
MANUAL_EXCELohne hinterlegte Datei - Fuer einen sauberen Export-all-Lauf:
- HANA-Standorte mit korrigierter Query nochmals testen
- Indien Credentials pruefen
- manuelle Standorte entweder Datei hinterlegen oder deaktivieren, falls sie nicht im Export-all laufen sollen
Nachtrag 2026-04-29 B1-Belegwaehrungsfelder
Der HANA/B1-Export zieht jetzt zusaetzliche Belegwaehrungsfelder:
DocEntryDocCurDocTotalFCDocTotalVatSumFCVatSumDocRateOADM.MainCurncy
Neue Zielfelder:
DocumentEntryDocumentCurrencyDocumentTotalForeignCurrencyDocumentTotalLocalCurrencyVatSumForeignCurrencyVatSumLocalCurrencyDocumentRateCompanyCurrency
Zusaetzlich gilt jetzt:
StandardCostCurrencykommt im HANA-Pfad ausOADM.MainCurncySales_All_*.xlsxenthaelt die neuen SpaltenCentralSalesRecordsenthaelt die neuen Spalten- bestehende SQLite-DBs werden beim Start um die Spalten erweitert
- Manual-Excel-Import kann die neuen Spalten lesen
Wichtig fuer Auswertungen
Die neuen DocumentTotal*- und VatSum*-Werte sind Belegkopfwerte und werden in der positionsbasierten Datei pro Position wiederholt.
Power BI:
- nicht positionsweise summieren
- zuerst nach Beleg deduplizieren, bevorzugt
TSC+DocumentType+DocumentEntry - danach Belegkopfwerte summieren
Positionswerte wie Sales Price/Value, Quantity und Standard cost bleiben fuer positionsbasierte Summen geeignet.
Verifikation
Geprueft:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal
Ergebnis:
- Build erfolgreich
- Tests erfolgreich
48/48Tests gruen
Nachtrag 2026-04-29 Clean-Code-/DI-Befund
Aktueller Architektur- und DI-Zustand nach den letzten Umbauten:
Gesamturteil:
- die App ist deutlich besser strukturiert als zu Beginn
- die Grundarchitektur ist brauchbar bis gut und fuer pragmatischen produktiven Einsatz geeignet
- Dependency Injection wird grundsaetzlich sinnvoll genutzt
- Clean Code ist mittel bis gut, aber noch nicht durchgehend konsequent
Was positiv ist:
- Kernservices laufen weitgehend ueber Interfaces und DI
DataSourceAdapter-Pattern trenntHANA,SAP_GATEWAYundMANUAL_EXCELSiteExportServiceist dadurch deutlich schlanker als frueher- UI-nahe Page-Services wurden eingefuehrt
- viele Razor-Seiten sind nicht mehr direkt
DbContext-lastig Scopedfuer Page-Services undSingletonfuer gemeinsame Infrastruktur/Orchestrierung ist bewusst gewaehlt- Tests decken wichtige Fachlogik ab, u. a. Transformationen, ConfigTransfer, DatabaseInitialization und ManagementCockpit
Was noch nicht ideal ist:
DatabaseInitializationServicebleibt ein produktiver Reparatur-/Migrationsblock und ist kein sauberes versioniertes MigrationssystemSettings.razorundStandorte.razorenthalten weiterhin relativ viel UI-/Workflow-LogikManagementCockpitService,ConfigTransferServiceund Teile der Initialisierung sind noch sehr breit- konsolidierter Export hat historisch noch Semantikreste zwischen Live-Snapshot und
CentralSalesRecords - Secrets/Zugangsdaten sind noch nicht ideal geloest
- zentraler Retry-/Resilience-Layer fuer SAP/HANA/SharePoint fehlt
- Auth ist jetzt pragmatisch mit User/Admin geschnitten, aber noch nicht fein nach
Viewer,Exporter,Admin,Finance
Sinnvolle spaetere Clean-Code-Schritte:
ManagementCockpitServicein kleinere Query-, Aggregation- und Currency-Komponenten teilenSettings.razorundStandorte.razorweiter Richtung Page-/Application-Services entlastenDatabaseInitializationServicelangfristig durch versionierte Migrationen ersetzen- Auth-Policies fachlich feiner schneiden, z. B.
Viewer,Exporter,Admin,Finance - Retry/Timeout/Failure-Handling fuer externe Systeme zentralisieren
- Secret-Store-Konzept umsetzen
Nachtrag 2026-04-29 Authentifizierung / AD
Die App wurde nach IT-Rueckmeldung gegen anonymen Zugriff abgesichert.
Neuer Stand:
- globale Authentifizierungspflicht
- produktiv vorgesehen: Windows Authentication / Active Directory
- Zugriff und Adminrechte ueber AD-Gruppen
- kein eigener App-Login
- kein versteckter produktiver Backdoor
- lokaler Development-Bypass nur bei
ASPNETCORE_ENVIRONMENT=Development
Neue/angepasste Dateien:
Program.csSecurity/SecurityOptions.csSecurity/SecurityPolicies.csSecurity/DevelopmentAuthenticationHandler.csComponents/Routes.razorComponents/_Imports.razorComponents/Layout/NavMenu.razorComponents/Layout/MainLayout.razorComponents/Pages/Settings.razorComponents/Pages/Standorte.razorComponents/Pages/Transformations.razorappsettings.jsonappsettings.Development.json
Aktuelle Default-Gruppen:
TRAFAG\TrafagSalesExporter-UsersTRAFAG\TrafagSalesExporter-Admins
Noch mit IT zu klaeren
- Exakte AD-Domain-/Gruppennamen bestaetigen
- AD-Gruppen anlegen oder bestehende Gruppen verwenden
- IIS-Zielumgebung festlegen
- Auf IIS Windows Authentication aktivieren
- Auf IIS Anonymous Authentication deaktivieren
- Sicherstellen, dass produktiv nicht
ASPNETCORE_ENVIRONMENT=Developmentgesetzt ist - Test mit einem normalen User und einem Admin-User durchfuehren
Fachliche Rollenentscheidung
Aktuell:
- Admin:
SettingsStandorteTransformations
- berechtigter User:
- Dashboard
- Management Cockpit
- Logs
Noch zu entscheiden:
- ob
Logsebenfalls Admin-only sein soll - ob Export-Buttons im Dashboard nur fuer eine eigene Rolle
Exportersichtbar sein sollen - ob Management Cockpit fuer alle berechtigten User oder nur fuer Management/Finance-Gruppen sichtbar sein soll
Verifikation
Geprueft:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal
Ergebnis:
- Build erfolgreich
- Tests erfolgreich
48/48Tests gruen- Auth-Policy-Tests fuer AccessGroup, AdminGroup und Development-Admin vorhanden
- lokaler Development-Auth-Start geprueft:
http://localhost:55416antwortet mit HTTP200
Nachtrag 2026-04-29 Management Cockpit
Seit dem 2026-04-17 wurden im Management Cockpit weitere Auswertmoeglichkeiten umgesetzt und nachtraeglich aus dem aktuellen Code rekonstruiert.
Aktueller neuer Stand:
- Summenfeld ist waehbar statt fest auf Umsatz:
Sales Price/ValueQuantityStandard costQuantity * Standard cost
- Anzeige-Waehrung ist waehbar:
EURUSDOriginal
- betragliche Werte werden ueber
CurrencyExchangeRateServiceumgerechnet - nicht-betragliche Werte wie
Quantitybleiben ohne Waehrung - fehlende Wechselkurse werden gezaehlt und in der UI/Hinweisen sichtbar
- zentrale Roh-Auswertung kann weitere Summenfelder als Zusatzspalten in Jahres-, Monats- und Tageswerten anzeigen
- dateibasierte Excel-Analyse nutzt ebenfalls Summenfeld und Anzeige-Waehrung
Betroffene Dateien:
Components/Pages/ManagementCockpit.razorModels/ManagementCockpitModels.csServices/IManagementCockpitService.csServices/ManagementCockpitPageService.csServices/ManagementCockpitService.csTrafagSalesExporter.Tests/ManagementCockpitServiceTests.cs
Neue Tests:
- Umrechnung zentraler Werte in EUR
- Wechselkurs-Cache pro Waehrung/Ziel/Datum
- Mengen-Auswertung ohne Waehrungsumrechnung
- Zusatzwerte in Zeitreihen
Jetzt sinnvoll zu pruefen
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal- Management Cockpit in der App oeffnen
- zentrale Auswertung mit
Sales Price/ValueinEURpruefen - zentrale Auswertung mit
Quantitypruefen und bestaetigen, dass keine Waehrung angezeigt wird - Zusatzfelder
QuantityundQuantity * Standard costin Jahres-/Monatswerten pruefen - Dateianalyse einer exportierten Excel mit unterschiedlichen Summenfeldern pruefen
- fachlich klaeren, ob
CHFnebenEURundUSDals Anzeige-Waehrung angeboten werden soll - fachlich klaeren, ob fehlende Wechselkurse als
0in Zielwaehrung korrekt sind oder separat ausgewiesen werden sollen
Nachtrag 2026-04-17 Refactoring-Fortschritt
Mehrere frueher als hoch priorisiert markierte Architekturpunkte sind inzwischen bereits umgesetzt.
Erledigt:
- DataSourceAdapter-Pattern fuer
HANA,SAP_GATEWAY,MANUAL_EXCEL SiteExportServicedeutlich verschlankt- Page-Services auf
Scoped DatabaseInitializationServicein Schema-/Seed-/Orchestrator-Bloecke getrenntDashboard,LogsundTransformationsvon direktemDbContext-Zugriff befreit- HANA-SQL-Injection-Pfad geschlossen
- blockierende
.GetAwaiter().GetResult()-Aufrufe im HANA-Pfad entfernt
Neuer verifizierter Stand:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimalerfolgreichdotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal36/36Tests gruen
Neue Top-Prioritaeten ab jetzt
1. Adapter- und Resolver-Tests nachziehen
Prio hoch.
Warum:
- das neue
DataSourceAdapter-Pattern ist architektonisch wichtig - genau dieser neue Schnitt hat aktuell noch keine gezielten Unit-Tests
Sinnvoll waeren:
DataSourceAdapterResolver-TestsHanaDataSourceAdapter-TestsSapGatewayDataSourceAdapter-TestsManualExcelDataSourceAdapter-Tests
2. Retry-/Robustheitslayer
Prio hoch.
Vor allem fuer:
- SharePoint
- SAP Gateway
- HANA-nahe Netzpfade
Aktuell brechen diese Integrationen bei transienten Problemen zu direkt ab.
3. Secret-Store-Konzept
Prio hoch bis mittel.
Aktuell liegen Zugangsdaten weiterhin in der App-/DB-Konfiguration. Langfristig sollte entschieden werden:
- Windows Credential Manager
- DPAPI / verschluesselte Ablage
- externer Secret Store
4. DatabaseInitializationService weiter haerten, aber nicht mehr blind gross refactoren
Prio mittel.
Der schlimmste Architekturteil ist deutlich besser als vorher. Weitere Arbeit dort sollte jetzt nur noch zielgerichtet passieren:
- Regressionstests fuer konkrete Legacy-/Repair-Zustaende
- spaeter moeglichst versionierte Migrationen
5. MudBlazor-Analyzer-Warnungen bereinigen
Prio mittel.
Nicht kritisch fuer Produktion, aber sinnvoll fuer sauberen Build:
Logs.razorTransformations.razorStandorte.razor
Was im Vergleich zu frueher nicht mehr Top-Prioritaet ist
Nicht mehr ganz oben:
- generisches weiteres Page-Service-Refactoring um des Refactorings willen
- noch mehr strukturelles Verschieben ohne Risikoreduktion
Der wirtschaftlich sinnvolle Fokus liegt jetzt eher auf:
- Absicherung
- Robustheit
- Integrationsstabilitaet
Nachtrag 2026-04-17
Der Punkt CHF-Umrechnung / Wechselkurse ist nicht mehr komplett offen.
Der aktuelle Ist-Stand ist:
CurrencyExchangeRateServiceist implementiertExchangeRateImportServiceimportiert ECB-KurseNormalizeCurrencyCodeundConvertCurrencysind 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/31Tests gruen
Was fuer Waehrungen trotzdem noch offen bleibt:
- fachlicher Einsatz der
ConvertCurrency-Regeln in echten Standortkonfigurationen pruefen - UI-Flow fuer Wechselkurspflege in
Settings.razormanuell 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
Architektur-Nachtrag 2026-04-17
Nach einer separaten Architekturpruefung wurden die naechsten Schritte neu priorisiert.
Wichtig:
- neue Fachfeatures sind aktuell nicht der erste Engpass
- zuerst muessen die Architektur-Risiken in Initialisierung, Config-Import und UI-Service-Schnitt bereinigt werden
Neue Top-Prioritaeten
1. DatabaseInitializationService absichern
Prio sehr hoch.
Gruende:
- Startlogik enthaelt manuelle Schema-Migrationen
- FK-Reparaturen laufen produktiv beim App-Start
- dort wurde ein konkretes Risiko fuer verschobene Spaltenwerte beim
Sites_old-Kopierpfad erkannt
Vor weiterer Fachentwicklung:
- Initialisierungspfad genau pruefen
- SQL-Kopierlogik validieren
- moeglichst Richtung versionierte Migrationen bewegen
2. ConfigTransferService.ImportJsonAsync neu denken
Prio sehr hoch.
Aktuelles Problem:
- Import loescht sehr viel und baut danach stueckweise neu auf
- nicht atomar
- potenziell teilzerstoerter Zustand bei Fehlern
CentralSalesRecordswerden mitimportiert/mitgeloescht, obwohl sie eher Laufzeitdaten als Konfiguration sind
Ziel:
- atomarer Import
- saubere Trennung zwischen Konfiguration und Betriebsdaten
3. Razor-Seiten entlasten
Prio hoch.
Betroffen vor allem:
Components/Pages/Settings.razorComponents/Pages/Standorte.razor
Ziel:
- DB- und Fachlogik aus UI-Code in Services / Application-Layer verschieben
- Seiten nur noch fuer Interaktion und Formularzustand
4. Konsolidierten Export semantisch klaeren
Prio mittel.
Offene Frage:
- zentrale Datei aus laufendem Snapshot oder
- zentrale Datei immer aus
CentralSalesRecords
Aktuell ist die Verantwortung unscharf.
5. Reporting verallgemeinern
Prio mittel.
Erst nach den Infrastrukturthemen:
- hartcodierte Jahreslogik im Cockpit entfernen
- fachlich entscheiden, ob und wo CHF-Rohsicht gebraucht wird
Praktische Reihenfolge fuer den naechsten Wiedereinstieg
Wenn nach erneutem Absturz oder Kontextverlust weitergemacht wird:
HANDOFF_2026-04-15.mdlesen, speziell die Architekturpruefung vom 2026-04-17DatabaseInitializationServiceals ersten Risikoblock ansehenConfigTransferService.ImportJsonAsyncals zweiten Risikoblock ansehen- erst danach wieder an Cockpit / CHF / weitere Fachfeatures gehen
Nachtrag HANA-/Standort-Workflow 2026-04-17
Der doppelte HANA-Workflow wurde inzwischen bereits bereinigt.
Neuer Stand:
- oben zentrale HANA-Konfiguration pro Quellsystem
BI1/SAGE - unten im Standort keine eigene wirksame Voll-HANA-Konfiguration mehr
- HANA-basierte Standorte ziehen ihre technische Verbindung aus der zentralen Quellsystem-Konfiguration
- Standort bleibt fuer fachliche Daten und optionale Credential-Overrides zustaendig
- die frueher doppelte HANA-UI im Standortdialog ist inzwischen auch sichtbar entfernt
- der Verbindungstest in
Settings.razorprueft und meldet jetzt die zentrale HANA-Verbindung klar
Was dazu noch praktisch geprueft werden sollte
Standorte-Seite im UI manuell durchklicken- pruefen, ob
BI1- undSAGE-Standort beim Speichern sauber auf die zentrale HANA-Konfiguration zeigen - pruefen, ob Aenderung oben bei zentraler HANA-Konfiguration in nachfolgenden Exporten wirklich greift
Anschlussarbeiten
ConfigTransferServicespaeter auf das neue zentrale HANA-Modell fachlich nachziehen und kritisch pruefenDatabaseInitializationServiceweiter konsolidieren, damit die Zuordnung alter HANA-Daten langfristig robuster wird
Nachtrag Quellsystem-Verwaltung 2026-04-17
Die bisher hart codierten Quellsystem-Listen wurden ersetzt.
Neuer Stand:
SourceSystemDefinitionist jetzt die zentrale Stammdatenquelle fuer QuellsystemeSettings.razorhat jetzt eine GUI zur Pflege von QuellsystemenStandorte.razorzieht seine Quellsystem-Auswahl aus diesen StammdatenTransformations.razorzieht die Systemauswahl ebenfalls aus diesen Stammdaten- zentrale Credentials haengen jetzt am Quellsystem selbst
- HANA-Zentralverbindungen werden nur noch fuer Quellsysteme mit Anschlussart
HANAgezeigt - alte zentrale Credential-Felder in
ExportSettingssind aus dem aktiven Codepfad entfernt ExportSettingswird beim Start auch schematisch auf das neue Feldset bereinigt- HANA speichert zentral keine eigenen Credentials mehr; dort bleiben nur technische Verbindungsdaten
HanaServer.Username/Passwordsind nur noch Laufzeitfelder und nicht mehr im EF-Schema gemappt- SAP Service URL wird jetzt zentral im Quellsystem gepflegt; der Standort haelt nur noch ein optionales Override
- Quellsysteme werden jetzt per Dialog bearbeitet statt nur ueber Inline-Tabellenfelder
Was dazu noch praktisch geprueft werden sollte
- in
Settingsein neues Quellsystem per GUI anlegen - pruefen, ob es danach in
StandorteundTransformationssofort auswählbar ist - pruefen, ob deaktivierte Quellsysteme in neuen Standort-/Regelanlagen nicht mehr normal angeboten werden
- pruefen, ob Aenderung der Anschlussart von
HANAaufSAP_GATEWAYoderMANUAL_EXCELfachlich sauber wirkt - pruefen, ob bestehende BI1/SAGE/SAP-Daten nach Startmigration korrekt in
SourceSystemDefinitionsstehen - pruefen, ob Konfiguration-Export/Import ohne die alten Credential-Felder sauber mit
SourceSystemDefinitionsarbeitet - pruefen, ob zentrale SAP Service URL ohne Override sauber fuer Refresh, Export und Dashboard greift
- pruefen, ob SAP Service URL Override am Standort die zentrale URL erwartungsgemaess uebersteuert
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 erzeugenund zentralemExcel oeffnen - Roh-Auswertung im
Management Cockpitdirekt ausCentralSalesRecords - erweitertes Transformationssystem mit
Value- undRecord-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. inAppEventLogsoderExportLogs - 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 desExportOrchestrationService - SQLite
Default TimeoutinProgram.csauf60erhoeht CentralSalesRecordServicesetzt nach den Batches explizitZentrale Tabelle aktualisiertDatabaseInitializationServicerepariert beim App-Start automatisch Tabellen, deren FK-SQL nochSites_oldreferenziert
Betroffene Dateien:
Program.csComponents/Pages/Dashboard.razorServices/CentralSalesRecordService.csServices/DatabaseInitializationService.cs
3. Was noch getestet werden sollte
Kurz gegenpruefen:
- Export eines Standorts erneut
Excel oeffnennach erfolgreichem ExportExport erfolgreichinkl.Pfad=...- Dashboard-Live-Status setzt sich nach Abschluss sauber zurueck
Alle exportierenZentrale Datei neu erzeugen- zentrale Datei im Dashboard oeffnen
3a. Manuellen Excel-Import pruefen
Zu testen:
- Standort auf
MANUAL_EXCELstellen - Excel im Standort hochladen
- Standort exportieren
- pruefen, ob
CentralSalesRecordsfuer diesen Standort ersetzt wurden - pruefen, ob der zentrale Export den Standort korrekt enthaelt
Dateien:
Components/Pages/Standorte.razorServices/ManualExcelImportService.csServices/SiteExportService.cs
3b. HANA-Schema-Lookup pruefen
Zu testen:
- bei
BI1-StandortSchemas laden - bei
SAGE-StandortSchemas 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.razorServices/HanaQueryService.cs
4. Falls wieder ein Fehler auftritt
In dieser Reihenfolge pruefen:
- Exakte Fehlermeldung aus
AppEventLogsbzw. Console notieren - Pruefen, ob die Reparaturlogik beim Start gelaufen ist
- Pruefen, ob noch weitere Tabellen mit veralteter FK-Referenz existieren
- Erst danach wieder am Batch-/Commit-Pfad der zentralen Speicherung arbeiten
5. SAP-Funktionalitaet kurz gegenpruefen
Zu testen:
Quellen refreshenFelder aus Quellen ladenAuto-Match- SAP-Export eines Standorts
Dateien:
Components/Pages/Standorte.razorServices/SapGatewayService.csServices/SapCompositionService.cs
6. Management Cockpit pruefen
Zu testen:
- vorhandene Excel-Datei auswaehlbar
- Analyse laeuft
- Kennzahlen plausibel
- Roh-Auswertung aus
CentralSalesRecordslaeuft - Jahr/Monat-Filter funktionieren
- Summen nach Quelle / Land plausibel
Dateien:
Components/Pages/ManagementCockpit.razorServices/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/31Tests gruen
7. Referenzdatei
Fuer den vollstaendigen Kontext zuerst lesen:
HANDOFF_2026-04-15.md
8. Letzte bereinigte UI-Irritation
Stand 2026-04-17:
- In
Standortewurde die obere Box aufZentrale HANA-Technikgeklaert. - Dort gibt es keinen
Server hinzufuegen-Pfad mehr. - Grund: zentrale HANA-Eintraege werden aus
Quellsystemenmit AnschlussartHANAabgeleitet. SAPgehoert fachlich nicht in diese Box, sondern inSettings -> Quellsysteme.
Wichtig fuer den naechsten Wiedereinstieg:
- Wenn ein Benutzer fragt
wo ist SAP?, ist die richtige Antwort: nicht in der HANA-Box, sondern in der zentralen Quellsystem-Verwaltung. - Wenn ein HANA-System oben fehlt, zuerst
Settings -> Quellsystemepruefen und dort AnschlussartHANAsetzen.
9. Config-Transfer erneut geprueft
Stand 2026-04-17:
- Der aktuelle Config-Import/-Export passt zum neuen Datenmodell.
- Zentral verwaltete Quellsysteme, SAP-Zentral-URL, HANA-Technik ohne HANA-Credentials und Standort-Overrides werden korrekt im Transferformat abgebildet.
- Die vorhandenen
ConfigTransferServiceTestsbestaetigen den aktuellen Rundlauf.
Fuer den naechsten Wiedereinstieg wichtig:
- Das aktuelle Format ist fuer heutige Exporte konsistent.
ImportJsonAsyncist aber weiterhin nicht atomar und loescht zuerst produktive Konfiguration.- Zusaetzlich gibt es ein Altformat-Risiko:
- aeltere JSONs mit
SourceSystemDefinitions, aber ohneConnectionKind, koennen wegen DTO-Default falsch alsHANAinterpretiert werden.
- aeltere JSONs mit
Naechste saubere Haertung fuer dieses Thema:
- Config-Import transaktional machen
- Legacy-Fallback fuer fehlendes
ConnectionKindeinbauen