22 KiB
Last Change 2026-05-04
SAP OData / ZSCHWEIZ / HANA Mapping 2026-05-07
Aktueller Entscheid:
ZSCHWEIZwird nicht direkt als SAP-HANA-Spezialfall gelesen.ZSCHWEIZwird ueber den bestehenden SAP-OData/Gateway-Pfad gelesen.- Der grafische Quellen- und Feldmapper bleibt dafuer aktiv.
- Feldinfos muessen nicht hart codiert werden, solange der Gateway-Service
$metadatafuer das EntitySet liefert.
Quellsystem-Namen wurden zur Entwirrung geschaerft:
- Code
SAPbleibt technisch bestehen, DisplayName ist jetztSAP OData. - Code
SAP_HANAbleibt fuer direkte HANA-Tabellen/Views bestehen, DisplayName ist jetztSAP HANA Tables/Views. - Bestehende Konfigurationen bleiben dadurch kompatibel.
Seed / Vorkonfiguration:
- Standort
ZSCHWEIZ/ LandSchweiz/Oesterreichwird als inaktiver Standort angelegt bzw. repariert. SourceSystem = SAP.- Quelle: Alias
Z, EntitySetZSCHWEIZSet. - Mapping ist grafisch editierbar und wird auf die Felder der Tabelle
ZSCHWEIZgesetzt. - Die Seed-/Repair-Logik zieht Quelle und Mapping auch bei bereits vorhandener ZSCHWEIZ-Konfiguration nach; manuelles Mapping ist nur noetig, wenn die Gateway-Feldnamen vom erwarteten
ZSCHWEIZ-Layout abweichen.
Wichtig fuer die UI:
- App neu starten, damit Seed/Repair laeuft.
Settings -> Quellsysteme:SAPsollte alsSAP ODataerscheinen.Standorte -> ZSCHWEIZ:- Quellsystem
SAP OData (SAP) - SAP Service URL Override auf den finalen OData-Service fuer
ZSCHWEIZsetzen, falls die zentrale SAP-URL noch aufZPOWERBI_EINKAUF_SRVzeigt. Entity Sets refreshen.- Quelle
Zsoll aufZSCHWEIZSetzeigen. Felder aus Quellen laden.- Mapping kontrollieren.
- Quellsystem
ABAP / SAP:
- ABAP-Report liegt in
report.abap. - Report fuellt Tabelle
ZSCHWEIZaus Buchungskreis1100= Schweiz und1200= Oesterreich. LAND1ist Reporting-Land aus Buchungskreis.CUSTOMER_LANDist Kundenland ausKNA1-LAND1.- Upsert erfolgt per
MODIFY zschweiz FROM TABLE.
Letzte technische Verifikation:
dotnet build .\TrafagSalesExporter.csproj --no-restore -p:UseAppHost=false --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --no-restore --verbosity minimal
Ergebnis:
- Build erfolgreich
- Tests erfolgreich,
50/50
Finance-Abgrenzung: Antworten Andreas 2026-05-07
Fachliche Vorgabe nach Rueckmeldung:
- Net Sales Actuals werden in Hauswaehrung gerechnet.
- Massgebend ist der Nettofakturawert.
- Umrechnung nach CHF erfolgt mit Budgetkursen, nicht mit Tageskursen.
- Umrechnung/Summierung soll pro Artikel bzw. Belegposition erfolgen.
- Indien wird in INR betrachtet.
- Italien wird in Hauswaehrung betrachtet; Intercompany-/2nd-party-Abgrenzung wird separat angeschaut.
- UK wird in GBP betrachtet.
- Gutschriften haben eigene Rechnungsnummern/Rechnungspositionen und sollen ueber Artikelnummern/Positionen behandelt werden.
- Intercompany soll im zweiten Schritt als 2nd-party/3rd-party-Klassifikation pflegbar werden.
- Genannte 2nd-party/Intercompany-Indikatoren: Trafag, Magnetic Sense/Magnets Sense, Gesellschaft fuer Sensorik; Nummern/Uebersetzungen koennen je Land abweichen.
Budgetkurse 2025 fuer CHF-Ausweis:
USD/CHF = 0.85
EUR/CHF = 0.95
GBP/CHF = 1.13
CHF/INR = 90.91
CHF/CZK = 25.64
PLN/CHF = 0.22
CHF/JPY = 156.25
Umsetzung in der FinanceProbe:
- Auswahl der Ist-Variante bevorzugt nun
Nettofakturawert Hauswaehrung(DocTotal - VatSum). Sales Price/Valuebleibt als Vergleichsvariante sichtbar.- Zusaetzlicher Kandidat
Nettofakturawert Hauswaehrung -> CHF Budget 2025. - Referenz in der Oberflaeche wird als
check.xlsx Sollwertbezeichnet, nicht mehr als fuehrende Power-BI-Referenz. - Intercompany-Anzeige wurde fachlich als
2nd-party/ICbeschriftet; dauerhafte Pflege als eigenes Auswahlfeld ist noch offen.
Finance Probe / Sales-Abgrenzung
Ziel der heutigen Arbeit:
- separate kleine Pruef-GUI fuer Finanz-/Sales-Abgrenzungen bauen
- moeglichst viel Logik aus dem Hauptprogramm wiederverwenden
- verschiedene Summenlogiken pro Land nebeneinander sichtbar machen
- gegen
check.xlsxvergleichen
Wichtiges fachliches Verstaendnis nach Klaerung im Chat:
check.xlsxkommt von Rhino und enthaelt die Soll-Zahlen von Andreas.- Aus den Landessystemen kommt der Ist-Wert.
- Power BI soll in der fachlichen Kommunikation nicht als fuehrende Referenz genannt werden.
- Ziel ist nicht, zufaellig die passendste technische Variante zu nehmen, sondern je Land/System die fachlich korrekte Abgrenzungslogik zu klaeren.
Commit
Rollback-Commit fuer die Finance-Probe wurde erstellt:
15dec06 Add finance reconciliation probe
Dieser Commit enthaelt gezielt:
Services/FinanceReconciliationService.csTools/FinanceProbe/FinanceProbe.csprojTools/FinanceProbe/Program.cs- DI-Registrierung in
Program.cs - Dashboard nutzt den ausgelagerten Finance-Service
TrafagSalesExporter.csprojschliesstTools/**aus dem Hauptprojekt ausTrafagSalesExporter.slnenthaelt das neue Tool-Projekt
Andere bereits vorhandene Worktree-Aenderungen wurden nicht mitcommitted.
Neues Tool
Neues separates Probe-GUI:
Tools/FinanceProbe
Start:
dotnet run --project Tools\FinanceProbe\FinanceProbe.csproj --urls http://localhost:55417
URL:
http://localhost:55417/finance
Aktueller Start im Chat:
- Probe-GUI wurde auf
localhost:55417gestartet - HTTP
200bestaetigt
Hinweis Netzwerk:
- Start mit
localhostist nur lokal auf dem Laptop erreichbar. - Andere im Trafag-Netz koennen es so normalerweise nicht ueber Laptop-IP oeffnen.
- Fuer Netzwerkzugriff waere
http://0.0.0.0:55417noetig. - Probe-GUI hat aktuell keine Authentifizierung, daher nicht unkontrolliert im Netzwerk freigeben.
FinanceReconciliationService
Neue wiederverwendbare Logik:
Services/FinanceReconciliationService.cs
Interface:
IFinanceReconciliationService
Aktuelle Funktion:
Task<List<NetSalesReferenceRow>> BuildNetSalesReferenceRowsAsync(int year = 2025)
Logik:
- liest
CentralSalesRecords - filtert Jahr ueber
InvoiceDate, fallbackExtractionDate - gruppiert pro Referenz-Key/Land
- berechnet Kandidaten:
SalesPriceValueDocTotalFC - VatSumFCDocTotal - VatSum
- Belegkopfwerte werden vor Summierung dedupliziert:
- bevorzugt
TSC + DocumentType + DocumentEntry - fallback
TSC + DocumentType + InvoiceNumber
- bevorzugt
- erkennt aktuell Intercompany nur pragmatisch fuer IT/TRIT anhand bekannter Kunden
- liefert pro Kandidat Wert, Waehrung, IC-Wert, Differenzen
FinanceProbe Darstellung
Die Tabelle zeigt aktuell:
- Status
- Firma
- gewaehlte Abgrenzung
- Ist-Waehrung
- Ist 2025
- Referenz-Waehrung
- Referenz
- Excel LC
- Excel CHF
- Excel Power BI
- Excel Status
- Differenz
- Differenz ohne IC
- Waehrung
- Zeilen
- Varianten aufklappbar
Wichtig:
- Die Bezeichnung
Power BIist in der Probe-Oberflaeche noch sichtbar, weilcheck.xlsxdiese Spalte enthaelt. - Fachlich soll in Kommunikation gegen Andreas aber
check.xlsx/ Soll-Zahl genannt werden, nicht Power BI als fuehrende Referenz. - Eine sinnvolle naechste UI-Bereinigung waere, die Spalte/Labels in der Probe auf
Excel SollwertoderRhino Sollwertumzubenennen.
Probe-Output vom 2026-05-04 09:55
Zusammenfassung:
8 Standorte
4 OK
1 Pruefen
3 Keine Daten
Excel-Referenzen gelesen: 17
Befunde:
CH
- Keine Ist-Daten
- keine sichtbare Soll-Zahl
DE
- Keine Ist-Zeilen aus Systemdaten
- Soll/LC aus Excel vorhanden:
- Referenz ca.
3'635'923 - Excel LC
3'635'922.91 - Excel CHF
3'407'000.00
- Referenz ca.
Offen:
- Quelle fuer DE klaeren
- evtl. MANUAL_EXCEL oder noch nicht exportiert
ES
- Keine Ist-Zeilen aus Systemdaten
- Soll/LC aus Excel vorhanden:
- Referenz ca.
3'102'334 - Excel LC
3'102'333.61 - Excel CHF
2'907'000.00
- Referenz ca.
Offen:
- Quelle fuer ES klaeren
- evtl. MANUAL_EXCEL oder noch nicht exportiert
FR
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
EUR - Ist:
1'471'218.44 - Soll/Referenz:
1'471'218.00 - Differenz:
0.44 - Zeilen:
1649
Befund:
- FR passt praktisch exakt mit
Sales Price/Valuein EUR.
Offene Frage an Andreas:
- Ist
Sales Price/Valuein EUR fuer FR fachlich korrekt?
IN
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrungen:
CHF, EUR, GBP, INR, JPY, USD - Ist:
750'936'591.38 - Soll/Referenz:
750'936'591.00 - Differenz:
0.38 - Zeilen:
4000
Befund:
- IN passt rechnerisch fast exakt, aber Waehrungen sind gemischt.
Offene Frage an Andreas:
- Ist diese gemischte Summe fachlich korrekt?
- Oder muss nach CHF umgerechnet bzw. nach Waehrung getrennt werden?
IT
- Status Pruefen
- gewaehlte Abgrenzung:
DocTotal - VatSum - Ist-Waehrung:
EUR - Ist:
11'866'896.53 - Soll/Referenz LC:
7'669'840.00 - Differenz:
4'197'056.53 - Differenz ohne IC:
3'733.67 - Zeilen:
15883
Befund:
- IT liegt ohne IC-Abzug stark daneben.
- Mit erkanntem IC-Abzug ist die Differenz sehr klein.
Offene Frage an Andreas:
- Soll IT mit Intercompany-Abzug gerechnet werden?
- Falls ja: nach welchen Kunden/Kriterien erkennt Finance Intercompany?
UK
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
USD - Ist:
3'749'865.33 - Soll/Referenz:
3'749'865.00 - Differenz:
0.33 - Zeilen:
942
Befund:
- UK passt praktisch exakt mit
Sales Price/Valuein USD.
Offene Frage an Andreas:
- Ist USD fuer UK korrekt?
- Oder muss fuer offizielles Reporting nach CHF umgerechnet werden?
US
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
USD - Ist:
3'749'865.33 - Soll/Referenz:
3'749'865.00 - Differenz:
0.33 - Zeilen:
942
Befund:
- US zeigt denselben Ist-Wert wie UK.
- Das wirkt auffaellig und sollte fachlich/technisch geprueft werden.
Offene Frage:
- Welche Quelle und Logik ist fuer US korrekt?
- Ist US im aktuellen System richtig zugeordnet?
Word-Datei fuer Andreas
Erstellt:
FINANZ_OFFENE_FRAGEN_ANDREAS.docx
Inhalt:
- kurze Mail an Andreas
check.xlsxals Soll-Zahl von Andreas/Rhino formuliert- Power BI fachlich nicht als Referenz genannt
- bisherige Befunde pro Land:
- FR
- IN
- IT
- UK
- US
- DE / ES
- offene Fragen zu:
- Waehrung und CHF-Umrechnung
- Umsatzdefinition
- Periodenabgrenzung
- Gutschriften/Storno
- Intercompany
- Entscheid-Tabelle pro Land
Markdown-Datei fuer Andreas
Erstellt/angepasst:
FINANZ_FRAGEN_ANDREAS.md
Aktuelle Formulierung:
check.xlsxkommt von Rhino und enthaelt Soll-Zahlen von Andreas.- Landessysteme liefern Ist-Werte.
- offen ist, welche fachliche Logik pro Land/System zur Soll-Zahl fuehren soll.
- Power BI ist nicht mehr als fuehrende Referenz formuliert.
Verifikation
Ausgefuehrt:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal
Ergebnis:
- Hauptprojekt baut erfolgreich
- FinanceProbe baut erfolgreich
- Tests erfolgreich
48/48Tests gruen
Bekannte Warnungen:
NU1900im Probe-Build, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten- bekannte MudBlazor Analyzer-Warnungen zu
Dense
Offene sinnvolle naechste Schritte
- In der Probe-UI
Power BI-Labels fachlich bereinigen:- z. B.
Excel Sollwert/Rhino Sollwert
- z. B.
- Andreas' Antworten in eine Konfiguration ueberfuehren:
- Land/System
- Summenlogik
- System-Waehrung
- CHF-Umrechnung ja/nein
- Periodendatum
- IC-Regel
- DE/ES Quelle klaeren:
- aktuell keine Ist-Daten
- US/UK Doppelwert pruefen:
- US zeigt denselben Ist-Wert wie UK
- IT Intercompany-Regel fachlich bestaetigen
- Wenn Regeln bestaetigt sind:
- Finance-Probe erweitert anzeigen
- spaeter produktiv ins Hauptprogramm uebernehmen
Nachtrag 2026-05-04: Excel-Spaltenmapper fuer manuelle Land-Excel-Dateien
Ausloeser:
- Deutschland hat ein eigenes Excel-Beispiel geliefert.
- Das Format entspricht nicht dem bisherigen Standard-Excel-Import.
- Ziel war, nicht fuer jedes Land statischen Spezialcode zu schreiben, sondern die Spaltenzuordnung konfigurierbar zu machen.
Beispielhafte deutsche Spalten:
Export-DatumFirmaBelegnummerPositionArtikelBezeichnungWarengruppen-BezeichnungAnz. VELieferanten NummerName LieferantLand LieferantAdressNummer-KundeName KundeLand KundeBrancheEinstandsPreisWährungBestellNummerNettoPreisEinzelXNettoPreisGesamtXVersandbedingungAdressNummer_VBelegdatum-RechnungBelegDatum AuftragArtikelNummer
Wichtige fachliche/technische Interpretation fuer Deutschland:
NettoPreisGesamtXwird alsSalesPriceValueverwendet.Währungwird fuerSalesCurrency,DocumentCurrency,CompanyCurrencyundStandardCostCurrencyverwendet.Belegdatum-Rechnungwird alsInvoiceDateverwendet.BelegDatum Auftragwird alsOrderDateverwendet.ArtikelNummerwird alsMaterialverwendet.- Kommentar-/Info-Zeilen ohne echte Position und ohne Betrag werden beim Import ignoriert.
Neue Datenstruktur
Neue Tabelle / neues Model:
ManualExcelColumnMappings
Models/ManualExcelColumnMapping.cs
Felder:
SiteIdTargetFieldSourceHeaderIsRequiredIsActiveSortOrder
Zweck:
- Pro Standort kann festgelegt werden, welche Excel-Spalte auf welches internes
SalesRecord-Feld gemappt wird. - Konstanten sind moeglich, wenn
SourceHeadermit=beginnt, z. B.=Manual Excel.
Geaenderte Hauptlogik
Geaendert:
Services/ManualExcelImportService.cs
Neue Logik:
- Beim manuellen Excel-Import werden zuerst aktive
ManualExcelColumnMappingsdes Standorts geladen. - Wenn Mapping-Zeilen vorhanden sind, wird dieses Mapping verwendet.
- Wenn kein Mapping vorhanden ist, laeuft weiterhin die bisherige statische Standarderkennung.
- Damit bleiben bestehende manuelle Excel-Imports abwaertskompatibel.
Wichtig:
- Der Mapper ersetzt nicht die fachliche Finanzlogik.
- Er sorgt nur dafuer, dass fremde Excel-Spalten korrekt in die internen Felder geschrieben werden.
- Welche Summe spaeter fuer Finance gilt, muss weiterhin fachlich entschieden werden.
Geaenderte Standort-UI
Geaendert:
Components/Pages/Standorte.razor
Services/StandortePageService.cs
In der Standortbearbeitung fuer manuelle Excel-Standorte gibt es neu:
- Bereich
Excel-Spaltenmapping - Button
Spalten aus Excel laden - Button
Auto-Match - Button
Mapping hinzufuegen - Tabelle mit:
- Zielfeld
- Excel-Spalte / Konstante
- Pflicht
- Aktiv
- Loeschen
Auto-Match erkennt aktuell u. a. die deutschen Spalten und schlaegt passende Zuordnungen vor.
Config-Export / Import
Geaendert:
Services/ConfigTransferService.cs
Models/ConfigTransferPackage.cs
Neu:
ManualExcelColumnMappingswerden im Konfigurationspaket mit exportiert.- Beim Import werden die Mapping-Zeilen wieder hergestellt.
Damit kann die Konfiguration spaeter zwischen Umgebungen mitgenommen werden.
Datenbank-Schema
Geaendert:
Data/AppDbContext.cs
Services/DatabaseInitializationService.SchemaSql.cs
Services/DatabaseSchemaMaintenanceService.cs
Neu:
DbSet<ManualExcelColumnMapping>CREATE TABLE ManualExcelColumnMappings- Schema-Wartung legt die Tabelle nachtraeglich an, falls sie in einer bestehenden DB fehlt.
- Beim Loeschen eines Standorts werden dessen manuelle Excel-Mappings mit geloescht.
Deutschland lokal eingerichtet
Am 2026-05-04 wurde Deutschland in der lokalen Datenbank direkt ohne UI eingerichtet.
Lokale DB:
C:\Users\koi\source\repos\Ai\TrafagSalesExporter\trafag_exporter.db
Gefundener/konfigurierter Standort:
Id=8
TSC=TRDE
Land=Deutschland
SourceSystem=MANUAL_EXCEL
Aktive Mapping-Zeilen:
26
Konkrete Zuordnung fuer DE:
ExtractionDate <- Export-Datum
InvoiceNumber <- Belegnummer
PositionOnInvoice <- Position
Material <- ArtikelNummer
Name <- ArtikelBezeichnung
ProductGroup <- Warengruppen-Bezeichnung
Quantity <- Anz. VE
SupplierNumber <- Lieferanten Nummer
SupplierName <- Name Lieferant
SupplierCountry <- Land Lieferant
CustomerNumber <- AdressNummer-Kunde
CustomerName <- Name Kunde
CustomerCountry <- Land Kunde
CustomerIndustry <- Branche
StandardCost <- EinstandsPreis
StandardCostCurrency <- Währung
PurchaseOrderNumber <- BestellNummer
SalesPriceValue <- NettoPreisGesamtX
SalesCurrency <- Währung
DocumentCurrency <- Währung
CompanyCurrency <- Währung
Incoterms2020 <- Versandbedingung
SalesResponsibleEmployee <- AdressNummer_V
InvoiceDate <- Belegdatum-Rechnung
OrderDate <- BelegDatum Auftrag
DocumentType <- =Manual Excel
Wichtig fuer Rollback/Umzug:
- Diese DE-Einrichtung wurde direkt in
trafag_exporter.dbgespeichert. - Die DB-Aenderung ist kein Git-Commit-Inhalt, weil SQLite-Datenbankdaten normalerweise nicht sauber versioniert werden.
- Der Code fuer den Mapper ist aktuell im Worktree vorhanden, aber noch nicht committed.
- Wenn die DB zurueckgerollt oder neu erstellt wird, muss das DE-Mapping erneut ueber die UI, Config-Import oder ein Hilfsskript eingerichtet werden.
Tests
Ergaenzt:
TrafagSalesExporter.Tests/ManualExcelImportServiceTests.cs
Neuer Test:
ReadSalesRecordsAsync_Uses_Configured_Manual_Excel_Mapping_For_German_Headers
Der Test prueft:
- deutsches Excel-Headerformat
- Kommentarzeile ohne echte Position wird ignoriert
- echte Belegposition wird importiert
NettoPreisGesamtXmit Schweizer Tausenderzeichen wird korrekt als Dezimalzahl gelesen- Waehrung
EURwird in Sales-/Document-/Company-Currency uebernommen - Rechnungsdatum und Auftragsdatum werden korrekt gelesen
Letzter bekannter Teststand nach Mapper-Arbeit:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal --no-restore
Ergebnis:
- Hauptprojekt baut erfolgreich
- FinanceProbe baut erfolgreich
- Tests erfolgreich
49/49Tests gruen
Bekannte Warnung:
NU1900, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten
Aktueller Laufstand
Die Haupt-App war nach der DE-Konfiguration erreichbar:
http://localhost:55416/standorte
HTTP 200
Hinweis:
- Der Browser kann geschlossen sein, waehrend der Serverprozess weiterlaeuft.
- Wenn ein Build wegen gesperrter Dateien fehlschlaegt, zuerst den laufenden
TrafagSalesExporter-Prozess beenden.
Noch offen nach Excel-Spaltenmapper
- Mapper-Code committen, sobald der aktuelle Stand als Rollback-Punkt gesichert werden soll.
- In der Standort-UI Deutschland oeffnen und visuell pruefen, ob die 26 Mapping-Zeilen angezeigt werden.
- Mit echtem DE-Excel einen Importlauf testen.
- Danach Finance-Probe erneut pruefen:
- ob DE nicht mehr
Keine Datenist - ob
SalesPriceValuegegen Soll auscheck.xlsxpasst
- ob DE nicht mehr
- Falls weitere Laender eigene Excel-Formate liefern:
- nicht statischen Code bauen
- neues Mapping pro Standort pflegen
- Klaeren, ob DE fachlich
NettoPreisGesamtXin EUR als Ist-Wert verwenden soll oder ob CHF-Umrechnung noetig ist.
Nachtrag 2026-05-05: FinanceProbe Ampel, Spanien v2 und Deutschland-Beispielfile
FinanceProbe Management-Ansicht
Das Testprogramm Tools/FinanceProbe wurde fuer das Finance-Meeting erweitert.
URL lokal:
http://localhost:55417/finance
Neue Ansicht:
Meeting Ampel 2025- Ampel pro Land:
- Gruen: Zahl passt rechnerisch gegen Referenz
- Gelb: Differenz oder fachliche Abgrenzung offen
- Grau: keine belastbaren Importdaten
- Anzeige pro Land:
- Ist
- Soll / Referenz
- Differenz
- passender technischer Wert
- Waehrung / CHF-Hinweis
- kurze fachliche Begruendung
Wichtig zur Waehrung:
- Wenn Quelle
CHFliefert, kann CHF direkt gezeigt werden. - Wenn Quelle
EUR,USD,GBP,INRusw. liefert, ist es Mandanten-/Originalwaehrung. - CHF-Ausweis braucht dann eine separate FX-Regel bzw. offiziellen Umrechnungskurs.
Spanien v2 im Testprogramm
Spanien wird im FinanceProbe nicht mehr nur als normaler Zentralimport betrachtet.
Direkter CSV-Check:
sagespain/v2/Spain_Sales_2025.csv
Gelesene Werte:
- Zeilen:
4'341 - Ist 2025 /
SalesPriceValue:3'082'320.18 - Waehrung:
EUR - Soll aus
check.xlsx:3'102'333.61 - Differenz:
-20'013.43
Status:
- Ampel: Gelb / Pruefen
- Grund: Export technisch lesbar, aber Differenz zu
check.xlsxoffen.
Offen fuer Spanien:
- korrekte Datumsabgrenzung (
FechaFacturavs. Alternativen) - Serien
REG,LAT,PRO,REC - Behandlung von Gutschriften /
REC - offizielle Sage-Auswertung mit identischem Filter zur Sollzahl
Deutschland-Beispielfile
Neues File im Projektordner:
DE_Beispiel_Export_Daten.xlsx
Hinweis:
- Der Benutzer hatte zuerst
.xlsgenannt, vorhanden ist.xlsx. - Das File ist als Beispielfile zu behandeln, nicht als finale Jahresdatei.
Technischer Check:
- relevante Spalte:
NettoPreisGesamtX - Mapping-Ziel:
SalesPriceValue - Betragszeilen:
2 - Summe
NettoPreisGesamtX:8'290.70 - Waehrung:
EUR
Einbau im FinanceProbe:
- eigener Abschnitt
Germany Excel sample check - zeigt Datei, Zeilenzahl, Summe und Referenz aus
check.xlsx - markiert explizit, dass die Differenz nur Sample-Charakter hat
- in der Management-Ampel wird Deutschland weiter nicht als OK gewertet, solange kein finaler DE-Jahresexport/import vorliegt
Fachliche Interpretation fuer Deutschland:
- Das Mapping funktioniert technisch.
NettoPreisGesamtXkann als Kandidat fuerSalesPriceValuegelesen werden.- Das Beispielfile darf nicht gegen die Jahresreferenz
3'635'922.91als finale Ist-Zahl verwendet werden. - Fuer das Meeting ist die Aussage:
- Deutschland-Format ist technisch verstanden.
- Finale DE-Zahl fehlt noch.
- Benoetigt wird ein vollstaendiger DE-Jahresfile 2025 oder ein bestaetigter Importlauf.
Verifikation 2026-05-05
Ausgefuehrt:
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 liefert
HTTP 200 - FinanceProbe enthaelt:
Meeting Ampel 2025Spain CSV direct checkGermany Excel sample check