9.2 KiB
Einkaufsdashboard 2026-06-05
Ziel
Der neue Bereich Einkauf soll die vorhandene Power-BI-Vorlage x.pbix aufnehmen und um weitere SAP-Einkaufsanalysen ergaenzen.
Aus x.pbix uebernommene Struktur
Analysierte PBIX-Seiten:
- Beschaffungsvolumen CHF je Lieferant.
- Einkaufsvolumen CHF je Lieferant als Kuchenansicht.
- Balkenansicht Volumen je Lieferant und Warengruppe.
- Diagramm Volumen je Warengruppe.
- Einkaufsvolumen CHF je Region.
- Preisentwicklung CHF.
- Matrix Volumen je Warengruppe.
Sichtbare PBIX-Felder:
EKPOSet.Netwr CHFEKPOSet.Netwr CHF/StkEKKOSet.BedatData.NameData (2).WG komplettEKPOSet.MatnrEKPOSet.Txz01
Zusaetzlich aufgenommene SAP-Themen
Das Dashboard wurde fachlich um diese Bereiche erweitert:
- Spend total vergangen nach Jahr, Lieferant, Warengruppe und Artikel.
- Offene Bestellwerte und offene Mengen nach Lieferant, Warengruppe und Artikel.
- Offene Verpflichtungen / Mengenkontrakte nach Lieferant, Warengruppe und Artikel.
- Lieferantenbewertungen und Performance nach Lieferant, Warengruppe und Artikel.
Aktueller Implementierungsstand
- Route:
/einkauf. - Hauptnavigation: eigener Punkt
Einkaufmit Einkaufswagen-Icon. - Tabs im Einkaufsdashboard:
- Die frueheren Tabs wurden in echte linke Navigationspunkte unter
Einkaufumgebaut.
- Die frueheren Tabs wurden in echte linke Navigationspunkte unter
Einkauf Dashboard: Uebersicht, SAP-Datenfluss, Live-Status und Analyseachsen.Spend: Spend total vergangen nach Jahr, Lieferant, Warengruppe und Artikel.Offene Bestellungen: offene Werte, Mengen und Faelligkeiten.Kontrakte: offene Verpflichtungen und Kontrakt-Restwerte.Lieferanten: Lieferantenbasis, Performance und Datenstatus.Ideen: aufklappbarer Navigationspunkt fuer die naechsten Umsetzungsbausteine.Uebersicht.Einkauf-Datenservice.Liefertermin-Risiko.Preisabweichung.Spend-Konzentration.Datenqualitaet.
Kennzahlen-Katalog: fachlicher KPI-Katalog fuer den naechsten Ausbau.PBIX Vorlage: ausx.pbixuebernommene Seiten/Visuals.3D Simulation: drehbare 3D-What-if-Analyse.
- Unterpunkt
Einkauf > Datenquellenfuer SAP/OData-Verbindung, Quellen, Join-Fluss und Zielmappings. - Die Seite ist als Cockpit-Struktur umgesetzt und zweisprachig ueber den vorhandenen UI-Sprachservice vorbereitet.
- EKKO, EKPO und EKET werden per SAP/OData in lokale Cache-Tabellen geladen.
- Das Cockpit liest zuerst den Cache und nutzt nur noch als Fallback eine begrenzte Live-Probe, falls noch kein Cache vorhanden ist.
Navigation und Admin-Steuerung
Stand 2026-06-05: Die Einkaufsbereiche sind nicht mehr als obere Tabs im Dashboard versteckt, sondern als eigene URLs umgesetzt:
/einkauf/einkauf/spend/einkauf/offene-bestellungen/einkauf/kontrakte/einkauf/lieferanten/einkauf/ideen/einkauf/ideen/datenservice/einkauf/ideen/liefertermin-risiko/einkauf/ideen/preisabweichung/einkauf/ideen/spend-konzentration/einkauf/ideen/datenqualitaet/einkauf/kennzahlen/einkauf/pbix/einkauf/3d/einkauf/verbindungen
Die Defaults werden ueber NavigationMenuItems geseedet. Dadurch kann der Admin in Admin > Menuestruktur einzelne Einkaufs-Unterpunkte ausblenden, sortieren oder umhaengen.
SAP/OData-Konfiguration
Vorbefuellte Quellen:
EKKO -> EKKOSetEKPO -> EKPOSetEKET -> eketSetLIEF -> DataWG -> Data2
Vorbefuellte Joins:
EKKO.Ebeln = EKPO.EbelnEKPO.Ebeln,Ebelp = EKET.Ebeln,EbelpEKKO.Lifnr = LIEF.LifnrEKPO.Matkl = WG.Matkl
Die Seite verwendet dieselben Grundtabellen wie die Finance-/Standorte-Quellenpflege: Sites, SapSourceDefinitions, SapJoinDefinitions, SapFieldMappings.
SAP/OData Live-Stand 2026-06-05
Der SAP-Test hat bestaetigt, dass die Einkaufstabellen Daten enthalten:
EKKOab01.01.2026: 2'748 Koepfe.EKPOgesamt: 233'920 Positionen.EKETgesamt: 242'571 Einteilungen.- Join
EKKO -> EKPOab01.01.2026: 3'464 Zeilen. - Join
EKKO -> EKETab01.01.2026: 3'458 Zeilen.
Nach Aktivierung der angepassten SAP-Methoden liefern die OData-Services:
EKPOSet?$top=5: HTTP 200 mit Daten.eketSet?$top=5: HTTP 200 mit Daten.EKPOSet?$filter=Ebeln eq '45148366': 1 Zeile.eketSet?$filter=Ebeln eq '45148366': 1 Zeile.
Wichtig: Die OData-Property heisst Ebeln. Ein Filter mit EBELN liefert HTTP 400.
Full Load / Delta Stand 2026-06-05
Der erste vollstaendige SAP-Load wurde am 2026-06-05 ausgefuehrt.
Geladene Cache-Zeilen:
PurchasingEkkoCache: 172'874 EKKO-Koepfe.PurchasingEkpoCache: 233'921 EKPO-Positionen.PurchasingEketCache: 242'572 EKET-Einteilungen.
Technische Logik:
- SAP liefert pro OData-Seite maximal 1'000 Zeilen.
- Der Loader liest deshalb mit
$top=1000,$skipund stabiler Sortierung:EKKOSet:$orderby=Ebeln.EKPOSet:$orderby=Ebeln,Ebelp.eketSet:$orderby=Ebeln,Ebelp,Etenr.
- Nicht vorhandene OData-Felder wurden entfernt:
EKKOSet.Bsartexistiert in diesem Service nicht.EKPOSet.Meinsexistiert in diesem Service nicht.
- Nach dem Full Load kann
Delta aktualisierengenutzt werden. Delta liest geaenderte EKKO-Belege abAedatund laedt die zugehoerigen EKPO/EKET-Zeilen je Beleg nach.
Live-Kennzahlen im Dashboard
Die Seite /einkauf zeigt nun echte Werte aus dem SAP-Cache:
Spend total: SummeEKPOSet.Netwraus dem Cache.Offene Bestellungen: Anzahl EKKO-Belege seit Jahresbeginn.Kontrakte: offener Restwert ausEKET.Menge - EKET.Wemngbewertet mit EKPO-Netto-Stueckwert.Offener Bestellwert: berechnet aus EKET-Offenmenge und EKPO-Netto-Stueckwert.Offene Menge: Summe offener EKET-Mengen.- Top-Lieferant, Top-Warengruppe und Top-Artikel werden aus EKPO gruppiert.
- Spend-, Offenwert- und Kontrakt-Diagramme verwenden Cache-Gruppierungen, sofern der Cache gefuellt ist.
- Ist der Cache leer oder nicht erreichbar, faellt das Dashboard auf eine begrenzte SAP-Live-Probe zurueck.
Ideen und Kennzahlen-Katalog
Der Ideenbereich wurde fuer den Einkauf erweitert:
- Lieferantenrisiko.
- Preisabweichung.
- Maverick Buying.
- Rahmenvertragsnutzung.
- Working Capital.
- Datenqualitaet.
- Liefertermin-Risiko.
- Spend-Konzentration.
- Savings Tracker.
- Bestellrhythmus.
Stand nach Ausbau: Unter /einkauf/ideen ist jede Idee als aufklappbarer Baustein beschrieben. Pro Idee sind Ziel, Datenbasis, Kennzahlen, Berechnungslogik, Visualisierung und naechster Umsetzungsschritt hinterlegt.
Der separate Kennzahlen-Katalog enthaelt nun konkrete Ausbau-KPIs mit Dimension und Datenbasis, darunter:
- Spend CHF.
- Top-10-Lieferantenanteil.
- Risiko-Score 0-100.
- Preisdelta in Prozent und CHF.
- Letzter Preis vs. Vorjahr.
- Anteil ausserhalb Vertrag.
- Abrufquote.
- Ueberfaelliger offener Wert.
- Offene Menge faellig in 30 Tagen.
- Cash Forecast.
- Kleinstbestellungen.
- Realisierte Einsparung.
- Mapping-Abdeckung.
- Fehlende Warengruppe / fehlender Artikeltext.
3D Simulation
Das Einkaufsdashboard hat eine eigene 3D-Simulation fuer wichtige Einkaufsindikatoren:
- Spend CHF.
- Offener Bestellwert.
- Offene Menge.
- Kontrakt-Restwert.
- Lieferantenperformance.
Die Simulation nutzt feste Canvas-Groessen, sichtbare Achsen, waehlbare Diagrammarten, Labelgroesse und einen Szenario-Slider fuer Preis-/Wechselkurswirkung.
Naechster Schritt fuer Live-Daten
Die technische Vollbasis ist geladen. Fuer fachlich finale Management-Sichten muessen noch diese Abgrenzungen abgestimmt werden:
- Jahres-/Periodenfilter fuer
EKKOSet.Bedat. - Periodenlogik fuer historische und offene Werte.
- Kontrakte und offene Verpflichtungen, inkl. fachlicher Abgrenzung von normalen Bestellungen und Umlagerungen.
- Lieferantenbewertung / Performance, falls im SAP-System als OData- oder HANA-Quelle verfuegbar.
Der Delta-/Refresh-Prozess ist technisch vorbereitet und im Dashboard unter Einkauf > Ideen > Einkauf-Datenservice bedienbar.
Geaenderte Programmstellen
Components/Pages/PurchasingDashboard.razor- KPI-Karten, Detailtabellen und Diagramme lesen jetzt Live-Werte aus
PurchasingDashboardLiveState. - Fallback-Simulation bleibt sichtbar, falls SAP/OData nicht antwortet.
- Die alten Tabs wurden in routenbasierte Seiten unter
/einkauf/...umgebaut. - Ideen und Kennzahlen-Katalog sind getrennte Seiten.
- KPI-Karten, Detailtabellen und Diagramme lesen jetzt Live-Werte aus
Services/DatabaseSeedService.cs- Neue Einkaufs-Unterpunkte werden in
NavigationMenuItemsgeseedet. - Admins koennen die Unterpunkte ueber die Menuestruktur ausblenden, sortieren oder umhaengen.
- Neue Einkaufs-Unterpunkte werden in
Services/IPurchasingDashboardService.cs- Live-State um Spend, offene Menge, offenen Wert, Kontraktwert und Live-Diagrammzeilen erweitert.
Services/PurchasingDashboardService.cs- Liest EKKO, EKPO und EKET aus dem Einkauf-Cache und nutzt SAP-Live nur als Fallback.
- Berechnet Spend aus EKPO.
- Berechnet offene Mengen/Werte aus EKET minus Wareneingangsmenge, bewertet mit EKPO-Netto-Stueckwert.
- Erstellt Top-Gruppierungen fuer Lieferant, Warengruppe und Artikel.
Services/PurchasingDataRefreshService.cs- Fuehrt Full Load und Delta-Refresh fuer EKKO/EKPO/EKET aus.
- Beruecksichtigt das SAP-Seitenlimit von 1'000 Zeilen.
Services/DatabaseInitializationService.SchemaSql.cs- Erstellt
PurchasingEkkoCache,PurchasingEkpoCache,PurchasingEketCacheundPurchasingSyncState.
- Erstellt