Document workflow deltas and clean up docs
This commit is contained in:
@@ -79,7 +79,7 @@ Beobachtung:
|
|||||||
|
|
||||||
## Export v2
|
## Export v2
|
||||||
|
|
||||||
Finaler Export-Kandidat wurde mit `SageSpainFinalExportPackage.zip` bzw. danach `v2.zip` erstellt.
|
Finaler Export-Kandidat wurde mit `SageSpainFinalExportPackage.zip` bzw. danach `v2.zip` erstellt; aktueller Paketordner im Repo: `SageSpainExportPackage/SageSpainFinalExportPackage/`.
|
||||||
|
|
||||||
Script:
|
Script:
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,67 @@
|
|||||||
# Deployment / IIS Handoff 2026-05-19
|
# Deployment / IIS Handoff 2026-05-19
|
||||||
|
|
||||||
Letzter Nachtrag: 2026-05-29
|
Letzter Nachtrag: 2026-06-10
|
||||||
|
|
||||||
|
## Nachtrag 2026-06-10 Deploy India / SAGE HANA Mapping
|
||||||
|
|
||||||
|
Durchgefuehrt:
|
||||||
|
|
||||||
|
- Release-Publish aus `TrafagSalesExporter` nach:
|
||||||
|
|
||||||
|
```text
|
||||||
|
\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\
|
||||||
|
```
|
||||||
|
|
||||||
|
- Befehl:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
dotnet publish .\TrafagSalesExporter.csproj -c Release --no-restore /p:PublishProfile=FolderProfile --verbosity minimal
|
||||||
|
```
|
||||||
|
|
||||||
|
- App wurde fuer Publish und DB-Seed kurz per `app_offline.htm` gestoppt und danach wieder online geschaltet.
|
||||||
|
|
||||||
|
Deploy-Inhalt:
|
||||||
|
|
||||||
|
- Seed-Reparatur fuer India/TRIN:
|
||||||
|
- Standort `TRIN` / `Indien`
|
||||||
|
- `SourceSystem = SAGE`
|
||||||
|
- Schema `TRAFAG_LIVE`
|
||||||
|
- zentraler SAGE-HANA-Server `20.197.20.60:30015`
|
||||||
|
- Vorhandene Standort-Credentials bleiben erhalten; der produktive TRIN-Override nutzt `TRAFAGCONTROLS`.
|
||||||
|
- Regressionstest fuer die alte Drift-Konfiguration: TRIN auf BI1, India-Server ohne SourceSystem, leerer SAGE-Server.
|
||||||
|
|
||||||
|
Share-/DB-Pruefung:
|
||||||
|
|
||||||
|
- `BiDashboard.dll` Zeitstempel nach Deploy: `10.06.2026 08:20:25`.
|
||||||
|
- `app_offline.htm` wurde entfernt.
|
||||||
|
- Server-DB-Backup vor Seed:
|
||||||
|
|
||||||
|
```text
|
||||||
|
\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak
|
||||||
|
```
|
||||||
|
|
||||||
|
- Server-DB nach Seed:
|
||||||
|
- `TRIN -> SAGE -> 20.197.20.60:30015`
|
||||||
|
- Schema `TRAFAG_LIVE`
|
||||||
|
- User-Override `TRAFAGCONTROLS`
|
||||||
|
- Passwort-Override vorhanden
|
||||||
|
|
||||||
|
Validierung:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal
|
||||||
|
```
|
||||||
|
|
||||||
|
Ergebnis:
|
||||||
|
|
||||||
|
```text
|
||||||
|
84/84 Tests gruen
|
||||||
|
```
|
||||||
|
|
||||||
|
Einschraenkung:
|
||||||
|
|
||||||
|
- Kein echter India-HANA-Verbindungstest von der Entwicklungsmaschine aus.
|
||||||
|
- Lokaler `Invoke-WebRequest` gegen `https://trch-webapp-bidashboard.trafagch.local/BiDashboard/` scheitert weiterhin am bekannten lokalen TLS-/Empfangsproblem; Publish und Share-/DB-Pruefung waren erfolgreich.
|
||||||
|
|
||||||
## Nachtrag 2026-05-29 Deploy Sparten-Finanzanalyse
|
## Nachtrag 2026-05-29 Deploy Sparten-Finanzanalyse
|
||||||
|
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ Exportskripte:
|
|||||||
|
|
||||||
```text
|
```text
|
||||||
scripts/Export-SageSpainSalesCsv.ps1
|
scripts/Export-SageSpainSalesCsv.ps1
|
||||||
SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1
|
SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1
|
||||||
```
|
```
|
||||||
|
|
||||||
Sage-SQL-Formel im Export:
|
Sage-SQL-Formel im Export:
|
||||||
@@ -555,6 +555,6 @@ Services/DatabaseSeedService.cs
|
|||||||
FinanceReference-Sollwerte, UK Mapping, ZSCHWEIZ Mapping, Default-Waehrungen
|
FinanceReference-Sollwerte, UK Mapping, ZSCHWEIZ Mapping, Default-Waehrungen
|
||||||
|
|
||||||
scripts/Export-SageSpainSalesCsv.ps1
|
scripts/Export-SageSpainSalesCsv.ps1
|
||||||
SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1
|
SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1
|
||||||
Spanien Sage SQL Export und Gutschrift-Logik
|
Spanien Sage SQL Export und Gutschrift-Logik
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
# Finance Dashboard Todo
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Historische Todo-Liste, fuer RAG komprimiert.
|
|
||||||
|
|
||||||
Aktueller Finance-Kontext steht in `docs/rag/FINANCE.md`.
|
|
||||||
|
|
||||||
Volltext bei Bedarf:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
@@ -4,6 +4,8 @@ Stand: 2026-06-08
|
|||||||
|
|
||||||
Zweck: Diese Notiz beschreibt den tatsaechlichen technischen Datenfluss im Finance Cockpit: wo Daten geholt werden, wann Felder veraendert werden, wann Wechselkurse wirken, wie die zentrale Excel entsteht und welche Quelle die Sparteninformationen liefert.
|
Zweck: Diese Notiz beschreibt den tatsaechlichen technischen Datenfluss im Finance Cockpit: wo Daten geholt werden, wann Felder veraendert werden, wann Wechselkurse wirken, wie die zentrale Excel entsteht und welche Quelle die Sparteninformationen liefert.
|
||||||
|
|
||||||
|
Fokus nur Wechselkurs/Kursanwendung: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`.
|
||||||
|
|
||||||
## Kurzfazit
|
## Kurzfazit
|
||||||
|
|
||||||
- Finance Summary, Management Analyse und Spartenanalyse lesen nicht aus dem SharePoint-Excel, sondern direkt aus der App-Datenbank `CentralSalesRecords`.
|
- Finance Summary, Management Analyse und Spartenanalyse lesen nicht aus dem SharePoint-Excel, sondern direkt aus der App-Datenbank `CentralSalesRecords`.
|
||||||
@@ -213,6 +215,8 @@ INSERT neue Records fuer diesen Standort
|
|||||||
|
|
||||||
Es gibt drei getrennte Faelle.
|
Es gibt drei getrennte Faelle.
|
||||||
|
|
||||||
|
Detail nur zum Kursfluss vom Land bis zur zentralen Dashboard-Analyse: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`.
|
||||||
|
|
||||||
### 1. Standard-Finance-Soll/Ist und Finance Summary
|
### 1. Standard-Finance-Soll/Ist und Finance Summary
|
||||||
|
|
||||||
Kein allgemeiner Wechselkurs wird angewendet.
|
Kein allgemeiner Wechselkurs wird angewendet.
|
||||||
@@ -458,4 +462,3 @@ Zentrale Excel
|
|||||||
6. Wechselkurse sind keine stille Vorverarbeitung fuer den Standard-Soll/Ist-Abgleich.
|
6. Wechselkurse sind keine stille Vorverarbeitung fuer den Standard-Soll/Ist-Abgleich.
|
||||||
7. `Mixed` bedeutet: mehrere Waehrungen im Filter. Prozentwerte auf `Mixed` sind nur eingeschraenkt interpretierbar; fuer belastbare Spartenanteile nach Wert muss Land oder Waehrung gefiltert werden.
|
7. `Mixed` bedeutet: mehrere Waehrungen im Filter. Prozentwerte auf `Mixed` sind nur eingeschraenkt interpretierbar; fuer belastbare Spartenanteile nach Wert muss Land oder Waehrung gefiltert werden.
|
||||||
8. Die zentrale Excel wird nach den Standortexporten aus `CentralSalesRecords` erstellt. Sie ist Ergebnis, nicht Eingang.
|
8. Die zentrale Excel wird nach den Standortexporten aus `CentralSalesRecords` erstellt. Sie ist Ergebnis, nicht Eingang.
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
# Finance ES Mail Abweichung
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Historischer Mailentwurf, fuer RAG komprimiert.
|
|
||||||
|
|
||||||
Aktueller Spanien-/Finance-Kontext steht in `docs/rag/FINANCE.md`.
|
|
||||||
|
|
||||||
Volltext bei Bedarf:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Finance Handoff
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
|
||||||
|
|
||||||
## Aktueller Kurzstand
|
|
||||||
|
|
||||||
- Fuehrende Finance-Kurzdatei: `docs/rag/FINANCE.md`.
|
|
||||||
- Manual-Import-Kontext: `docs/rag/MANUAL_IMPORT.md`.
|
|
||||||
- Aktuelle Finance-Regeln im Detail: `docs/FINANCE_ENTSCHEIDE.md` und `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md`.
|
|
||||||
|
|
||||||
## Volltext Bei Bedarf
|
|
||||||
|
|
||||||
Die Detailhistorie liegt hier:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
|
|
||||||
Nur laden, wenn der Zwischenstand vom 2026-05-18 oder alte Finance-Abweichungen genau nachvollzogen werden muessen.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# Finance IT Mail Abweichung
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Historischer Mailentwurf, fuer RAG komprimiert.
|
|
||||||
|
|
||||||
Aktueller Italien-/Finance-Kontext steht in `docs/rag/FINANCE.md`.
|
|
||||||
|
|
||||||
Volltext bei Bedarf:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
@@ -0,0 +1,313 @@
|
|||||||
|
# Finance Kurs-Workflow
|
||||||
|
|
||||||
|
Stand: 2026-06-09
|
||||||
|
|
||||||
|
Zweck: Diese Doku beschreibt isoliert den Weg eines Umrechnungskurses vom einzelnen Land bis zur Analyse eines zentralen Dashboard-Wertes. Sie ersetzt nicht die allgemeine Finance-Datenflussdoku, sondern schneidet nur das Thema Kurs/Waehrung heraus.
|
||||||
|
|
||||||
|
Visualisierung: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg`
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Kurzfazit
|
||||||
|
|
||||||
|
- Der Standortimport rechnet Werte normalerweise nicht ueber die App-Kurstabelle um.
|
||||||
|
- `CentralSalesRecords` speichert die Werte und Waehrungen so, wie sie nach Import und optionalen Transformationen vorliegen.
|
||||||
|
- `DocumentRate` ist ein Quellfeld aus SAP/B1/OData, kein automatisch angewendeter App-Kurs.
|
||||||
|
- Die fuehrende `Finance Summary` und das zentrale Excel nutzen Hauswaehrung je Land. Die App-Kurstabelle wird dort nicht still angewendet.
|
||||||
|
- Eine echte App-Umrechnung passiert nur in Analyse-/Anzeige-Sichten mit Zielwaehrung, in einer expliziten `ConvertCurrency`-Transformation oder im separaten Budget-CHF-Kandidaten.
|
||||||
|
- Wenn in einer Zielwaehrung kein Kurs gefunden wird, fliesst diese Zeile mit `0` in die Anzeige-Summe ein und wird als fehlender Kurs gezaehlt.
|
||||||
|
|
||||||
|
## Begriffe
|
||||||
|
|
||||||
|
| Begriff | Bedeutung |
|
||||||
|
| --- | --- |
|
||||||
|
| Hauswaehrung | Fuehrende Finance-Waehrung des Landes, z. B. `EUR`, `CHF`, `GBP`, `USD`, `INR`. |
|
||||||
|
| `SalesCurrency` | Waehrung von `SalesPriceValue`; fuer Dashboard-Umrechnung die wichtigste Quellwaehrung. |
|
||||||
|
| `CompanyCurrency` | lokale Firmen-/Hauswaehrung aus dem Quellsystem, soweit vorhanden. |
|
||||||
|
| `DocumentCurrency` | Belegwaehrung, z. B. Fremdwaehrung eines einzelnen Kundenbelegs. |
|
||||||
|
| `DocumentRate` | Belegkurs aus dem ERP-Quellsystem. Wird gespeichert, aber nicht automatisch fuer Dashboard-Umrechnung verwendet. |
|
||||||
|
| App-Kurstabelle | Tabelle `CurrencyExchangeRates` mit `FromCurrency`, `ToCurrency`, `Rate`, `ValidFrom`, `ValidTo`, `Notes`, `IsActive`. |
|
||||||
|
| Anzeige-Waehrung | Zielwaehrung in Analyse-Sichten, aktuell `NATIVE`, `CHF`, `EUR`, `USD`. |
|
||||||
|
| Budgetkurs | Kurs mit `Notes = Budget <Jahr>`, z. B. `Budget 2025`, fuer separaten CHF-Kontrollkandidaten. |
|
||||||
|
|
||||||
|
## Gesamtfluss
|
||||||
|
|
||||||
|
```text
|
||||||
|
Land / Quellsystem
|
||||||
|
|
|
||||||
|
+-- Werte und Waehrungen lesen
|
||||||
|
| SalesPriceValue, SalesCurrency, CompanyCurrency,
|
||||||
|
| DocumentCurrency, DocumentTotal FC/LC, DocumentRate
|
||||||
|
|
|
||||||
|
+-- optionale FieldTransformationRules
|
||||||
|
| normal: keine Kursumrechnung
|
||||||
|
| Ausnahme: ConvertCurrency schreibt dauerhaft ein Zielfeld
|
||||||
|
|
|
||||||
|
+-- Standort-Excel schreiben
|
||||||
|
|
|
||||||
|
+-- CentralSalesRecords fuer Standort ersetzen
|
||||||
|
|
|
||||||
|
+-- zentrale Excel / Finance Summary
|
||||||
|
| Hauswaehrung, keine stille App-Kursumrechnung
|
||||||
|
|
|
||||||
|
+-- Management Analyse / Rohdaten-Diagnose mit Zielwaehrung
|
||||||
|
Kurstabelle suchen -> Betrag * Kurs -> zentrale Anzeige-Summe
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schritt 1: Land liefert Betrag und Waehrung
|
||||||
|
|
||||||
|
Jedes Land liefert zuerst einen Nettowert und die dazugehoerige Waehrungsinformation. Der Kurs selbst wird dabei nur als Quellinformation uebernommen, nicht automatisch angewendet.
|
||||||
|
|
||||||
|
| Land / TSC | Quelle | Fuehrender Importwert | Waehrungsfelder | Kursfeld aus Quelle |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| CH / AT `ZSCHWEIZ` | SAP OData | `Z.NetwrHc` -> `SalesPriceValue` | `Z.Hwaer` -> `SalesCurrency` / `CompanyCurrency`, `Z.Waerk` -> `DocumentCurrency` | `Z.Kurrf` -> `DocumentRate` |
|
||||||
|
| FR `TRFR` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ | `OADM.MainCurncy`, `OINV.DocCur` | `OINV.DocRate` / `ORIN.DocRate` |
|
||||||
|
| IT `TRIT` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ, mit IT-Filter | `OADM.MainCurncy`, `DocCur` | `DocRate` |
|
||||||
|
| US `TRUS` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ | `OADM.MainCurncy`, `DocCur` | `DocRate` |
|
||||||
|
| IN `TRIN` | HANA/Sage-Quelle | Hauswaehrungswert in INR | Finance-Hauswaehrung `INR` | ggf. Quellkurs, nicht fuehrend fuer Soll/Ist |
|
||||||
|
| UK `TRUK` | Sage/Manual Excel | `[Sales Price/Value] * [Quantity]` | `GBP` | kein App-Kurs beim Import |
|
||||||
|
| ES `TRES` | Sage CSV | `ImporteNeto`, REC/Credit negativ | `EUR` | kein App-Kurs beim Import |
|
||||||
|
| DE `TRDE` | Alphaplan Excel | `NettoPreisGesamtX` | `Waehrung` / aktuell fachlich `EUR` | kein App-Kurs beim Import |
|
||||||
|
|
||||||
|
Wichtig: Ein vorhandener ERP-Belegkurs erklaert die Beziehung zwischen Belegwaehrung und lokaler Hauswaehrung im Quellsystem. Die App nutzt fuer die zentrale Anzeigeumrechnung trotzdem die eigene Kurstabelle, sobald eine Zielwaehrung gewaehlt wird.
|
||||||
|
|
||||||
|
## Schritt 2: Kurstabelle pflegen
|
||||||
|
|
||||||
|
Die App-Kurse liegen in `CurrencyExchangeRates`.
|
||||||
|
|
||||||
|
Pflegeorte:
|
||||||
|
|
||||||
|
- `Settings > Wechselkurse`: Kurse manuell erfassen, aktivieren/deaktivieren und speichern.
|
||||||
|
- `Refresh Kurse`: importiert ECB-Tageskurse als `EUR -> <Waehrung>` mit Notiz `ECB daily reference rate`.
|
||||||
|
- Seed beim App-Start: Budgetkurse fuer `Budget 2025` und `Budget 2026`, jeweils zur Umrechnung in `CHF`.
|
||||||
|
- Konfigurationsexport/-import: Kurse sind Teil des Config-Transferpakets.
|
||||||
|
|
||||||
|
Technische Regeln beim Speichern:
|
||||||
|
|
||||||
|
- Waehrungscodes werden getrimmt und in Grossbuchstaben gespeichert.
|
||||||
|
- Leere Waehrungen und Kurse `<= 0` werden verworfen.
|
||||||
|
- `ValidFrom` und `ValidTo` werden auf Datum ohne Uhrzeit normalisiert.
|
||||||
|
|
||||||
|
## Schritt 3: Kurs aufloesen
|
||||||
|
|
||||||
|
Die zentrale Kursaufloesung laeuft ueber `CurrencyExchangeRateService.ResolveRate(from, to, date)`.
|
||||||
|
|
||||||
|
Reihenfolge:
|
||||||
|
|
||||||
|
1. Waehrungscodes normalisieren, z. B. `$` -> `USD`, `SFR` -> `CHF`, `RS` -> `INR`.
|
||||||
|
2. Gleiche Waehrung ergibt Kurs `1`.
|
||||||
|
3. Wirksames Datum bestimmen. Ohne Datum wird das heutige UTC-Datum verwendet.
|
||||||
|
4. Direkten aktiven Kurs suchen: `FromCurrency = Quelle`, `ToCurrency = Ziel`, Datum innerhalb `ValidFrom`/`ValidTo`.
|
||||||
|
5. Wenn kein direkter Kurs existiert: inversen Kurs suchen und `1 / Rate` rechnen.
|
||||||
|
6. Wenn weiterhin kein Kurs existiert: Kreuzkurs ueber `EUR` suchen.
|
||||||
|
7. Wenn nichts passt: Ergebnis `null`.
|
||||||
|
|
||||||
|
Bei mehreren gueltigen Kursen gewinnt der mit dem neuesten `ValidFrom`.
|
||||||
|
|
||||||
|
## Schritt 4: Standortexport und zentrale Tabelle
|
||||||
|
|
||||||
|
Beim normalen Standortexport gilt:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Daten holen
|
||||||
|
-> Transformationen anwenden
|
||||||
|
-> Standort-Excel schreiben
|
||||||
|
-> CentralSalesRecords fuer diesen Standort ersetzen
|
||||||
|
-> optional SharePoint Upload
|
||||||
|
```
|
||||||
|
|
||||||
|
Ohne aktive `ConvertCurrency`-Transformation passiert keine App-Kursumrechnung. `CentralSalesRecords` erhaelt:
|
||||||
|
|
||||||
|
- den Importwert `SalesPriceValue`,
|
||||||
|
- die zugehoerige `SalesCurrency`,
|
||||||
|
- Belegfelder wie `DocumentCurrency`, `DocumentTotalForeignCurrency`, `DocumentTotalLocalCurrency`, `DocumentRate`,
|
||||||
|
- die Datumsfelder `PostingDate`, `InvoiceDate`, `ExtractionDate`.
|
||||||
|
|
||||||
|
Damit bleibt nachvollziehbar, ob ein Wert bereits vom Landessystem als Hauswaehrungswert geliefert wurde oder ob er spaeter nur in der Anzeige umgerechnet wurde.
|
||||||
|
|
||||||
|
## Schritt 5: Fuehrende Finance Summary
|
||||||
|
|
||||||
|
Die fuehrende Finance Summary im Dashboard und das zentrale Excel-Blatt `Finance Summary` rechnen nicht automatisch in eine globale Zielwaehrung um.
|
||||||
|
|
||||||
|
Logik:
|
||||||
|
|
||||||
|
```text
|
||||||
|
CentralSalesRecords
|
||||||
|
-> FinanceRuleEngine
|
||||||
|
-> Finance | Net Sales Actual
|
||||||
|
-> Gruppierung nach Jahr, Land, Finance-Waehrung
|
||||||
|
```
|
||||||
|
|
||||||
|
Die Finance-Waehrung ist je Land fest bzw. aus dem Hauswaehrungskontext bestimmt:
|
||||||
|
|
||||||
|
| Land | Finance-Waehrung |
|
||||||
|
| --- | --- |
|
||||||
|
| CH | CHF |
|
||||||
|
| AT | EUR |
|
||||||
|
| DE | EUR |
|
||||||
|
| ES | EUR |
|
||||||
|
| FR | EUR |
|
||||||
|
| IN | INR |
|
||||||
|
| IT | EUR |
|
||||||
|
| UK | GBP |
|
||||||
|
| US | USD |
|
||||||
|
|
||||||
|
Der Waehrungsfilter in `Finance Summary` ist deshalb ein Filter auf diese vorhandene Finance-Waehrung. Er ist keine Umrechnung.
|
||||||
|
|
||||||
|
Konsequenz:
|
||||||
|
|
||||||
|
- `Finance Summary` mit Filter `GBP` zeigt UK-Werte in GBP.
|
||||||
|
- `Finance Summary` mit mehreren Laendern kann `Mixed` anzeigen.
|
||||||
|
- Es wird dabei kein EUR/GBP/CHF-Kurs aus `CurrencyExchangeRates` angewendet.
|
||||||
|
|
||||||
|
## Schritt 6: Zentrale Analyse mit Anzeige-Waehrung
|
||||||
|
|
||||||
|
Die Kursanwendung fuer einen zentralen Dashboard-Wert passiert in der Management-Analyse der zentralen Rohdaten, wenn eine Anzeige-Waehrung gewaehlt ist.
|
||||||
|
|
||||||
|
Eingaben:
|
||||||
|
|
||||||
|
- Datenbasis: `CentralSalesRecords`.
|
||||||
|
- Summenfeld: z. B. `SalesPriceValue`, `StandardCost`, `StandardCostTotal`, `Quantity`.
|
||||||
|
- Anzeige-Waehrung: `NATIVE`, `CHF`, `EUR` oder `USD`.
|
||||||
|
- Zeitraum/Filter: Jahr, Monat, Land, TSC.
|
||||||
|
|
||||||
|
Waehrungsquelle je Summenfeld:
|
||||||
|
|
||||||
|
| Summenfeld | Waehrung fuer Kurs |
|
||||||
|
| --- | --- |
|
||||||
|
| `SalesPriceValue` | `SalesCurrency` |
|
||||||
|
| `StandardCost` | `StandardCostCurrency` |
|
||||||
|
| `StandardCostTotal` | `StandardCostCurrency` |
|
||||||
|
| `Quantity` | keine Waehrung; Anzeige-Waehrung wird ignoriert |
|
||||||
|
|
||||||
|
Datumswahl fuer zentrale Analyse:
|
||||||
|
|
||||||
|
| Setting `ExchangeRateDateField` | Kursdatum |
|
||||||
|
| --- | --- |
|
||||||
|
| `PostingDate` | `PostingDate`, sonst `InvoiceDate`, sonst `ExtractionDate` |
|
||||||
|
| `InvoiceDate` | `InvoiceDate`, sonst `PostingDate`, sonst `ExtractionDate` |
|
||||||
|
| `ExtractionDate` | `ExtractionDate` |
|
||||||
|
|
||||||
|
Formel bei Zielwaehrung:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Anzeige-Wert je Zeile = Quellwert * ResolveRate(Quellwaehrung, Zielwaehrung, Kursdatum)
|
||||||
|
Zentraler Dashboard-Wert = Summe aller Anzeige-Werte im Filter
|
||||||
|
```
|
||||||
|
|
||||||
|
Sonderfaelle:
|
||||||
|
|
||||||
|
- Zielwaehrung `NATIVE`: keine Umrechnung; Werte bleiben in ihrer Quellwaehrung.
|
||||||
|
- Quellwaehrung gleich Zielwaehrung: Faktor `1`.
|
||||||
|
- Kurs fehlt: Anzeige-Wert dieser Zeile wird `0`, `MissingExchangeRateCount` steigt.
|
||||||
|
- Mehrere native Waehrungen im Ergebnis: Anzeige `Mixed`.
|
||||||
|
|
||||||
|
Diese Umrechnung ist eine Laufzeit-Anzeige. Sie aendert `CentralSalesRecords`, Standort-Excel und zentrales Excel nicht.
|
||||||
|
|
||||||
|
## Schritt 7: Explizite Transformation `ConvertCurrency`
|
||||||
|
|
||||||
|
Nur wenn eine aktive `FieldTransformationRule` mit `TransformationType = ConvertCurrency` existiert, wird beim Standortexport dauerhaft ein Feld umgerechnet.
|
||||||
|
|
||||||
|
Beispielargument:
|
||||||
|
|
||||||
|
```text
|
||||||
|
amountField=SalesPriceValue;
|
||||||
|
currencyField=SalesCurrency;
|
||||||
|
targetCurrency=EUR;
|
||||||
|
dateField=InvoiceDate;
|
||||||
|
targetCurrencyField=SalesCurrency;
|
||||||
|
round=2
|
||||||
|
```
|
||||||
|
|
||||||
|
Wirkung:
|
||||||
|
|
||||||
|
- Quelle und Ziel werden ueber die App-Kurstabelle aufgeloest.
|
||||||
|
- `TargetField` erhaelt den umgerechneten Betrag.
|
||||||
|
- Optional wird ein Ziel-Waehrungsfeld gesetzt.
|
||||||
|
- Diese Veraenderung liegt danach in Standort-Excel und `CentralSalesRecords`.
|
||||||
|
|
||||||
|
Fallback-Datum in `ConvertCurrency`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
konfiguriertes dateField
|
||||||
|
sonst InvoiceDate
|
||||||
|
sonst OrderDate
|
||||||
|
sonst ExtractionDate
|
||||||
|
```
|
||||||
|
|
||||||
|
Damit ist `ConvertCurrency` ein anderer Pfad als die Anzeige-Waehrung in der zentralen Analyse.
|
||||||
|
|
||||||
|
## Schritt 8: Budget-CHF-Kandidat
|
||||||
|
|
||||||
|
Im Soll/Ist-Vergleich gibt es einen separaten Kandidaten:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Nettofakturawert Hauswaehrung -> CHF Budget <Jahr>
|
||||||
|
```
|
||||||
|
|
||||||
|
Dieser Kandidat nutzt nur Kurse mit:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Notes = Budget 2025
|
||||||
|
Notes = Budget 2026
|
||||||
|
```
|
||||||
|
|
||||||
|
Er ist eine Kontroll-/Reporting-Sicht. Er ersetzt nicht den Standardabgleich in Hauswaehrung.
|
||||||
|
|
||||||
|
## Analysepfad fuer eine konkrete Kursfrage
|
||||||
|
|
||||||
|
Wenn ein zentraler Wert im Dashboard wegen Kursen geprueft werden soll:
|
||||||
|
|
||||||
|
1. Land/TSC und Quellwert pruefen: `SalesPriceValue`, `SalesCurrency`, `CompanyCurrency`, `DocumentCurrency`, `DocumentRate`.
|
||||||
|
2. Klaeren, welche Dashboard-Sicht gemeint ist:
|
||||||
|
- `Finance Summary`: keine App-Kursumrechnung, nur Waehrungsfilter.
|
||||||
|
- zentrale Rohdaten-/Management-Analyse mit Anzeige-Waehrung: App-Kursumrechnung.
|
||||||
|
- `ConvertCurrency`: dauerhafte Transformation beim Export.
|
||||||
|
3. In den Settings das Kursdatum pruefen: `PostingDate`, `InvoiceDate` oder `ExtractionDate`.
|
||||||
|
4. In `CurrencyExchangeRates` den gueltigen Kurs zum Datum suchen.
|
||||||
|
5. Direkte, inverse und EUR-Kreuzkurslogik beachten.
|
||||||
|
6. Im Dashboard `Nicht umgerechnet` / `MissingExchangeRateCount` kontrollieren.
|
||||||
|
7. Falls `Mixed` angezeigt wird, wurde nicht in eine einheitliche Zielwaehrung gerechnet.
|
||||||
|
|
||||||
|
Hilfsabfragen fuer SQLite:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT Land, Tsc, SalesCurrency, CompanyCurrency, DocumentCurrency,
|
||||||
|
COUNT(*) AS Rows,
|
||||||
|
SUM(SalesPriceValue) AS SalesValue
|
||||||
|
FROM CentralSalesRecords
|
||||||
|
GROUP BY Land, Tsc, SalesCurrency, CompanyCurrency, DocumentCurrency
|
||||||
|
ORDER BY Land, Tsc;
|
||||||
|
```
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT FromCurrency, ToCurrency, Rate, ValidFrom, ValidTo, Notes, IsActive
|
||||||
|
FROM CurrencyExchangeRates
|
||||||
|
WHERE IsActive = 1
|
||||||
|
ORDER BY FromCurrency, ToCurrency, ValidFrom DESC;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Code-Stellen
|
||||||
|
|
||||||
|
| Thema | Code |
|
||||||
|
| --- | --- |
|
||||||
|
| Kursmodell | `Models/CurrencyExchangeRate.cs` |
|
||||||
|
| Kursaufloesung | `Services/CurrencyExchangeRateService.cs` |
|
||||||
|
| ECB-Import | `Services/ExchangeRateImportService.cs` |
|
||||||
|
| Settings/Kurspflege | `Services/SettingsPageService.cs`, `Components/Pages/Settings.razor` |
|
||||||
|
| Standortexport-Reihenfolge | `Services/SiteExportService.cs` |
|
||||||
|
| zentrale Speicherung | `Services/CentralSalesRecordService.cs` |
|
||||||
|
| zentrale Analyse mit Zielwaehrung | `Services/ManagementCockpitService.cs` |
|
||||||
|
| Finance Summary ohne stille Umrechnung | `Services/ManagementCockpitService.cs`, `Services/ExcelExportService.cs` |
|
||||||
|
| Budget-CHF-Kandidat | `Services/FinanceReconciliationService.cs` |
|
||||||
|
| ConvertCurrency | `Services/TransformationStrategies.cs` |
|
||||||
|
|
||||||
|
## Nicht verwechseln
|
||||||
|
|
||||||
|
| Nicht verwechseln | Klarstellung |
|
||||||
|
| --- | --- |
|
||||||
|
| `DocumentRate` vs. App-Kurstabelle | `DocumentRate` kommt aus dem Landessystem; App-Umrechnung nutzt `CurrencyExchangeRates`. |
|
||||||
|
| Finance-Waehrungsfilter vs. Anzeige-Waehrung | Finance-Waehrungsfilter filtert vorhandene Hauswaehrungen; Anzeige-Waehrung rechnet Werte um. |
|
||||||
|
| Zentrale Excel vs. Dashboard-Livewert | Die App-Anzeige liest `CentralSalesRecords`; SharePoint-Excel ist Ergebnis/Ablage. |
|
||||||
|
| Budget-CHF vs. Tageskurs | Budgetkurse sind eigene Kontrollkurse, nicht automatisch der Standard-Ist. |
|
||||||
|
| Native/Mixed vs. konvertiert | `NATIVE` summiert je Quellwaehrung; `Mixed` heisst mehrere Waehrungen im Ergebnis. |
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="1050" viewBox="0 0 1500 1050" role="img" aria-labelledby="title desc">
|
||||||
|
<title id="title">Finance Kurs-Workflow</title>
|
||||||
|
<desc id="desc">Visualisierung des Kursflusses vom Land ueber CentralSalesRecords bis zur zentralen Dashboard-Analyse.</desc>
|
||||||
|
<defs>
|
||||||
|
<marker id="arrow-blue" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto" markerUnits="strokeWidth">
|
||||||
|
<path d="M 0 0 L 12 6 L 0 12 z" fill="#2457a6" />
|
||||||
|
</marker>
|
||||||
|
<marker id="arrow-green" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto" markerUnits="strokeWidth">
|
||||||
|
<path d="M 0 0 L 12 6 L 0 12 z" fill="#2f7d4f" />
|
||||||
|
</marker>
|
||||||
|
<marker id="arrow-orange" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto" markerUnits="strokeWidth">
|
||||||
|
<path d="M 0 0 L 12 6 L 0 12 z" fill="#b35c00" />
|
||||||
|
</marker>
|
||||||
|
<style>
|
||||||
|
.page { fill: #f7f8fb; }
|
||||||
|
.title { font: 700 32px Arial, sans-serif; fill: #172033; }
|
||||||
|
.subtitle { font: 400 16px Arial, sans-serif; fill: #4a5568; }
|
||||||
|
.box-title { font: 700 17px Arial, sans-serif; fill: #172033; }
|
||||||
|
.box-text { font: 400 14px Arial, sans-serif; fill: #253044; }
|
||||||
|
.small { font: 400 12px Arial, sans-serif; fill: #4a5568; }
|
||||||
|
.label { font: 700 13px Arial, sans-serif; fill: #172033; }
|
||||||
|
.box { fill: #ffffff; stroke: #c7d2e3; stroke-width: 2; rx: 8; }
|
||||||
|
.source { fill: #eef5ff; stroke: #8fb2e6; }
|
||||||
|
.store { fill: #f1f7f3; stroke: #8abf9d; }
|
||||||
|
.finance { fill: #eef8f0; stroke: #6fa87d; }
|
||||||
|
.analysis { fill: #fff5e6; stroke: #e0a349; }
|
||||||
|
.warning { fill: #fff1f0; stroke: #d96863; }
|
||||||
|
.table { fill: #f6f0ff; stroke: #ad94d6; }
|
||||||
|
.muted { fill: #f3f5f8; stroke: #b8c2cf; }
|
||||||
|
.line-blue { fill: none; stroke: #2457a6; stroke-width: 3; marker-end: url(#arrow-blue); }
|
||||||
|
.line-green { fill: none; stroke: #2f7d4f; stroke-width: 3; marker-end: url(#arrow-green); }
|
||||||
|
.line-orange { fill: none; stroke: #b35c00; stroke-width: 3; marker-end: url(#arrow-orange); }
|
||||||
|
.line-dashed { stroke-dasharray: 8 7; }
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<rect class="page" x="0" y="0" width="1500" height="1050" />
|
||||||
|
|
||||||
|
<text class="title" x="60" y="58">Finance Kurs-Workflow</text>
|
||||||
|
<text class="subtitle" x="60" y="86">Vom einzelnen Land ueber CentralSalesRecords bis zur Analyse eines zentralen Dashboard-Wertes</text>
|
||||||
|
|
||||||
|
<g transform="translate(60 112)">
|
||||||
|
<rect class="source" x="0" y="0" width="260" height="165" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">1. Land / Quellsystem</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">SAP OData: CH / AT</tspan>
|
||||||
|
<tspan x="18" dy="24">SAP B1/HANA: FR / IT / US</tspan>
|
||||||
|
<tspan x="18" dy="24">HANA/Sage: IN</tspan>
|
||||||
|
<tspan x="18" dy="24">Sage/Excel/Alphaplan: UK / ES / DE</tspan>
|
||||||
|
</text>
|
||||||
|
<text class="small" x="18" y="145">Quelle liefert Wert, Waehrung und ggf. ERP-Belegkurs.</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(370 112)">
|
||||||
|
<rect class="source" x="0" y="0" width="285" height="165" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">2. Importwert</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">SalesPriceValue</tspan>
|
||||||
|
<tspan x="18" dy="24">SalesCurrency / CompanyCurrency</tspan>
|
||||||
|
<tspan x="18" dy="24">DocumentCurrency</tspan>
|
||||||
|
<tspan x="18" dy="24">DocumentTotal FC / LC</tspan>
|
||||||
|
<tspan x="18" dy="24">DocumentRate als Quellinfo</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(705 112)">
|
||||||
|
<rect class="muted" x="0" y="0" width="285" height="165" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">3. Transformationen</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">Normalfall: keine Kursumrechnung</tspan>
|
||||||
|
<tspan x="18" dy="26">Feldregeln koennen Werte kopieren,</tspan>
|
||||||
|
<tspan x="18" dy="22">normalisieren oder konstant setzen.</tspan>
|
||||||
|
<tspan x="18" dy="30">Ausnahme: ConvertCurrency</tspan>
|
||||||
|
<tspan x="18" dy="22">schreibt dauerhaft ein Zielfeld.</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(1040 112)">
|
||||||
|
<rect class="store" x="0" y="0" width="285" height="165" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">4. CentralSalesRecords</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">Zentraler operativer Datenbestand</tspan>
|
||||||
|
<tspan x="18" dy="26">pro Standort komplett ersetzt</tspan>
|
||||||
|
<tspan x="18" dy="26">enthaelt Werte nach Import und</tspan>
|
||||||
|
<tspan x="18" dy="22">optionalen Transformationen</tspan>
|
||||||
|
</text>
|
||||||
|
<text class="small" x="18" y="143">SharePoint-Excel ist Ablage, nicht Live-Quelle.</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path class="line-blue" d="M 320 195 L 360 195" />
|
||||||
|
<path class="line-blue" d="M 655 195 L 695 195" />
|
||||||
|
<path class="line-blue" d="M 990 195 L 1030 195" />
|
||||||
|
|
||||||
|
<g transform="translate(105 345)">
|
||||||
|
<rect class="finance" x="0" y="0" width="385" height="175" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">5A. Finance Summary / zentrales Excel</text>
|
||||||
|
<text class="box-text" x="18" y="63">
|
||||||
|
<tspan x="18" dy="0">FinanceRuleEngine bildet Net Sales Actual.</tspan>
|
||||||
|
<tspan x="18" dy="26">Fuehrend ist die Hauswaehrung je Land:</tspan>
|
||||||
|
<tspan x="18" dy="24">CH CHF, AT/DE/ES/FR/IT EUR,</tspan>
|
||||||
|
<tspan x="18" dy="24">IN INR, UK GBP, US USD.</tspan>
|
||||||
|
</text>
|
||||||
|
<text class="small" x="18" y="153">Waehrungsfilter = Filter, keine Umrechnung.</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(560 345)">
|
||||||
|
<rect class="warning" x="0" y="0" width="335" height="175" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">Nicht still umrechnen</text>
|
||||||
|
<text class="box-text" x="18" y="63">
|
||||||
|
<tspan x="18" dy="0">DocumentRate bleibt Quellfeld.</tspan>
|
||||||
|
<tspan x="18" dy="26">CurrencyExchangeRates werden hier</tspan>
|
||||||
|
<tspan x="18" dy="24">nicht automatisch angewendet.</tspan>
|
||||||
|
<tspan x="18" dy="30">Mixed bedeutet: mehrere Waehrungen</tspan>
|
||||||
|
<tspan x="18" dy="22">im aktuellen Filter.</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path class="line-green" d="M 1180 285 C 1180 325, 360 300, 315 340" />
|
||||||
|
<path class="line-green" d="M 490 432 L 550 432" />
|
||||||
|
|
||||||
|
<g transform="translate(105 625)">
|
||||||
|
<rect class="analysis" x="0" y="0" width="390" height="205" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">5B. Zentrale Analyse mit Zielwaehrung</text>
|
||||||
|
<text class="box-text" x="18" y="63">
|
||||||
|
<tspan x="18" dy="0">Anzeige-Waehrung: NATIVE, CHF, EUR, USD</tspan>
|
||||||
|
<tspan x="18" dy="28">Summenfeld:</tspan>
|
||||||
|
<tspan x="38" dy="24">SalesPriceValue -> SalesCurrency</tspan>
|
||||||
|
<tspan x="38" dy="24">StandardCost -> StandardCostCurrency</tspan>
|
||||||
|
<tspan x="38" dy="24">Quantity -> keine Waehrung</tspan>
|
||||||
|
</text>
|
||||||
|
<text class="small" x="18" y="183">Diese Umrechnung ist nur Anzeige/Laufzeit.</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(560 625)">
|
||||||
|
<rect class="table" x="0" y="0" width="340" height="205" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">CurrencyExchangeRates</text>
|
||||||
|
<text class="box-text" x="18" y="63">
|
||||||
|
<tspan x="18" dy="0">FromCurrency / ToCurrency / Rate</tspan>
|
||||||
|
<tspan x="18" dy="26">ValidFrom / ValidTo / IsActive</tspan>
|
||||||
|
<tspan x="18" dy="32">ResolveRate-Reihenfolge:</tspan>
|
||||||
|
<tspan x="38" dy="24">1. direkt</tspan>
|
||||||
|
<tspan x="38" dy="24">2. invers</tspan>
|
||||||
|
<tspan x="38" dy="24">3. EUR-Kreuzkurs</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(965 625)">
|
||||||
|
<rect class="analysis" x="0" y="0" width="390" height="205" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">6. Zentraler Dashboard-Wert</text>
|
||||||
|
<text class="box-text" x="18" y="63">
|
||||||
|
<tspan x="18" dy="0">Anzeige-Wert je Zeile = Wert * Kurs</tspan>
|
||||||
|
<tspan x="18" dy="30">Summe = alle Anzeige-Werte im Filter</tspan>
|
||||||
|
<tspan x="18" dy="30">Kurs fehlt:</tspan>
|
||||||
|
<tspan x="38" dy="24">Zeile zaehlt mit 0</tspan>
|
||||||
|
<tspan x="38" dy="24">MissingExchangeRateCount steigt</tspan>
|
||||||
|
</text>
|
||||||
|
<text class="small" x="18" y="183">CentralSalesRecords bleiben unveraendert.</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path class="line-orange" d="M 1180 285 C 1180 560, 280 555, 280 615" />
|
||||||
|
<path class="line-orange" d="M 500 727 L 550 727" />
|
||||||
|
<path class="line-orange" d="M 900 727 L 955 727" />
|
||||||
|
|
||||||
|
<g transform="translate(705 890)">
|
||||||
|
<rect class="muted" x="0" y="0" width="300" height="110" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">ConvertCurrency</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">aktive Transformation beim Export</tspan>
|
||||||
|
<tspan x="18" dy="24">schreibt dauerhaft ein Zielfeld</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<g transform="translate(1045 890)">
|
||||||
|
<rect class="muted" x="0" y="0" width="300" height="110" rx="8" />
|
||||||
|
<text class="box-title" x="18" y="30">Budget-CHF-Kandidat</text>
|
||||||
|
<text class="box-text" x="18" y="62">
|
||||||
|
<tspan x="18" dy="0">Notes = Budget 2025 / 2026</tspan>
|
||||||
|
<tspan x="18" dy="24">Kontrollsicht, nicht Standard-Ist</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path class="line-orange line-dashed" d="M 835 885 C 835 850, 770 850, 740 835" />
|
||||||
|
<path class="line-orange line-dashed" d="M 1195 885 C 1195 850, 815 850, 790 835" />
|
||||||
|
|
||||||
|
<g transform="translate(60 930)">
|
||||||
|
<text class="label" x="0" y="0">Legende</text>
|
||||||
|
<rect x="0" y="18" width="24" height="10" fill="#2457a6" />
|
||||||
|
<text class="small" x="34" y="29">Datenfluss Import / Speicherung</text>
|
||||||
|
<rect x="245" y="18" width="24" height="10" fill="#2f7d4f" />
|
||||||
|
<text class="small" x="279" y="29">Finance-Hauswaehrung ohne stille App-Kursumrechnung</text>
|
||||||
|
<rect x="620" y="18" width="24" height="10" fill="#b35c00" />
|
||||||
|
<text class="small" x="654" y="29">Anzeige-/Analyseumrechnung ueber App-Kurstabelle</text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.5 KiB |
@@ -1,13 +0,0 @@
|
|||||||
# Finance UK Mail Abweichung
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Historischer Mailentwurf, fuer RAG komprimiert.
|
|
||||||
|
|
||||||
Aktueller UK-/Finance-Kontext steht in `docs/rag/FINANCE.md` und `docs/rag/MANUAL_IMPORT.md`.
|
|
||||||
|
|
||||||
Volltext bei Bedarf:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# Finance: Welches Dokument Gilt?
|
|
||||||
|
|
||||||
Stand: 2026-05-27
|
|
||||||
|
|
||||||
Historische Dokumentgueltigkeitsnotiz, fuer RAG komprimiert.
|
|
||||||
|
|
||||||
Aktueller Dokumentrouter: `docs/RAG_ROUTER.md`.
|
|
||||||
Aktueller Dokumentstatus: `docs/MD_DOKUMENTENSTATUS_2026-05-20.md`.
|
|
||||||
|
|
||||||
Volltext bei Bedarf:
|
|
||||||
|
|
||||||
```text
|
|
||||||
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
|
|
||||||
```
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Markdown-Dokumentenstatus
|
# Markdown-Dokumentenstatus
|
||||||
|
|
||||||
Stand: 2026-05-20
|
Stand: 2026-06-10
|
||||||
|
|
||||||
RAG-Hinweis: Fuer tokenarme Kontextauswahl zuerst `docs/RAG_ROUTER.md` laden. Standardmaessig nur die Kurzdateien unter `docs/rag/` laden; diese Datei und andere Original-MDs nur bei Detail-/Auditbedarf.
|
RAG-Hinweis: Fuer tokenarme Kontextauswahl zuerst `docs/RAG_ROUTER.md` laden. Standardmaessig nur die Kurzdateien unter `docs/rag/` laden; diese Datei und andere Original-MDs nur bei Detail-/Auditbedarf.
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@ Diese Datei ordnet die vorhandenen Markdown-Dateien ein. Ziel ist, alte Arbeitsn
|
|||||||
| `docs/LOCAL_DEV_SERVER_UEBERGANG_2026-05-21.md` | Lokaler Uebergangsserver auf Entwicklungs-PC | Aktuell bis IIS-Fix |
|
| `docs/LOCAL_DEV_SERVER_UEBERGANG_2026-05-21.md` | Lokaler Uebergangsserver auf Entwicklungs-PC | Aktuell bis IIS-Fix |
|
||||||
| `docs/FINANCE_ENTSCHEIDE.md` | Finance-Regeln und Kontrollpunkte | Aktuell fuehrend fuer Finance-Logik |
|
| `docs/FINANCE_ENTSCHEIDE.md` | Finance-Regeln und Kontrollpunkte | Aktuell fuehrend fuer Finance-Logik |
|
||||||
| `entscheide.md` | Kurzfassung der Finance-Fachentscheide | Aktuell als Kurzfassung |
|
| `entscheide.md` | Kurzfassung der Finance-Fachentscheide | Aktuell als Kurzfassung |
|
||||||
|
| `docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md` | Technischer Finance-Datenfluss | Aktuell fuer End-to-end-Datenfluss |
|
||||||
| `docs/PRODUCT_SPARTEN_MAPPING_2026-05-27.md` | Produktsparten-Mapping fuer Group Sales Report | Aktuell fuehrend fuer neues Produktmapping-Thema |
|
| `docs/PRODUCT_SPARTEN_MAPPING_2026-05-27.md` | Produktsparten-Mapping fuer Group Sales Report | Aktuell fuehrend fuer neues Produktmapping-Thema |
|
||||||
| `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI technische/fachliche Nachdoku | Aktualisiert um 2026-05-20 Erweiterungen |
|
| `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI technische/fachliche Nachdoku | Aktualisiert um 2026-05-20 Erweiterungen |
|
||||||
| `docs/PROGRAMM_DIAGRAMME.md` | Uebersicht Diagramme und technische Einordnung | Aktualisiert um neue Anwenderdokus |
|
| `docs/PROGRAMM_DIAGRAMME.md` | Uebersicht Diagramme und technische Einordnung | Aktualisiert um neue Anwenderdokus |
|
||||||
@@ -26,25 +27,28 @@ Diese Datei ordnet die vorhandenen Markdown-Dateien ein. Ziel ist, alte Arbeitsn
|
|||||||
| Datei | Rolle | Status |
|
| Datei | Rolle | Status |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Detailregeln je Land | Behalten |
|
| `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Detailregeln je Land | Behalten |
|
||||||
| `docs/FINANCE_HANDOFF_2026-05-18.md` | Finance-Handoff vor den 20.05.-Aenderungen | Behalten, mit neueren Nachtraegen lesen |
|
| `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` | Isolierter Workflow fuer Kurs-/Waehrungsanwendung vom Land bis Dashboard | Aktuell fuer Kursfragen; SVG daneben |
|
||||||
| `docs/FINANCE_IT_VORGEHEN_2026-05-18.md` | Italien-Pruefpfad | Behalten |
|
| `docs/FINANCE_IT_VORGEHEN_2026-05-18.md` | Italien-Pruefpfad | Behalten |
|
||||||
| `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md` | UK-Quellkorrektur | Behalten |
|
| `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md` | UK-Quellkorrektur | Behalten |
|
||||||
|
| `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md` | Aktueller Spanien-rclone-All-in-one-Workflow | Ersetzt alte deutsche Anleitung vom 2026-06-03 |
|
||||||
| `docs/HR_KPI_PRUEFUNG_SWISS_BEST_PRACTICES.md` | HR-KPI Formel-/Best-Practice-Pruefung | Behalten |
|
| `docs/HR_KPI_PRUEFUNG_SWISS_BEST_PRACTICES.md` | HR-KPI Formel-/Best-Practice-Pruefung | Behalten |
|
||||||
| `SAGE_SPAIN_EXPORT_2026-05-05.md` | Sage Spanien Export | Behalten |
|
| `SAGE_SPAIN_EXPORT_2026-05-05.md` | Sage Spanien Export | Behalten |
|
||||||
| `LLM_SYSTEM_GUIDE.md` | Arbeits-/Systemkontext fuer LLM | Behalten |
|
| `LLM_SYSTEM_GUIDE.md` | Arbeits-/Systemkontext fuer LLM | Behalten |
|
||||||
| `persona.md` | Nutzer-/Projektkontext | Behalten |
|
| `persona.md` | Nutzer-/Projektkontext | Behalten |
|
||||||
|
|
||||||
## Historisch / nicht mehr fuehrend
|
## Archiviert / aus aktiver Doku entfernt
|
||||||
|
|
||||||
Diese Dateien bleiben aus Nachvollziehbarkeitsgruenden erhalten, sind aber nicht mehr als aktueller Stand zu lesen:
|
Diese Dateien wurden am 2026-06-09 aus der aktiven Markdown-Struktur entfernt, weil sie nur noch historische Stubs oder durch neuere Dokus ersetzt waren. Fachinhalt bleibt erhalten:
|
||||||
|
|
||||||
| Datei | Grund |
|
| Entfernte Datei | Grund |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `docs/FINANCE_DASHBOARD_TODO_2026-05-15.md` | Urspruengliche Todo-Liste; Status wurde am 2026-05-20 aktualisiert |
|
| `FINANCE_HANDOFF_2026-05-18.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Kurzkontext steht in `docs/rag/FINANCE.md`. |
|
||||||
| `docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md` | CFO-Dokumentenstand vom 15.05.; Anwenderdoku vom 20.05. ist hinzugekommen |
|
| `FINANCE_DASHBOARD_TODO_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Finance-Kontext steht in `docs/rag/FINANCE.md`. |
|
||||||
| `docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz |
|
| `FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Router ist `docs/RAG_ROUTER.md`. |
|
||||||
| `docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz |
|
| `FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller ES-Kontext steht in `docs/rag/FINANCE.md` und `SAGE_SPAIN_EXPORT_2026-05-05.md`. |
|
||||||
| `docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz |
|
| `FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller IT-Kontext steht in `docs/FINANCE_IT_VORGEHEN_2026-05-18.md`. |
|
||||||
|
| `FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller UK-Kontext steht in `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md`. |
|
||||||
|
| `SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md` | Veralteter zweiscriptiger Spanien-rclone-Workflow; aktueller Stand ist `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md`. |
|
||||||
|
|
||||||
## Neue Word-/Bilddokumente seit 2026-05-20
|
## Neue Word-/Bilddokumente seit 2026-05-20
|
||||||
|
|
||||||
@@ -57,10 +61,15 @@ Diese Dateien bleiben aus Nachvollziehbarkeitsgruenden erhalten, sind aber nicht
|
|||||||
|
|
||||||
## Bereinigung
|
## Bereinigung
|
||||||
|
|
||||||
Es wurden keine alten Markdown-Dateien geloescht. Grund: Viele enthalten historische Pruefwerte, Zwischenentscheide und konkrete Pfade, die fuer Rueckfragen oder Audits noch relevant sein koennen.
|
Bereinigung 2026-06-09:
|
||||||
|
|
||||||
Stattdessen gilt:
|
- Historische Finance-Stubs und der alte Finance-Handoff wurden aus der aktiven Doku entfernt, weil der Volltext im Raw-Archiv liegt.
|
||||||
|
- Die alte deutsche Spanien-rclone-Anleitung wurde entfernt, weil der aktuelle All-in-one-Workflow im Guide vom 2026-06-05 dokumentiert ist.
|
||||||
|
- Die Alphaplan-Konzept- und Anleitungsdateien vom 2026-06-08 wurden bewusst nicht veraendert.
|
||||||
|
- Delta 2026-06-10: India/SAGE-HANA-Deploy und Server-DB-Seed wurden in `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md` und `lastchange.md` nachdokumentiert.
|
||||||
|
|
||||||
|
Weiterhin gilt:
|
||||||
|
|
||||||
- Aktuelle operative Orientierung ueber diese Statusdatei, `NEXT_STEPS_2026-04-15.md`, `HANDOFF_2026-04-15.md` und `lastchange.md`.
|
- Aktuelle operative Orientierung ueber diese Statusdatei, `NEXT_STEPS_2026-04-15.md`, `HANDOFF_2026-04-15.md` und `lastchange.md`.
|
||||||
- Historische Mail-/Terminnotizen nur als Beleg lesen, nicht als aktuellen Produktstand.
|
- Historische Mail-/Terminnotizen nur im Raw-Archiv als Beleg lesen, nicht als aktuellen Produktstand.
|
||||||
- Alte offene Punkte wurden dort aktualisiert, wo sie durch Finance Summary, HR KPI Cockpit oder die Word-Anleitungen ueberholt sind.
|
- Alte offene Punkte wurden dort aktualisiert, wo sie durch Finance Summary, HR KPI Cockpit oder die Word-Anleitungen ueberholt sind.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# RAG Router
|
# RAG Router
|
||||||
|
|
||||||
Stand: 2026-06-05
|
Stand: 2026-06-10
|
||||||
|
|
||||||
Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themenblock laden.
|
Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themenblock laden.
|
||||||
|
|
||||||
@@ -34,6 +34,7 @@ Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themen
|
|||||||
| `docs/MD_DOKUMENTENSTATUS_2026-05-20.md` | Einordnung alter Dokumente |
|
| `docs/MD_DOKUMENTENSTATUS_2026-05-20.md` | Einordnung alter Dokumente |
|
||||||
| `docs/FINANCE_ENTSCHEIDE.md` | Finance-Entscheide im Detail |
|
| `docs/FINANCE_ENTSCHEIDE.md` | Finance-Entscheide im Detail |
|
||||||
| `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Formeln pro Land |
|
| `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Formeln pro Land |
|
||||||
|
| `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` | isolierter Kurs-/Umrechnungsworkflow vom Land bis Dashboard |
|
||||||
| `docs/MANUAL_IMPORT_DELTA_STAND_2026-05-21.md` | Manual-Import-Details |
|
| `docs/MANUAL_IMPORT_DELTA_STAND_2026-05-21.md` | Manual-Import-Details |
|
||||||
| `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI-Details |
|
| `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI-Details |
|
||||||
| `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md` | IIS-/Publish-Details |
|
| `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md` | IIS-/Publish-Details |
|
||||||
@@ -46,9 +47,11 @@ Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themen
|
|||||||
| Suchwort | Thema |
|
| Suchwort | Thema |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `Finance Summary`, `Soll/Ist`, `check.xlsx`, `FinanceRuleEngine` | Finance Cockpit |
|
| `Finance Summary`, `Soll/Ist`, `check.xlsx`, `FinanceRuleEngine` | Finance Cockpit |
|
||||||
|
| `Wechselkurs`, `Umrechnungskurs`, `CurrencyExchangeRates`, `DocumentRate`, `ConvertCurrency`, `Anzeige-Waehrung` | `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` |
|
||||||
| `TRUK`, `UK_B1`, `Delta`, `Manual Excel` | Manual Import / Finance Spezialfaelle |
|
| `TRUK`, `UK_B1`, `Delta`, `Manual Excel` | Manual Import / Finance Spezialfaelle |
|
||||||
| `TRDE`, `Alphaplan`, `NettoPreisGesamtX` | Finance Cockpit / Manual Import |
|
| `TRDE`, `Alphaplan`, `NettoPreisGesamtX` | Finance Cockpit / Manual Import |
|
||||||
| `TRSE`, `Spain`, `Sage`, `ImporteNeto` | Finance Spezialfaelle |
|
| `TRSE`, `Spain`, `Sage`, `ImporteNeto` | Finance Spezialfaelle |
|
||||||
|
| `TRIN`, `Indien`, `India`, `SAGE`, `20.197.20.60`, `TRAFAGCONTROLS` | Deployment/IIS oder Finance Spezialfaelle |
|
||||||
| `Spain rclone`, `Spanien SharePoint`, `Run-SpainRangeExportAndUpload-AllInOne`, `trafag-bi` | `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md` |
|
| `Spain rclone`, `Spanien SharePoint`, `Run-SpainRangeExportAndUpload-AllInOne`, `trafag-bi` | `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md` |
|
||||||
| `3D Datenanalyse`, `Experten`, `Schnelluebersicht`, `Simulation`, `Wechselkurs-Schieberegler` | Finance Cockpit |
|
| `3D Datenanalyse`, `Experten`, `Schnelluebersicht`, `Simulation`, `Wechselkurs-Schieberegler` | Finance Cockpit |
|
||||||
| `HR KPI`, `Rexx`, `Austritte`, `Absenzen` | HR KPI |
|
| `HR KPI`, `Rexx`, `Austritte`, `Absenzen` | HR KPI |
|
||||||
|
|||||||
@@ -1,258 +0,0 @@
|
|||||||
# Sage Spanien Rclone Upload Anleitung
|
|
||||||
|
|
||||||
Stand: 2026-06-03
|
|
||||||
|
|
||||||
Ziel: Der Sage-Server in Spanien erzeugt die Sales-CSV lokal und lädt die Datei danach automatisch in den SharePoint-Ordner fuer den Dashboard-Import.
|
|
||||||
|
|
||||||
## Zielordner
|
|
||||||
|
|
||||||
SharePoint URL:
|
|
||||||
|
|
||||||
```text
|
|
||||||
https://trafagag.sharepoint.com/sites/WorldwideBIPlatform/Shared%20Documents/Import/Finance/Spanien
|
|
||||||
```
|
|
||||||
|
|
||||||
Technischer Ordner:
|
|
||||||
|
|
||||||
```text
|
|
||||||
Shared Documents/Import/Finance/Spanien
|
|
||||||
```
|
|
||||||
|
|
||||||
Empfohlener rclone-Zielpfad:
|
|
||||||
|
|
||||||
```text
|
|
||||||
trafag-bi:Import/Finance/Spanien
|
|
||||||
```
|
|
||||||
|
|
||||||
Dabei zeigt `trafag-bi` auf die Dokumentbibliothek `Shared Documents` der SharePoint-Site:
|
|
||||||
|
|
||||||
```text
|
|
||||||
https://trafagag.sharepoint.com/sites/WorldwideBIPlatform
|
|
||||||
```
|
|
||||||
|
|
||||||
## Benötigte Dateien Auf Dem Spanien-Server
|
|
||||||
|
|
||||||
Empfohlener Ordner:
|
|
||||||
|
|
||||||
```text
|
|
||||||
C:\Trafag\SageSpain
|
|
||||||
```
|
|
||||||
|
|
||||||
Dateien:
|
|
||||||
|
|
||||||
```text
|
|
||||||
Export-SageSpainSalesCsv.ps1
|
|
||||||
Run-SpainExportAndUpload.ps1
|
|
||||||
```
|
|
||||||
|
|
||||||
Die Dateien liegen im Paket:
|
|
||||||
|
|
||||||
```text
|
|
||||||
SageSpainFinalExportPackage.zip
|
|
||||||
```
|
|
||||||
|
|
||||||
## rclone Installieren
|
|
||||||
|
|
||||||
Falls `winget` vorhanden ist:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
winget install Rclone.Rclone
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternativ rclone ZIP manuell installieren, z.B. nach:
|
|
||||||
|
|
||||||
```text
|
|
||||||
C:\Tools\rclone\rclone.exe
|
|
||||||
```
|
|
||||||
|
|
||||||
Danach testen:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
rclone version
|
|
||||||
```
|
|
||||||
|
|
||||||
Falls `rclone` nicht im PATH ist, später den vollständigen Pfad verwenden:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
C:\Tools\rclone\rclone.exe version
|
|
||||||
```
|
|
||||||
|
|
||||||
## rclone Remote Einrichten
|
|
||||||
|
|
||||||
Auf dem Spanien-Server:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
rclone config
|
|
||||||
```
|
|
||||||
|
|
||||||
Empfohlene Eingaben:
|
|
||||||
|
|
||||||
```text
|
|
||||||
n
|
|
||||||
name> trafag-bi
|
|
||||||
Storage> onedrive
|
|
||||||
```
|
|
||||||
|
|
||||||
Danach Microsoft Login durchführen.
|
|
||||||
|
|
||||||
Wichtig:
|
|
||||||
|
|
||||||
- Site: `WorldwideBIPlatform`
|
|
||||||
- Dokumentbibliothek: `Shared Documents`
|
|
||||||
- Der rclone-Remote `trafag-bi` soll auf die Dokumentbibliothek `Shared Documents` zeigen.
|
|
||||||
|
|
||||||
## rclone Testen
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
rclone lsd trafag-bi:
|
|
||||||
rclone lsd trafag-bi:"Import"
|
|
||||||
rclone lsd trafag-bi:"Import/Finance"
|
|
||||||
rclone lsd trafag-bi:"Import/Finance/Spanien"
|
|
||||||
```
|
|
||||||
|
|
||||||
Wenn der letzte Befehl den Ordner ohne Fehler zeigt, ist der Zielpfad korrekt.
|
|
||||||
|
|
||||||
## Manueller Export Ohne Upload
|
|
||||||
|
|
||||||
Full Export 2025:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Set-ExecutionPolicy -Scope Process Bypass
|
|
||||||
cd C:\Trafag\SageSpain
|
|
||||||
.\Export-SageSpainSalesCsv.ps1 -ExportMode Full -Year 2025 -OutputDirectory C:\Trafag\SageSpain\out
|
|
||||||
```
|
|
||||||
|
|
||||||
Delta/Range Export:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Set-ExecutionPolicy -Scope Process Bypass
|
|
||||||
cd C:\Trafag\SageSpain
|
|
||||||
.\Export-SageSpainSalesCsv.ps1 -ExportMode Range -DateFilter LineRegistrationDate -FromDate "2026-06-02" -ToDate "2026-06-03" -OutputDirectory C:\Trafag\SageSpain\out
|
|
||||||
```
|
|
||||||
|
|
||||||
Hinweis:
|
|
||||||
|
|
||||||
- `ToDate` ist exklusiv.
|
|
||||||
- Der Zeitraum `"2026-06-02"` bis `"2026-06-03"` exportiert den 2. Juni.
|
|
||||||
- Für tägliche Deltas ist `LineRegistrationDate` sinnvoll, weil neue oder geänderte Zeilen nach Registrierungsdatum kommen.
|
|
||||||
|
|
||||||
## Export Und Upload Zusammen Starten
|
|
||||||
|
|
||||||
Standard: täglicher Delta-Lauf, gestern bis heute:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Set-ExecutionPolicy -Scope Process Bypass
|
|
||||||
cd C:\Trafag\SageSpain
|
|
||||||
.\Run-SpainExportAndUpload.ps1
|
|
||||||
```
|
|
||||||
|
|
||||||
Expliziter Zeitraum:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
.\Run-SpainExportAndUpload.ps1 -ExportMode Range -DateFilter LineRegistrationDate -FromDate "2026-06-02" -ToDate "2026-06-03"
|
|
||||||
```
|
|
||||||
|
|
||||||
Full Export mit Upload:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
.\Run-SpainExportAndUpload.ps1 -ExportMode Full -Year 2025
|
|
||||||
```
|
|
||||||
|
|
||||||
Wenn rclone nicht im PATH ist:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
.\Run-SpainExportAndUpload.ps1 -RcloneExe "C:\Tools\rclone\rclone.exe"
|
|
||||||
```
|
|
||||||
|
|
||||||
Wenn der rclone-Remote anders heisst:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
.\Run-SpainExportAndUpload.ps1 -RcloneRemote "MEIN_REMOTE_NAME"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Was Wird Hochgeladen?
|
|
||||||
|
|
||||||
Das Wrapper-Script lädt aus dem neuesten Exportordner:
|
|
||||||
|
|
||||||
```text
|
|
||||||
*.csv
|
|
||||||
*_summary.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
Ziel:
|
|
||||||
|
|
||||||
```text
|
|
||||||
trafag-bi:Import/Finance/Spanien
|
|
||||||
```
|
|
||||||
|
|
||||||
Das Script ändert keine Daten in Sage und keine Daten in SQL Server.
|
|
||||||
|
|
||||||
## Windows Task Scheduler
|
|
||||||
|
|
||||||
Empfohlener täglicher Lauf, z.B. 02:00 Uhr:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$action = New-ScheduledTaskAction `
|
|
||||||
-Execute "powershell.exe" `
|
|
||||||
-Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Trafag\SageSpain\Run-SpainExportAndUpload.ps1"
|
|
||||||
|
|
||||||
$trigger = New-ScheduledTaskTrigger -Daily -At 02:00
|
|
||||||
|
|
||||||
Register-ScheduledTask `
|
|
||||||
-TaskName "Trafag Spain Sage Export Upload" `
|
|
||||||
-Action $action `
|
|
||||||
-Trigger $trigger `
|
|
||||||
-Description "Exports Sage Spain sales CSV and uploads it to SharePoint via rclone"
|
|
||||||
```
|
|
||||||
|
|
||||||
Wenn rclone nicht im PATH ist:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$action = New-ScheduledTaskAction `
|
|
||||||
-Execute "powershell.exe" `
|
|
||||||
-Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Trafag\SageSpain\Run-SpainExportAndUpload.ps1 -RcloneExe C:\Tools\rclone\rclone.exe"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Kontrolle Nach Dem Lauf
|
|
||||||
|
|
||||||
Lokal:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Get-ChildItem C:\Trafag\SageSpain\out -Directory | Sort-Object LastWriteTime -Descending | Select-Object -First 1
|
|
||||||
Get-ChildItem C:\Trafag\SageSpain\logs
|
|
||||||
```
|
|
||||||
|
|
||||||
SharePoint:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
rclone ls trafag-bi:"Import/Finance/Spanien"
|
|
||||||
```
|
|
||||||
|
|
||||||
Im Browser prüfen:
|
|
||||||
|
|
||||||
```text
|
|
||||||
https://trafagag.sharepoint.com/sites/WorldwideBIPlatform/Shared%20Documents/Import/Finance/Spanien
|
|
||||||
```
|
|
||||||
|
|
||||||
## Fehlerbilder
|
|
||||||
|
|
||||||
`rclone: command not found`
|
|
||||||
|
|
||||||
- rclone ist nicht im PATH.
|
|
||||||
- Lösung: `-RcloneExe "C:\Tools\rclone\rclone.exe"` verwenden.
|
|
||||||
|
|
||||||
`directory not found`
|
|
||||||
|
|
||||||
- Remote zeigt nicht auf `Shared Documents` oder Zielordner ist anders.
|
|
||||||
- Mit `rclone lsd trafag-bi:` und `rclone lsd trafag-bi:"Import/Finance"` prüfen.
|
|
||||||
|
|
||||||
`Access denied`
|
|
||||||
|
|
||||||
- Microsoft Login oder SharePoint-Berechtigung fehlt.
|
|
||||||
- Der Windows-User des geplanten Tasks muss Zugriff auf rclone-Konfiguration und SharePoint haben.
|
|
||||||
|
|
||||||
Leere Delta-Datei:
|
|
||||||
|
|
||||||
- Zeitraum prüfen.
|
|
||||||
- `ToDate` ist exklusiv.
|
|
||||||
- Bei täglichem Lauf für gestern bis heute ist das korrekt.
|
|
||||||
@@ -1,18 +1,23 @@
|
|||||||
# RAG Deployment
|
# RAG Deployment
|
||||||
|
|
||||||
Stand: 2026-05-27
|
Stand: 2026-06-10
|
||||||
|
|
||||||
## Kurzstand
|
## Kurzstand
|
||||||
|
|
||||||
- `TrafagSalesExporter` wird als ASP.NET/IIS-Webanwendung im bisherigen `BiDashboard`-Schema publiziert.
|
- `TrafagSalesExporter` wird als ASP.NET/IIS-Webanwendung im bisherigen `BiDashboard`-Schema publiziert.
|
||||||
|
- Letzter dokumentierter Deploy: 2026-06-10 India/SAGE-HANA-Fix.
|
||||||
|
- Publish-Ziel: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`.
|
||||||
|
- Letzter Deploy-Zeitstempel: `BiDashboard.dll` am `10.06.2026 08:20:25`.
|
||||||
|
- Produktive India-DB-Konfiguration nach Seed: `TRIN -> SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`, User-Override `TRAFAGCONTROLS`.
|
||||||
|
- DB-Backup vor India-Seed: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak`.
|
||||||
- Lokaler Uebergangsserver: `http://172.16.9.185:5000` im Trafag-Netz, IP kann wechseln.
|
- Lokaler Uebergangsserver: `http://172.16.9.185:5000` im Trafag-Netz, IP kann wechseln.
|
||||||
- Lokale URLs bleiben `https://localhost:55415` und `http://localhost:55416`.
|
- Lokale URLs bleiben `https://localhost:55415` und `http://localhost:55416`.
|
||||||
- Fuer andere PCs nutzt der Uebergang bewusst HTTP auf Port `5000`.
|
- Fuer andere PCs nutzt der Uebergang bewusst HTTP auf Port `5000`.
|
||||||
|
|
||||||
## Serverproblem
|
## Serverproblem
|
||||||
|
|
||||||
- IIS/HTTPS blockiert vor der App.
|
- Lokaler HTTPS-Smoke-Test per `Invoke-WebRequest` scheitert weiterhin mit Empfangs-/TLS-Fehler; Publish und Share-/DB-Pruefungen sind davon getrennt.
|
||||||
- Dokumentierter Befund: TLS fordert Client-Zertifikat.
|
- Aelterer dokumentierter Befund: TLS fordert Client-Zertifikat.
|
||||||
- IT soll IIS SSL Settings pruefen: Client certificates `Ignore` oder hoechstens `Accept`, nicht `Require`.
|
- IT soll IIS SSL Settings pruefen: Client certificates `Ignore` oder hoechstens `Accept`, nicht `Require`.
|
||||||
|
|
||||||
## Upgreat Firewall
|
## Upgreat Firewall
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# RAG Finance
|
# RAG Finance
|
||||||
|
|
||||||
Stand: 2026-06-05
|
Stand: 2026-06-10
|
||||||
|
|
||||||
## Kurzstand
|
## Kurzstand
|
||||||
|
|
||||||
@@ -22,6 +22,8 @@ Stand: 2026-06-05
|
|||||||
- Wechselkurs-Anwendungsdatum ist in Settings konfigurierbar und wird in der Rohdaten-Diagnose angezeigt.
|
- Wechselkurs-Anwendungsdatum ist in Settings konfigurierbar und wird in der Rohdaten-Diagnose angezeigt.
|
||||||
- Spartenanalyse war mit >90% nicht zugeordnet fachlich unplausibel; Materialabgleich normalisiert fuehrende Nullen und warnt bei >=90% ungeklaerter Abdeckung.
|
- Spartenanalyse war mit >90% nicht zugeordnet fachlich unplausibel; Materialabgleich normalisiert fuehrende Nullen und warnt bei >=90% ungeklaerter Abdeckung.
|
||||||
- Budgetkurse wurden als Finance-Kurse behandelt; CHF-Sicht bleibt getrennte Reporting-/Kontrollsicht, nicht stiller Ersatz fuer Hauswaehrungsabgleich.
|
- Budgetkurse wurden als Finance-Kurse behandelt; CHF-Sicht bleibt getrennte Reporting-/Kontrollsicht, nicht stiller Ersatz fuer Hauswaehrungsabgleich.
|
||||||
|
- Fokusdoku zum isolierten Kursfluss: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`.
|
||||||
|
- India/TRIN: produktive Route nach Fix/Deploy 2026-06-10 ist `SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`; Standort-Override nutzt `TRAFAGCONTROLS`.
|
||||||
- Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Interaktions-/Zoomprobleme.
|
- Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Interaktions-/Zoomprobleme.
|
||||||
|
|
||||||
## Wichtige Regeln
|
## Wichtige Regeln
|
||||||
@@ -31,6 +33,7 @@ Stand: 2026-06-05
|
|||||||
- Jahresabgrenzung ueber `PostingDate`, Fallback `InvoiceDate`, danach `ExtractionDate`.
|
- Jahresabgrenzung ueber `PostingDate`, Fallback `InvoiceDate`, danach `ExtractionDate`.
|
||||||
- Gutschriften/Storno laufen als negative Beleg-/Positionszeilen.
|
- Gutschriften/Storno laufen als negative Beleg-/Positionszeilen.
|
||||||
- Budget-CHF ist Kontroll-/Reporting-Kandidat, nicht Standardabgleich.
|
- Budget-CHF ist Kontroll-/Reporting-Kandidat, nicht Standardabgleich.
|
||||||
|
- `DocumentRate` aus dem ERP ist ein gespeichertes Quellfeld; die App-Kurstabelle wird nur bei Anzeige-Waehrung, expliziter `ConvertCurrency`-Transformation oder Budget-CHF-Kandidat verwendet.
|
||||||
|
|
||||||
## Offene Fachpunkte
|
## Offene Fachpunkte
|
||||||
|
|
||||||
@@ -89,12 +92,13 @@ Stand: 2026-06-05
|
|||||||
| ES | Sage CSV, `ImporteNeto`, REC/Credit negativ; Referenz 2025 korrigiert auf `3'082'320.18 EUR` |
|
| ES | Sage CSV, `ImporteNeto`, REC/Credit negativ; Referenz 2025 korrigiert auf `3'082'320.18 EUR` |
|
||||||
| IT | Hauswaehrung, `Trafag Italia` ausgeschlossen, Duplikatlogik fuer leeres Supplier country |
|
| IT | Hauswaehrung, `Trafag Italia` ausgeschlossen, Duplikatlogik fuer leeres Supplier country |
|
||||||
| UK | Sage/Manual Excel, GBP, `[Sales Price/Value] * [Quantity]`, Credit Notes negativ |
|
| UK | Sage/Manual Excel, GBP, `[Sales Price/Value] * [Quantity]`, Credit Notes negativ |
|
||||||
| IN | INR als Hauswaehrung |
|
| IN | SAGE/HANA `TRIN`, Schema `TRAFAG_LIVE`, INR als Hauswaehrung |
|
||||||
|
|
||||||
## Rohquellen Nur Bei Bedarf
|
## Rohquellen Nur Bei Bedarf
|
||||||
|
|
||||||
- Entscheide: `docs/FINANCE_ENTSCHEIDE.md`, `entscheide.md`
|
- Entscheide: `docs/FINANCE_ENTSCHEIDE.md`, `entscheide.md`
|
||||||
- Formeln je Land: `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md`
|
- Formeln je Land: `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md`
|
||||||
|
- Isolierter Kurs-Workflow: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`
|
||||||
- IT Detail: `docs/FINANCE_IT_VORGEHEN_2026-05-18.md`
|
- IT Detail: `docs/FINANCE_IT_VORGEHEN_2026-05-18.md`
|
||||||
- UK Korrektur: `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md`
|
- UK Korrektur: `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md`
|
||||||
- ES Detail: `SAGE_SPAIN_EXPORT_2026-05-05.md`
|
- ES Detail: `SAGE_SPAIN_EXPORT_2026-05-05.md`
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
# RAG Project
|
# RAG Project
|
||||||
|
|
||||||
Stand: 2026-06-05
|
Stand: 2026-06-10
|
||||||
|
|
||||||
## Kurzstand
|
## Kurzstand
|
||||||
|
|
||||||
- Fuehrende App: `TrafagSalesExporter`, publiziert als `BiDashboard`.
|
- Fuehrende App: `TrafagSalesExporter`, publiziert als `BiDashboard`.
|
||||||
- Letzter dokumentierter Stand: Finance-Schnelluebersicht, Expertenbereich, 3D-Datenanalyse und Spanien-Sage-All-in-one-rclone-Upload.
|
- Letzter dokumentierter Stand: India/TRIN SAGE-HANA-Fix deployed, Finance-Kursworkflow dokumentiert, aktive Markdown-Doku bereinigt.
|
||||||
- Validierung laut Doku: Finance-Sitzungsstand `82/82` Tests gruen; spaetere UI-/Deploy-Schritte wurden einzeln umgesetzt und deployed.
|
- Validierung laut Doku: `84/84` Tests gruen fuer den India-Fix; fruehere UI-/Deploy-Schritte wurden einzeln umgesetzt und deployed.
|
||||||
- Letzter dokumentierter Finance-Deploy: 2026-06-05 auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`.
|
- Letzter dokumentierter Deploy: 2026-06-10 auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`.
|
||||||
|
- India/TRIN: produktive Server-DB steht auf `TRIN -> SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`, User-Override `TRAFAGCONTROLS`.
|
||||||
|
- Doku-Delta: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` plus SVG; alte Finance-Stubs aus aktiver Markdown-Struktur entfernt, Volltexte bleiben im Raw-Archiv.
|
||||||
- Neu im Finance/Management-Cockpit: einfache Schnelluebersicht links sichtbar; tiefere Funktionen bleiben unter `Experten`.
|
- Neu im Finance/Management-Cockpit: einfache Schnelluebersicht links sichtbar; tiefere Funktionen bleiben unter `Experten`.
|
||||||
- Neu in der Navigation: Menuebaum wird aus `NavigationMenuItems` gerendert; Admins koennen bestehende Punkte unter `Admin > Menuestruktur` umhaengen, sortieren und aus-/einblenden.
|
- Neu in der Navigation: Menuebaum wird aus `NavigationMenuItems` gerendert; Admins koennen bestehende Punkte unter `Admin > Menuestruktur` umhaengen, sortieren und aus-/einblenden.
|
||||||
- Neu als Hauptbereich: `Einkauf` mit Einkaufswagen-Icon und erweitertem `Einkauf Dashboard`.
|
- Neu als Hauptbereich: `Einkauf` mit Einkaufswagen-Icon und erweitertem `Einkauf Dashboard`.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Last Change
|
# Last Change
|
||||||
|
|
||||||
Stand: 2026-06-08
|
Stand: 2026-06-10
|
||||||
|
|
||||||
Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
||||||
|
|
||||||
@@ -8,13 +8,20 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
|||||||
|
|
||||||
- Fuehrender Kurzkontext: `docs/rag/PROJECT.md`.
|
- Fuehrender Kurzkontext: `docs/rag/PROJECT.md`.
|
||||||
- Themenrouter: `docs/RAG_ROUTER.md`.
|
- Themenrouter: `docs/RAG_ROUTER.md`.
|
||||||
- Letzter dokumentierter Code-Stand: Finance-Spartenanalyse lokal weiter verbessert, Datenfluss fuer Andreas dokumentiert, Alphaplan-Discovery-Exporter fuer Deutschland erstellt.
|
- Letzter dokumentierter Code-Stand: India/TRIN HANA-Route gegen SourceSystem-Drift abgesichert; Finance-Kursworkflow und Markdown-Bereinigung dokumentiert.
|
||||||
- Letzte dokumentierte Validierung: `dotnet test TrafagSalesExporter.sln --no-restore --verbosity minimal` mit `83/83` Tests gruen.
|
- Letzte dokumentierte Validierung: `dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal` mit `84/84` Tests gruen.
|
||||||
- Wichtig: Die lokalen Finance-/Alphaplan-Aenderungen vom 2026-06-08 sind dokumentiert, aber noch nicht als neuer Deploy auf den IIS-Server beschrieben.
|
- Letzter dokumentierter Deploy: 2026-06-10 India/SAGE-HANA-Fix nach `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`.
|
||||||
|
- Neu umgesetzt und deployed: `TRIN`/Indien wird beim Seed auf `SourceSystem=SAGE`, Schema `TRAFAG_LIVE` und zentralen SAGE-HANA-Server `20.197.20.60:30015` repariert; Standort-User-/Passwort-Override bleibt erhalten.
|
||||||
|
- Server-DB am 2026-06-10 korrigiert: `TRIN -> SAGE -> 20.197.20.60:30015`, User-Override `TRAFAGCONTROLS`, Passwort-Override vorhanden. Backup: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak`.
|
||||||
|
- Deploy-Status 2026-06-10: `BiDashboard.dll` Zeitstempel `10.06.2026 08:20:25`; `app_offline.htm` wurde entfernt.
|
||||||
|
- Git-Commit India-Fix: `586adc3 Fix India SAGE HANA mapping`.
|
||||||
|
- Neu dokumentiert: Delta zum India-Deploy in `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md`.
|
||||||
- Neu lokal: Sparten-Finanzanalyse gruppiert standardmaessig nach `Produktsparte`; `Produktfamilie` und `PAPH1 Detail` bleiben als Umschaltoptionen erhalten.
|
- Neu lokal: Sparten-Finanzanalyse gruppiert standardmaessig nach `Produktsparte`; `Produktfamilie` und `PAPH1 Detail` bleiben als Umschaltoptionen erhalten.
|
||||||
- Neu lokal: Sparten-Finanzanalyse zeigt bei `Mixed`-Waehrung einen Warnhinweis, weil Summen/Anteile ueber mehrere Waehrungen fachlich nur eingeschraenkt belastbar sind.
|
- Neu lokal: Sparten-Finanzanalyse zeigt bei `Mixed`-Waehrung einen Warnhinweis, weil Summen/Anteile ueber mehrere Waehrungen fachlich nur eingeschraenkt belastbar sind.
|
||||||
- Neu lokal: Sparten-Finanzanalyse zeigt die groessten Treiber fuer `Nicht im TR-AG-Stamm`, damit hohe nicht zugeordnete Umsaetze nach Land/TSC/Material analysiert werden koennen.
|
- Neu lokal: Sparten-Finanzanalyse zeigt die groessten Treiber fuer `Nicht im TR-AG-Stamm`, damit hohe nicht zugeordnete Umsaetze nach Land/TSC/Material analysiert werden koennen.
|
||||||
- Neu dokumentiert: genauer Finance-Datenfluss fuer Andreas in `docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md`.
|
- Neu dokumentiert: genauer Finance-Datenfluss fuer Andreas in `docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md`.
|
||||||
|
- Neu dokumentiert: isolierter Finance-Kursworkflow in `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` mit SVG-Visualisierung `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg`, vom Land/Quellwert ueber `CurrencyExchangeRates` bis zur zentralen Dashboard-Analyse.
|
||||||
|
- Doku-Bereinigung: historische Finance-Stubs und der alte Finance-Handoff wurden aus der aktiven Markdown-Struktur entfernt; Volltexte bleiben in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`. Die veraltete deutsche Spanien-rclone-Anleitung wurde durch den aktuellen All-in-one-Guide ersetzt.
|
||||||
- Neu dokumentiert: Alphaplan SQL/rclone Konzept Deutschland in `docs/ALPHAPLAN_SQL_RCLONE_KONZEPT_DE_2026-06-08.md`.
|
- Neu dokumentiert: Alphaplan SQL/rclone Konzept Deutschland in `docs/ALPHAPLAN_SQL_RCLONE_KONZEPT_DE_2026-06-08.md`.
|
||||||
- Neu erstellt: Alphaplan Phase-1-Discovery-Paket `AlphaplanExportPackage` und `AlphaplanExportPackage.zip`.
|
- Neu erstellt: Alphaplan Phase-1-Discovery-Paket `AlphaplanExportPackage` und `AlphaplanExportPackage.zip`.
|
||||||
- Neu dokumentiert: Alphaplan Discovery Exporter Guide in `docs/ALPHAPLAN_DISCOVERY_EXPORTER_GUIDE_2026-06-08.md`.
|
- Neu dokumentiert: Alphaplan Discovery Exporter Guide in `docs/ALPHAPLAN_DISCOVERY_EXPORTER_GUIDE_2026-06-08.md`.
|
||||||
@@ -24,7 +31,7 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
|||||||
- Neu umgesetzt und deployed: 3D-Simulation mit Schiebereglern, u. a. fuer Wechselkurs-/Szenarioveraenderungen; Grafik reagiert in Echtzeit.
|
- Neu umgesetzt und deployed: 3D-Simulation mit Schiebereglern, u. a. fuer Wechselkurs-/Szenarioveraenderungen; Grafik reagiert in Echtzeit.
|
||||||
- Neu umgesetzt und deployed: 3D-Darstellung korrigiert fuer Canvas-Groesse, Achsen, Labelgroesse und breitere Indikatorauswahl.
|
- Neu umgesetzt und deployed: 3D-Darstellung korrigiert fuer Canvas-Groesse, Achsen, Labelgroesse und breitere Indikatorauswahl.
|
||||||
- Bekannter Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Probleme mit Interaktion/Groesse.
|
- Bekannter Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Probleme mit Interaktion/Groesse.
|
||||||
- Neu fuer Spanien: All-in-one-PS1 `SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1` erstellt; es exportiert Sage direkt per SQL-Range und laedt CSV/Summary via rclone nach SharePoint.
|
- Neu fuer Spanien: All-in-one-PS1 `SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1` erstellt; es exportiert Sage direkt per SQL-Range und laedt CSV/Summary via rclone nach SharePoint.
|
||||||
- Neu fuer Spanien: Standard-Range ist letzte 7 Tage bis heute; `FromDate`/`ToDate` koennen per Parameter ueberschrieben werden.
|
- Neu fuer Spanien: Standard-Range ist letzte 7 Tage bis heute; `FromDate`/`ToDate` koennen per Parameter ueberschrieben werden.
|
||||||
- Neu fuer Spanien: SharePoint-Ziel wird vor Export per rclone geprueft/angelegt: `trafag-bi:Import/Finance/Spanien`.
|
- Neu fuer Spanien: SharePoint-Ziel wird vor Export per rclone geprueft/angelegt: `trafag-bi:Import/Finance/Spanien`.
|
||||||
- Neu fuer Spanien: rclone-Uploadfehler `Can't set -v and --log-level` behoben; `--verbose` wurde aus dem All-in-one-Upload entfernt.
|
- Neu fuer Spanien: rclone-Uploadfehler `Can't set -v and --log-level` behoben; `--verbose` wurde aus dem All-in-one-Upload entfernt.
|
||||||
@@ -65,6 +72,41 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
|
|||||||
- Neu umgesetzt: `Einkauf Dashboard > 3D Simulation` mit festen Canvas-Abmessungen, Achsenbeschriftung, Diagrammarten, Labelgroesse und Szenario-Slider fuer Preis-/Wechselkurswirkung.
|
- Neu umgesetzt: `Einkauf Dashboard > 3D Simulation` mit festen Canvas-Abmessungen, Achsenbeschriftung, Diagrammarten, Labelgroesse und Szenario-Slider fuer Preis-/Wechselkurswirkung.
|
||||||
- Letzte Validierung: `dotnet test TrafagSalesExporter.sln --verbosity minimal` mit `83/83` Tests gruen; Test prueft auch Einkaufs-SAP-Seed mit Quellen/Joins/Mappings.
|
- Letzte Validierung: `dotnet test TrafagSalesExporter.sln --verbosity minimal` mit `83/83` Tests gruen; Test prueft auch Einkaufs-SAP-Seed mit Quellen/Joins/Mappings.
|
||||||
|
|
||||||
|
## Nachtrag 2026-06-10 India / SAGE HANA / Deploy
|
||||||
|
|
||||||
|
Ausgangslage:
|
||||||
|
|
||||||
|
- Indien (`TRIN`) schlug in den Exportlogs mit `authentication failed` fehl.
|
||||||
|
- Vergleich mit den Anfangslogs zeigte: erfolgreiche Laeufe am 2026-04-16 liefen auf `20.197.20.60:30015`; neuere Fehllauefe liefen auf `travtrp0:30015`.
|
||||||
|
- Ursache war Konfigurationsdrift: `TRIN` stand auf `SourceSystem=BI1`, der India-Server hatte kein `SourceSystem`, und der zentrale `SAGE`-Server hatte keinen Host.
|
||||||
|
|
||||||
|
Umgesetzt:
|
||||||
|
|
||||||
|
- Seed-Reparatur in `DatabaseSeedService`: `TRIN`/Indien wird auf `SAGE`, Schema `TRAFAG_LIVE` und SAGE-HANA `20.197.20.60:30015` gesetzt.
|
||||||
|
- Regressionstest `InitializeAsync_Repairs_India_Sage_Hana_Mapping`.
|
||||||
|
- Produktive Server-DB mit Backup direkt auf der Freigabe repariert.
|
||||||
|
|
||||||
|
Validierung:
|
||||||
|
|
||||||
|
- `dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal`
|
||||||
|
- Ergebnis: `84/84` Tests gruen.
|
||||||
|
- Server-DB-Pruefung: `TRIN -> SAGE -> 20.197.20.60:30015`, User-Override `TRAFAGCONTROLS`, Passwort-Override vorhanden.
|
||||||
|
|
||||||
|
Deploy:
|
||||||
|
|
||||||
|
- Release-Publish auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`.
|
||||||
|
- `BiDashboard.dll` Zeitstempel nach Deploy: `10.06.2026 08:20:25`.
|
||||||
|
- `app_offline.htm` wurde nach Publish/DB-Seed entfernt.
|
||||||
|
- Commit: `586adc3 Fix India SAGE HANA mapping`.
|
||||||
|
|
||||||
|
## Nachtrag 2026-06-10 Dokumentationsdelta
|
||||||
|
|
||||||
|
- Isolierter Kursworkflow angelegt: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`.
|
||||||
|
- SVG-Visualisierung angelegt: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg`.
|
||||||
|
- Aktive Markdown-Dokumente bereinigt: historische Finance-Stubs und die alte deutsche Spain-rclone-Anleitung entfernt.
|
||||||
|
- Fachinhalte bleiben erhalten: alte Volltexte liegen in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`.
|
||||||
|
- Spain-Finalpaket unter den bestehenden Spain-Paketordner verschoben: `SageSpainExportPackage/SageSpainFinalExportPackage/`.
|
||||||
|
|
||||||
## Nachtrag 2026-06-08 Alphaplan Deutschland / SQL Discovery / rclone Upload
|
## Nachtrag 2026-06-08 Alphaplan Deutschland / SQL Discovery / rclone Upload
|
||||||
|
|
||||||
Ziel:
|
Ziel:
|
||||||
@@ -226,7 +268,7 @@ Server-/rclone-Kontext:
|
|||||||
|
|
||||||
Umgesetzt:
|
Umgesetzt:
|
||||||
|
|
||||||
- Neues Einzel-Script `SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1`.
|
- Neues Einzel-Script `SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1`.
|
||||||
- Das Script macht alles in einem Lauf:
|
- Das Script macht alles in einem Lauf:
|
||||||
- Datum pruefen.
|
- Datum pruefen.
|
||||||
- rclone finden.
|
- rclone finden.
|
||||||
|
|||||||
Reference in New Issue
Block a user