Files
Ai/powerbi/HANDOFF_2026-05-11.md

441 lines
10 KiB
Markdown

# Handoff Power BI HR KPI - 2026-05-11
## Kontext
Ziel ist ein Power-BI-Dashboard fuer HR-KPIs Schweiz. HR soll das Dashboard konsumieren, nicht selbst bauen. Die Daten sollen aus SAP und mehreren Rexx-Exports in Power BI zusammengefuehrt werden.
Der aktuelle Fokus ist Phase 1: Zeit und Absenzen, insbesondere Krankheit, Unfall, Ferien, GLZ/Saldo und Vergleich der Quoten mit SAP.
## Dateien im Projektordner
Arbeitsordner:
```text
C:\Users\koi\source\repos\Ai\Powerbi
```
Vorhandene Dateien:
```text
HR_KPI_Formeln_CH.xlsx
infos.txt
infos2.txt
```
`infos.txt` und `infos2.txt` wurden gelesen. Sie enthalten den bisherigen Chat-/Projektverlauf zum HR-KPI-Dashboard.
## Relevante Exportdateien in C:\temp
In `C:\temp` wurden relevante SAP- und Rexx-Dateien gefunden:
```text
C:\temp\HR_KPI_EXPORT.xlsx
C:\temp\Abwesenheitinstunden.xlsx
C:\temp\Exportkommengehen.xlsx
C:\temp\Saldiperstichdatum.xlsx
C:\temp\Saldistundenferien.xlsx
C:\temp\Personalausgeschieden.xlsx
```
Wichtige Beobachtung: `HR_KPI_EXPORT.xlsx` wirkt wie ein SAP-Live-Export. Die ersten gelesenen Daten waren fuer `Geschäftsjahr = 2026` und `Buchungsperiode = 4`, also April 2026. Fuer den von HR gewuenschten Test Q1/2026 muessen vermutlich SAP-Daten fuer Perioden 1, 2 und 3 exportiert bzw. bereitgestellt werden.
## Vorhandene Formelmappe
Datei:
```text
C:\Users\koi\source\repos\Ai\Powerbi\HR_KPI_Formeln_CH.xlsx
```
Sheets:
```text
KPI_Formeln
Beispielrechnung
PowerBI_Mapping
```
Diese Datei ist aktuell eine Formel-/Beispielmappe, keine Live-Datendatei.
### Inhalt KPI_Formeln
Enthaelt mathematische Definitionen fuer:
- Krankheitstage je Mitarbeitenden
- Krankheitstage gesamt
- Krankheitsquote %
- Unfallquote %
- Gesundheitsbedingte Absenzen %
- Soll-Arbeitszeit %
- FTE
- allgemeine Prozentanteile
Wichtige Formelidee:
```text
Krankheitstage je Mitarbeitenden = Krankheitsstunden / persoenliche Sollzeit pro Tag
Krankheitsquote % = Summe Krankheitsstunden / Summe Soll-Arbeitsstunden * 100
Unfallquote % = (BU-Stunden + NBU-Stunden) / Summe Soll-Arbeitsstunden * 100
Gesundheitsbedingte Absenzen % = (Krankheit + BU + NBU) / Sollstunden * 100
```
### Inhalt Beispielrechnung
Enthaelt Beispielwerte fuer drei Mitarbeitende:
- Vollzeit
- Teilzeit 50%
- 80%
Diese Beispielrechnung dient zum Validieren der Formellogik.
### Inhalt PowerBI_Mapping
Enthaelt Mapping von KPI auf Power-BI-Felder/Measures, z.B.:
- `Rexx_Absenzen[Krankheit_Gesamt_Std]`
- `M_Krankheitstage_Gesamt`
- `M_Gesundheitsbedingte_Absenzen_Prozent`
- `HR_KPI_Daten[FTE]`
## Architekturentscheidung
SAP und Rexx werden nicht in SAP zusammengefuehrt.
Stattdessen:
```text
SAP CSV/XLSX + mehrere Rexx XLSX/CSV + manuelle Excel-Dateien
werden in Power BI ueber Personalnummer/PERNR zusammengefuehrt.
```
### SAP-Report
Der SAP-Report `Z_HR_KPI_CONSOLIDATE` liefert nur SAP-Daten:
- Stammdaten
- Organisation/Kostenstelle
- Beschaeftigungsgrad/FTE
- Ein-/Austritt
- Lohn
- SAP-Abwesenheiten
- Stellenplan
- CSV-/Excel-Export fuer Power BI
Rexx-Daten werden nicht aus SAP extrahiert. Rexx-Felder im SAP-Report sind nur Platzhalter bzw. sollten langfristig eher separat aus Rexx kommen.
### Rexx
Rexx kann nicht alles in einem Export liefern, da pro Export maximal ca. 40 Felder moeglich sind. Daher werden thematische Exports benoetigt:
- Abwesenheiten/Krankheit
- Ferien
- GLZ/Salden/Ueberstunden
- Austritte/Fluktuation
- Pulsumfrage/Zufriedenheit
- ggf. weitere Themen
## Gelesene Spalten aus den Live-/Exportdateien
### C:\temp\HR_KPI_EXPORT.xlsx
Sheet:
```text
Data
```
Dimension:
```text
A1:AK1139
```
Relevante Spalten aus Zeile 1:
```text
Personalnummer
Geschäftsjahr
Buchungsperiode
Buchungskreis
Personalbereich
Personalteilbereich
Kostenstelle
Organisationseinheit
Planstelle
Stellenschlüssel
Mitarbeiterkreis
Abrechnungskreis
Teilzeitkraft
Mitarbeitergruppe
Beschäftigungsgrad %
Vorname
Nachname
Geschlecht
Geburtsdatum
Datum
Datum
Bruttolohn Monat
Krankheitstage gesamt
Krankheit < 60 Tage
Krankheit >= 60 Tage (LZK)
Nichtberufsunfall Tage
Berufsunfall Tage
Soll-Stelle vorhanden
Pulsumfrage Score (Rexx)
MA-Zufriedenheit (Rexx)
Kununu Score
Angelegt am
Uhrzeit
Angelegt von
```
Beispiel aus den ersten Datenzeilen:
```text
Personalnummer 2005, Geschäftsjahr 2026, Buchungsperiode 4
Personalnummer 2010, Geschäftsjahr 2026, Buchungsperiode 4
Personalnummer 2012, Geschäftsjahr 2026, Buchungsperiode 4
```
Hinweis: Fuer Q1/2026 brauchen wir Perioden 1, 2, 3 oder einen Q1-Gesamtexport.
### C:\temp\Abwesenheitinstunden.xlsx
Sheet:
```text
Abwesenheit in Stunden
```
Dimension:
```text
A1:Z253
```
Spalten:
```text
Personalnummer
Foto rund
Nachname, Vorname (Link Personal)
Stelle
Organisation
Leitung j/n
Eintrittsdatum
Personal Status
Krank nicht buchbar angetreten (Stunden Ind.)
Krankheit angetreten (Stunden Ind.)
Krank nicht buchbar angetreten (Stunden)
Krankheit angetreten (Stunden)
Krank nicht buchbar angetreten (Zeitraum)
Krankheit angetreten (Zeitraum)
Krank nicht buchbar ausstehend (Stunden Ind.)
Krankheit ausstehend (Stunden Ind.)
Krank nicht buchbar gebucht gesamt (Stunden)
Krankheit genehmigt (Zeitraum)
Krank nicht buchbar genehmigt (Zeitraum)
Krankheit genehmigt (Stunden)
Krank nicht buchbar genehmigt (Stunden)
Krankheit genehmigt (Stunden Ind.)
Krank nicht buchbar genehmigt (Stunden Ind.)
Krankheit gebucht gesamt (Stunden)
Krankheit gebucht gesamt (Stunden Ind.)
Krank nicht buchbar gebucht gesamt (Stunden Ind.)
```
Wichtig: Rexx liefert Krankheit in Stunden. Laut Projektentscheidung ist Rexx fuer Krankheit/Absenzen fuehrend, weil SAP nur Tage liefert.
### C:\temp\Exportkommengehen.xlsx
Sheet:
```text
Export KOMMENGEHEN
```
Dimension:
```text
A1:O253
```
Spalten:
```text
Sozialversicherungsnummer
Nachname, Vorname (Link Personal)
Geburtsdatum
Personal Status
Stelle
Organisation
Arbeitszeitmodell
Arbeitszeit
Ø tägliche Sollarbeitszeit (Woche)
Arbeitszeit Mo.
Arbeitszeit Di.
Arbeitszeit Mi.
Arbeitszeit Do.
Arbeitszeit Fr.
Arbeitszeit Sa.
```
Wichtig: Dieser Export enthaelt keine Personalnummer, sondern Sozialversicherungsnummer und Namen. Fuer stabile Power-BI-Joins ist Personalnummer besser. Falls moeglich, Rexx-Export um `Personalnummer` ergaenzen.
### C:\temp\Saldiperstichdatum.xlsx
Sheet:
```text
Saldi per Stichdatum
```
Dimension:
```text
A1:Q253
```
Spalten:
```text
Personalnummer
Kürzel
Nachname, Vorname (Link Personal)
Stelle
Organisation
Kostenstelle
Leitung j/n
Eintrittsdatum
Personal Status
Anstellungsverhältnis
Stunden Saldo
Urlaubsanspruch
Urlaub Rest
Ferien ausstehend (Tage)
Lohnart
Lohn
Lohn Währung
```
Dieser Export ist wichtig fuer:
- GLZ/Stunden Saldo
- Ferienanspruch
- Urlaub Rest
- Ferien ausstehend
- ggf. Lohn aus Rexx, wobei SAP fuer Lohn fuehrend/sensibler sein sollte
## Fachliche Entscheidungen aus den TXT-Dateien
- HR soll das Dashboard konsumieren, nicht bauen.
- Phase 1 ist Zeit und Absenzen.
- Rexx ist fuer Krankheit/Absenzen fuehrend.
- SAP liefert ergaenzende Basisdaten, die Rexx nicht sauber oder nicht vollstaendig liefert.
- Kununu wird manuell gepflegt.
- Refline/Time-to-hire ist spaeteres Thema.
- Rexx Scheduled Reports wurden gesucht, aber offenbar nicht gefunden/freigeschaltet.
- Manuelles Ablegen der Exports in einem Ordner ist fuer den Start akzeptabel.
## Welche Daten nur aus SAP kommen
Diese Felder sind wichtig und kommen eher aus SAP als aus Rexx:
- Geschlecht
- Beschaeftigungsgrad %
- FTE-Grundlage
- Mitarbeitergruppe/Mitarbeiterkreis
- Planstelle/Stellenschluessel
- Soll-Stelle vorhanden
- Bruttolohn Monat
- SAP-Abwesenheiten fuer Vergleich
- BU-/NBU-Tage, falls nicht in Rexx als Stunden vorhanden
## Welche Daten aus Rexx kommen
Rexx ist wichtig fuer:
- Krankheit in Stunden
- Krankheit genehmigt/gebucht/angetreten/ausstehend
- GLZ/Stunden Saldo
- Ferienanspruch
- Urlaub Rest
- Ferien ausstehend
- Organisation/Kostenstelle aus Rexx fuer operative Sicht
- ggf. Pulsumfrage/Zufriedenheit
## Q1/2026-Test mit Live-Daten
HR-Anfrage:
> Waere es moeglich, dass wir mit den Live Daten das Q1/2026 testen koennten? Dann koennten wir die Quoten mit jenen aus dem SAP vergleichen um zu pruefen, ob wir die identischen Formeln haben.
Interpretation:
Es soll mit Live-Daten fuer Q1/2026 gerechnet werden:
```text
Januar 2026
Februar 2026
Maerz 2026
```
Dann sollen die berechneten Quoten gegen SAP verglichen werden.
### Noetige Daten fuer Q1/2026
Aus SAP:
- Export fuer Perioden 1, 2, 3 im Jahr 2026
- oder ein Export, der Q1 kumuliert enthaelt
Aus Rexx:
- Abwesenheit/Krankheit mit Zeitraum Q1/2026
- Sollzeit pro Mitarbeitenden fuer Q1/2026
- optional BU/NBU, falls Rexx das liefert
- GLZ/Ferien nur falls fuer den Q1-Vergleich benoetigt
### Kritischer Punkt
Die aktuell gefundene SAP-Datei `C:\temp\HR_KPI_EXPORT.xlsx` zeigt in den ersten Datenzeilen Periode 4/2026. Das reicht nicht fuer Q1/2026.
Naechster sinnvoller Schritt:
1. SAP-Report fuer Q1/2026 laufen lassen, also Perioden 1 bis 3 oder Q1-Gesamt.
2. Rexx-Abwesenheitsexport ebenfalls fuer Q1/2026 ziehen.
3. Power-BI-/Excel-Testdatei erstellen, die beide Quellen ueber Personalnummer verbindet.
4. Quoten berechnen:
- Krankheitsquote %
- Unfallquote %
- Gesundheitsbedingte Absenzen %
- Krankheitstage gesamt
5. Ergebnis mit SAP-Quote vergleichen.
## Technische Hinweise aus dieser Session
Excel-Dateien wurden nicht ueber Excel-GUI bearbeitet, sondern als XLSX-Zip/XML gelesen. Das vermeidet Dateisperren.
Ein Versuch mit Excel-COM hing und wurde abgebrochen. Danach wurde ein unsichtbarer Excel-Prozess geprueft. Beim Beenden war der Prozess bereits nicht mehr vorhanden. Es wurden keine Excel-Dateien gespeichert oder veraendert.
In dieser Session wurde bis zur Erstellung dieser Handoff-Datei keine vorhandene Excel-Datei manipuliert.
## Empfohlene Antwort an HR
Vorschlag:
```text
Ja, das koennen wir machen. Fuer den Q1/2026-Test brauche ich die Live-Exports fuer Januar bis Maerz 2026 bzw. einen Q1-Gesamtexport aus SAP sowie den passenden Rexx-Abwesenheitsexport fuer denselben Zeitraum. Dann berechne ich die Quoten mit unserer Formel und stelle sie den SAP-Werten gegenueber, damit wir Abweichungen in Definition oder Zeitraum sofort sehen.
```
## Offene Punkte
- SAP-Q1/2026-Datei fehlt noch oder wurde noch nicht gefunden.
- Rexx-Q1/2026-Abwesenheitsexport muss bereitgestellt werden.
- Klaeren, ob `Exportkommengehen.xlsx` kuenftig Personalnummer enthalten kann. Ohne Personalnummer ist der Join unsauber.
- Klaeren, ob BU/NBU in Rexx als Stunden verfuegbar ist oder fuer Unfallquote weiter aus SAP-Tagen umgerechnet werden muss.
- Definieren, ob Q1-Quote mit Sollstunden aus Kalender/SAP oder Rexx-Sollarbeitszeit gerechnet wird.
- Sicherstellen, dass alle Dateien denselben Zeitraum abdecken.