as ich verstanden habe: Ursprüngliches Ziel: Power BI Schulung für 3-4 HR-Damen (Schweiz) Korrektur: HR soll nur konsumieren, nicht selbst bauen → du baust das Dashboard Aktueller Stand: ABAP-Report Z_HR_KPI_CONSOLIDATE wurde erstellt, der HR-Daten konsolidiert Der Report zieht: Stammdaten (PA0001, PA0002, PA0007, PA0008) Abwesenheiten (PA2001) mit Unterscheidung Kurz-/Langzeit (Grenze: 61 Tage) Stellenplan-Soll (HRP1000) Platzhalter für Rexx-Daten (Pulsumfrage etc.) Offene Punkte laut Anforderungen: Pulsumfrage → nur in Rexx, nicht in SAP Kununu-Score → manuell aus Excel Refline/Time-to-hire → wird durch Rexx abgelöst Z-Tabelle ZHRKPI_CONSOLIDATED muss noch in SE11 angelegt werden Was brauchst du jetzt von mir? Die SE11-Tabellenstruktur für ZHRKPI_CONSOLIDATED? Den ABAP-Report reviewen/korrigieren? Etwas anderes? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources tutorialgateway.org Get Data from Text File to Power BI How to connect Power BI to Text Files and get data from txt files. Here, we load data from text files to Power BI & generate a column chart. powerbi.com Solved: Query data from unstructured text file (*.txt) - Microsoft Power BI Community Notes: Using Power BI Report Server (PBI RS). Unstructured text file with 8 columns. The columns are separated by spaces but the number of spaces between the columns vary from column to column. microsoft.com Exportieren und Mailen eines Berichts mit Power Automate - Power BI | Microsoft Learn Ausführliche Beschreibungen dieser Parameter finden Sie unter Exportieren in Datei für Power BI-Berichte. https://app.powerbi.com/groups/workspaceGuid/reports/reportGuid/ReportSection?bookmarkGuid=xxxxxxxxxx · Wählen Sie Neuer Schritt aus. Suchen Sie in Aktion auswählen nach Outlook, und wählen Sie E-Mail senden (V2) aus. Füllen Sie in E-Mail senden (V2) die Felder An, Betreff und Text für Ihre E-Mail aus. wenn ich über webservice anzapfe können andere lohndaten sehen :) Workflow Thinking Searching Thinking Responding Ja, genau das ist ein kritisches Sicherheitsproblem!Wenn du einen Webservice auf die Tabelle ZHRKPI_CONSOLIDATED legst, können potenziell Lohndaten (LOHN_BRUTTO) von anderen Mitarbeitern eingesehen werden.Optionen zur Absicherung: Lohndaten komplett rauslassen aus der Webservice-Tabelle Separate Tabelle ZHRKPI_LOHN nur für Fibu/GL mit eigenem, restriktivem Service Die "normale" KPI-Tabelle enthält keine Lohndaten Row-Level Security im Webservice Benutzer sieht nur Daten seiner Kostenstelle/Org.einheit Aufwändig zu implementieren, fehleranfällig Aggregierte Daten statt Einzeldaten Webservice liefert nur Summen pro Kostenstelle/Abteilung, keine Einzelpersonen Dann kann niemand Rückschlüsse auf einzelne Gehälter ziehen Zwei getrennte Reports/Tabellen ZHRKPI_CONSOLIDATED → ohne Lohn, für alle ZHRKPI_LOHN_AGGREGIERT → Lohnkosten nur aggregiert pro Kostenstelle Meine Empfehlung: Option 1 oder 4 - Lohndaten physisch trennen. Dann kann auch bei einer Fehlkonfiguration nichts passieren.Frage an dich: Wer genau soll Lohndaten sehen dürfen? (Nur Fibu? GL?) Reichen aggregierte Lohnkosten pro Abteilung/Monat, oder braucht jemand Einzelgehälter? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources datev.de DATEV Lohnimportdatenservice Sicherer Übertragungsweg von sensiblen ... über den Status der auszutauschenden Daten · Leistungsbeschreibung API DATEV Lohnimportdatenservice ·... allianz.ch Lohndatendeklaration UVG, KKV & BVG | Übersicht | Allianz Melden Sie uns die Lohndaten Ihres Unternehmens elektronisch – direkt aus Ihrer Lohnsoftware (ERP) wie Bexio oder Abacus. Egal, ob für die Unfallversicherung, die Krankenversicherung oder die berufliche Vorsorge. Oder wählen Sie für die Unfall- und Krankenversicherung den Webservice der Allianz Suisse, um die Lohndaten zu deklarieren. allianz.ch Ihre Vorteile Reduktion administrativer Aufwand Mit dem Webservice der Allianz Suisse können Sie uns die · Lohndaten für die Berechnung der definitiven Jahresprämie der odedr einfach ein file erstellen und in powerbi reinziehen, steht jedentag bereitz Workflow Thinking Searching Thinking Responding Ja, das ist die einfachste und sicherste Lösung!Vorteile File-basiert (CSV/Excel täglich): Keine Lohndaten-Exposure - du kontrollierst exakt was im File steht Kein Webservice-Risiko - keine Berechtigungslücken möglich Power BI kann scheduled refresh auf Netzlaufwerk/SharePoint Einfach zu debuggen - File ist lesbar, kein Black-Box-API HR kann notfalls manuell prüfen was rausgeht Umsetzung:Der ABAP-Report Z_HR_KPI_CONSOLIDATE braucht nur eine kleine Erweiterung: Statt in Z-Tabelle schreiben → CSV auf Applikationsserver ablegen Oder direkt Download auf Netzlaufwerk (GUI_DOWNLOAD im Batch) Fragen bevor ich den Report anpasse: Wohin soll das File? SAP Applikationsserver (AL11-Pfad)? Netzlaufwerk (UNC-Pfad \\server\share\...)? SharePoint (dann eher via separaten Job)? Welche Felder NICHT ins File? LOHN_BRUTTO raus? VORNA/NACHN raus (nur PERNR)? Oder aggregiert pro Kostenstelle (keine Einzelpersonen)? Dateiformat: CSV mit Semikolon (Excel-freundlich CH) oder Tab-getrennt? Dateiname: z.B. HR_KPI_YYYYMMDD.csv oder fixer Name der überschrieben wird? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources microsoft.com Erste Schritte mit Power BI Desktop - Power BI | Microsoft Learn Öffnen Sie im Power BI-Dienst (https://app.powerbi.com) Ihren Bericht oder Ihr Dataset. microsoft.com Anmelden und Abmelden beim Power BI-Dienst - Power BI | Microsoft Learn Erfahren Sie, wie Sie sich beim Power BI-Dienst im Web anmelden und abmelden, Ihr Konto verwalten und sicher mit Ihren Business Intelligence-Inhalten interagieren. microsoft.com Sichern und Wiederherstellen von Power BI Premium-Semantikmodellen - Power BI | Microsoft Learn Hier erfahren Sie mehr über das Sicherungs- und Wiederherstellungsfeature für Semantikmodelle mit einer Power BI Premium- oder Premium-Einzelbenutzerlizenz. ok mach sonst handstart dann am schluss download als csv, die damen können transaktion starten Workflow Thinking Searching Thinking Responding Verstanden. Ich prüfe den Report gegen die Requirements:Was im Report drin ist: Requirement Status Quelle Headcount/FTE (Beschäftigungsgrad) ✅ PA0001 + PA0007 (EMPCT) Stammdaten (Name, Geschlecht, Gebdat) ✅ PA0002 Kostenstelle, Org.einheit, Planstelle ✅ PA0001 Ein-/Austrittsdatum ✅ PA0000 Kranktage gesamt ✅ PA2001 Kranktage kurz (<60 Tage) ✅ PA2001 (0220, 0230, 0240, 0260) Kranktage lang (>=61 Tage) ✅ PA2001 (0270) NBU-Tage ✅ PA2001 (0350, 0360) BU-Tage ✅ PA2001 (0280, 0290, 0300, 0310) Ferientage ✅ PA2001 (0100) Lohnkosten (Brutto) ✅ PA0008 Stellenplan Soll ✅ HRP1000 Pulsumfrage ⚠️ Platzhalter Nur in Rexx, nicht in SAP MA-Zufriedenheit ⚠️ Platzhalter Nur in Rexx Kununu-Score ⚠️ Platzhalter Manuell aus Excel Time-to-hire (Refline) ⚠️ Platzhalter Wird durch Rexx abgelöst Was noch fehlt für Power BI: Z-Tabelle ZHRKPI_CONSOLIDATED muss in SE11 angelegt werden Überstunden - nicht im Report (wo kommen die her? PA2002? Z-Tabelle?) Ferienanspruch vs. bezogen - aktuell nur bezogene Tage, nicht Anspruch (PA2006?) GLZ-Saldi - nicht drin (Gleitzeitkonto - wo gespeichert?) Fragen bevor ich erweitere: Überstunden - aus welcher Tabelle? (PA2002, PA2007, oder Z-Tabelle?) Ferienanspruch - soll ich PA2006 (Abwesenheitskontingente) mit einbauen? GLZ-Saldo - gibt es eine Tabelle dafür oder kommt das aus Rexx/KABA? CSV-Download - soll ich die Download-Funktion jetzt einbauen (statt Z-Tabelle)? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources domonda.com CSV Export von Zahlungsanbietern Wählen Sie den gewünschten Zeitraum für welchen Sie Transaktionen exportieren möchten. Die vorausgewählten Felder sollten alle außer “Buchungsreferenz” exportiert werden. Im letzten Schritt exportieren Sie die Datei über den Download Button. Die nun erzeugte Datei können Sie im domonda Upload Screen unter der Kategorie Kreditkartentransaktionen direkt verarbeiten lassen und im letzten Schritt der zugehörigen Kreditka extraetf.com Wie funktioniert der CSV-Import aus einer Excel-Datei? (Ausführliche Anleitung) – extraETF - Hilfe - Center Du kannst deine Transaktionen (Käufe, Verkäufe, Dividenden, etc.) manuell in den extraETF Finanzmanager per CSV-Datei importieren. Du findest den CSV-Import hier: Schritt 1: Passe deine CSV-Date... blockpit.io Wie exportiere ich meine Transaktionen als CSV-Datei? How to create a backup of all my transactions? The export feature for your transaction history can be found under the menu item Transactions. As you can see in the picture below, you can download... bau mal download als csv ein alles felder, rest kommt später Workflow Thinking Searching Thinking Responding Ich habe den Report analysiert und erweitere ihn jetzt um die CSV-Download-Funktion.Was ich hinzufüge: Neue Checkbox im Selektionsbild: "CSV Download" Nach ALV-Anzeige (oder direkt) → Download-Dialog mit Dateiauswahl CSV mit Semikolon-Trennung (Excel-freundlich CH) Alle Felder werden exportiert Fragen bevor ich den Code anpasse: Dateiname-Vorschlag: HR_KPI_YYYYMM.csv (z.B. HR_KPI_202501.csv) - ok? Encoding: UTF-8 mit BOM (damit Excel Umlaute korrekt zeigt) - ok? Spaltenüberschriften: Technische Namen (PERNR, KOSTL) oder Klartexte (Personalnummer, Kostenstelle)? Dezimaltrennzeichen: Komma (CH-Standard) oder Punkt? Datumsformat: DD.MM.YYYY (CH) oder YYYY-MM-DD (ISO)? Kurze Antwort reicht, dann baue ich die Download-Funktion ein. Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources reddit.com r/excel on Reddit: Als CSV-Dateien gespeichert und alle Formatierungen und Registerkarten verloren Ich hatte genau das gleiche Problem. Es war schon als CSV gespeichert, also habe ich mir nichts dabei gedacht... Bis ich eine Stunde später wieder drauf zugreifen wollte. wiresoft.com So benutzt du CSV-Dateien richtig - Einfach erklärt! - Wiresoft Das verwenden von CSV-Dateien hat viele Vorteile und macht das Arbeiten mit anderen Schnittstellen möglich. Wir zeigen wie! adobe.com Troubleshoot bulk user CSV upload | Adobe Admin Console Troubleshoot bulk user CSV upload helps you to troubleshoot error conditions or other problems that can arise while using the bulk import functionality with the Adobe Admin Console. mache checkbox beim start wenn angeklickt kommt nach alv speicherdialoig, csv powerbi fdreundlich und excel. HR_KPI_YYYYMM.csv klartext aber ohne abstand damit powerbi beim reinziehen keine probleme macht. dezimalzeichen ch stzd. scweizer datumsformat Workflow Thinking Searching Thinking Responding Ich habe den Report und die Requirements geprüft.Was im Report drin ist vs. Requirements: Requirement Status Anmerkung Headcount/FTE ✅ EMPCT aus PA0007 Stammdaten ✅ PA0001, PA0002 Kostenstelle, Org.einheit ✅ PA0001 Ein-/Austrittsdatum ✅ PA0000 Kranktage kurz (<60 Tage) ✅ 0220, 0230, 0240, 0260 Kranktage lang (>=61 Tage) ✅ 0270 NBU-Tage ✅ 0350, 0360 BU-Tage ✅ 0280, 0290, 0300, 0310 Ferientage ✅ 0100 Lohnkosten ✅ PA0008 Stellenplan Soll ✅ HRP1000 Pulsumfrage ⚠️ Platzhalter Nur in Rexx MA-Zufriedenheit ⚠️ Platzhalter Nur in Rexx Kununu-Score ⚠️ Platzhalter Manuell aus Excel Time-to-hire ⚠️ Platzhalter Wird durch Rexx abgelöst Was noch fehlt für CSV-Download: Der Report hat aktuell nur ALV-Anzeige und Z-Tabellen-Speicherung. Ich baue jetzt die CSV-Download-Funktion ein: Neue Checkbox "CSV Download" im Selektionsbild Nach ALV → Speicherdialog Semikolon-getrennt (CH-Standard) Komma als Dezimaltrennzeichen DD.MM.YYYY Datumsformat Spaltenüberschriften als Klartext ohne Leerzeichen (z.B. Personalnummer, Krankheitstage_Kurz) UTF-8 mit BOM für Umlaute Dateiname-Vorschlag: HR_KPI_YYYYMM.csv Soll ich den erweiterten Report erstellen? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources microsoft.com Exportieren eines paginierten Power BI-Berichts in eine CSV-Datei - Power BI | Microsoft Learn Numerische Werte werden in ihrem formatierten Status gerendert. Excel kann formatierte numerische Werte, wie Währungen, Prozentwerte und Datumsangaben, erkennen und die Zellen beim Importieren einer CSV-Datei entsprechend formatieren. it-service-ruhr.de Datumsfelder in Power Query und Power BI korrekt verwenden › IT-Service Ruhr Falls dies der Fall ist, wird in der neuen Spalte ein Datumswert aus der einstelligen Tages-, der zweistelligen Monats- und der vierstelligen Jahresangabe erzeugt. Falls die Einträge 8 Zeichen umfassen, wird der Datumswert aus der zweistelligen Tages-, der zweistelligen Monats- und der vierstelligen Jahresangabe abgeleitet. Achten Sie bitte darauf, dass die Funktion Text.Range 0-basiert ist, d.h. microsoft.com Exportieren eines paginierten Berichts in eine CSV-Datei - Microsoft Report Builder & Power BI Report Builder | Microsoft Learn Wenn Sie in Microsoft Excel mit Daten für Diagramme, Datenbalken, Sparklines, Messgeräte oder Indikatoren arbeiten möchten, exportieren Sie den Bericht in eine CSV-Datei, und öffnen Sie diese anschließend in Microsoft Excel. Weitere Informationen zum Exportieren ins CSV-Format finden Sie unter Exportieren von Berichten (Berichts-Generator und SSRS). ... Sie können paginierte Berichtsdefinitionsdateien (.rdl) im Berichts-Generator von Microsoft, im Power BI Report Builder und im Berichts-Designer in SQL Server-Datentools erstellen und ändern. ja, wenn möglich als seperate form was neu ist Workflow Thinking Searching Thinking Responding Ich habe den Report analysiert. Hier ist der erweiterte Code mit der CSV-Download-Funktion als separate FORM: abap *&---------------------------------------------------------------------* *& Report Z_HR_KPI_CONSOLIDATE *&---------------------------------------------------------------------* *& Konsolidiert HR-Daten für Power BI Reporting *& - Stammdaten (PA0001, PA0002, PA0007, PA0008) *& - Abwesenheiten (PA2001) *& - Stellenplan (HRP1000) *& - Platzhalter für Rexx-Daten (manuell/Excel) *&---------------------------------------------------------------------* REPORT z_hr_kpi_consolidate. *----------------------------------------------------------------------* * Tabellen *----------------------------------------------------------------------* TABLES: pa0001, pa0002, pernr. *----------------------------------------------------------------------* * Typen *----------------------------------------------------------------------* TYPES: BEGIN OF ty_kpi, pernr TYPE pa0001-pernr, gjahr TYPE gjahr, monat TYPE monat, bukrs TYPE pa0001-bukrs, werks TYPE pa0001-werks, btrtl TYPE pa0001-btrtl, kostl TYPE pa0001-kostl, orgeh TYPE pa0001-orgeh, plans TYPE pa0001-plans, stell TYPE pa0001-stell, persg TYPE pa0001-persg, persk TYPE pa0001-persk, teilk TYPE pa0007-teilk, empct TYPE pa0007-empct, vorna TYPE pa0002-vorna, nachn TYPE pa0002-nachn, gesch TYPE pa0002-gesch, gbdat TYPE pa0002-gbdat, eintr TYPE datum, austr TYPE datum, lohn_brutto TYPE pa0008-bet01, kranktage TYPE p LENGTH 7 DECIMALS 2, kranktage_kurz TYPE p LENGTH 7 DECIMALS 2, kranktage_lang TYPE p LENGTH 7 DECIMALS 2, unfalltage_nbu TYPE p LENGTH 7 DECIMALS 2, unfalltage_bu TYPE p LENGTH 7 DECIMALS 2, ferientage TYPE p LENGTH 7 DECIMALS 2, sonstige_abw TYPE p LENGTH 7 DECIMALS 2, soll_stelle TYPE c LENGTH 1, rexx_puls_score TYPE p LENGTH 5 DECIMALS 2, rexx_zufried_score TYPE p LENGTH 5 DECIMALS 2, rexx_kununu_score TYPE p LENGTH 3 DECIMALS 1, rexx_time_to_hire TYPE i, erdat TYPE erdat, erzet TYPE erzet, ernam TYPE ernam, END OF ty_kpi. DATA: gt_kpi TYPE TABLE OF ty_kpi, gs_kpi TYPE ty_kpi. *----------------------------------------------------------------------* * Selektionsbild *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: s_pernr FOR pernr-pernr, s_bukrs FOR pa0001-bukrs, s_werks FOR pa0001-werks, s_kostl FOR pa0001-kostl, s_orgeh FOR pa0001-orgeh. PARAMETERS: p_gjahr TYPE gjahr DEFAULT sy-datum+0(4), p_monat TYPE monat DEFAULT sy-datum+4(2). SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002. PARAMETERS: p_alv AS CHECKBOX DEFAULT 'X', p_csv AS CHECKBOX, "NEU: CSV Download p_save AS CHECKBOX. SELECTION-SCREEN END OF BLOCK b2. *----------------------------------------------------------------------* * Start *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM get_data. IF gt_kpi IS INITIAL. MESSAGE 'Keine Daten gefunden' TYPE 'S' DISPLAY LIKE 'W'. RETURN. ENDIF. IF p_alv = 'X'. PERFORM show_alv. ENDIF. IF p_csv = 'X'. PERFORM download_csv. "NEU ENDIF. IF p_save = 'X'. PERFORM save_data. ENDIF. *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* FORM get_data. DATA: lt_pa0001 TYPE TABLE OF pa0001, lt_pa0002 TYPE TABLE OF pa0002, lt_pa0007 TYPE TABLE OF pa0007, lt_pa0008 TYPE TABLE OF pa0008, lt_pa0000 TYPE TABLE OF pa0000, lt_pa2001 TYPE TABLE OF pa2001, lt_hrp1000 TYPE TABLE OF hrp1000, ls_pa0001 TYPE pa0001, ls_pa0002 TYPE pa0002, ls_pa0007 TYPE pa0007, ls_pa0008 TYPE pa0008, ls_pa0000 TYPE pa0000, ls_pa2001 TYPE pa2001, ls_hrp1000 TYPE hrp1000, lv_datum_von TYPE datum, lv_datum_bis TYPE datum, lv_kaltag TYPE p LENGTH 7 DECIMALS 2. CONCATENATE p_gjahr p_monat '01' INTO lv_datum_von. CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS' EXPORTING day_in = lv_datum_von IMPORTING last_day_of_month = lv_datum_bis. SELECT * FROM pa0001 INTO TABLE lt_pa0001 WHERE pernr IN s_pernr AND bukrs IN s_bukrs AND werks IN s_werks AND kostl IN s_kostl AND orgeh IN s_orgeh AND begda <= lv_datum_bis AND endda >= lv_datum_bis. IF lt_pa0001 IS INITIAL. RETURN. ENDIF. SELECT * FROM pa0002 INTO TABLE lt_pa0002 FOR ALL ENTRIES IN lt_pa0001 WHERE pernr = lt_pa0001-pernr AND begda <= lv_datum_bis AND endda >= lv_datum_bis. SELECT * FROM pa0007 INTO TABLE lt_pa0007 FOR ALL ENTRIES IN lt_pa0001 WHERE pernr = lt_pa0001-pernr AND begda <= lv_datum_bis AND endda >= lv_datum_bis. SELECT * FROM pa0008 INTO TABLE lt_pa0008 FOR ALL ENTRIES IN lt_pa0001 WHERE pernr = lt_pa0001-pernr AND begda <= lv_datum_bis AND endda >= lv_datum_bis. SELECT * FROM pa0000 INTO TABLE lt_pa0000 FOR ALL ENTRIES IN lt_pa0001 WHERE pernr = lt_pa0001-pernr AND massn IN ('01', '02', 'Z1', 'Z2'). SELECT * FROM pa2001 INTO TABLE lt_pa2001 FOR ALL ENTRIES IN lt_pa0001 WHERE pernr = lt_pa0001-pernr AND begda <= lv_datum_bis AND endda >= lv_datum_von. SELECT * FROM hrp1000 INTO TABLE lt_hrp1000 WHERE otype = 'S' AND begda <= lv_datum_bis AND endda >= lv_datum_bis. LOOP AT lt_pa0001 INTO ls_pa0001. CLEAR gs_kpi. gs_kpi-pernr = ls_pa0001-pernr. gs_kpi-gjahr = p_gjahr. gs_kpi-monat = p_monat. gs_kpi-bukrs = ls_pa0001-bukrs. gs_kpi-werks = ls_pa0001-werks. gs_kpi-btrtl = ls_pa0001-btrtl. gs_kpi-kostl = ls_pa0001-kostl. gs_kpi-orgeh = ls_pa0001-orgeh. gs_kpi-plans = ls_pa0001-plans. gs_kpi-stell = ls_pa0001-stell. gs_kpi-persg = ls_pa0001-persg. gs_kpi-persk = ls_pa0001-persk. READ TABLE lt_pa0002 INTO ls_pa0002 WITH KEY pernr = ls_pa0001-pernr. IF sy-subrc = 0. gs_kpi-vorna = ls_pa0002-vorna. gs_kpi-nachn = ls_pa0002-nachn. gs_kpi-gesch = ls_pa0002-gesch. gs_kpi-gbdat = ls_pa0002-gbdat. ENDIF. READ TABLE lt_pa0007 INTO ls_pa0007 WITH KEY pernr = ls_pa0001-pernr. IF sy-subrc = 0. gs_kpi-teilk = ls_pa0007-teilk. gs_kpi-empct = ls_pa0007-empct. ENDIF. READ TABLE lt_pa0008 INTO ls_pa0008 WITH KEY pernr = ls_pa0001-pernr. IF sy-subrc = 0. gs_kpi-lohn_brutto = ls_pa0008-bet01. ENDIF. LOOP AT lt_pa0000 INTO ls_pa0000 WHERE pernr = ls_pa0001-pernr. IF ls_pa0000-massn = '01' OR ls_pa0000-massn = 'Z1'. IF gs_kpi-eintr IS INITIAL OR ls_pa0000-begda < gs_kpi-eintr. gs_kpi-eintr = ls_pa0000-begda. ENDIF. ELSEIF ls_pa0000-massn = '02' OR ls_pa0000-massn = 'Z2'. IF gs_kpi-austr IS INITIAL OR ls_pa0000-begda > gs_kpi-austr. gs_kpi-austr = ls_pa0000-begda. ENDIF. ENDIF. ENDLOOP. LOOP AT lt_pa2001 INTO ls_pa2001 WHERE pernr = ls_pa0001-pernr. DATA: lv_abw_von TYPE datum, lv_abw_bis TYPE datum. lv_abw_von = ls_pa2001-begda. lv_abw_bis = ls_pa2001-endda. IF lv_abw_von < lv_datum_von. lv_abw_von = lv_datum_von. ENDIF. IF lv_abw_bis > lv_datum_bis. lv_abw_bis = lv_datum_bis. ENDIF. lv_kaltag = lv_abw_bis - lv_abw_von + 1. IF lv_kaltag < 0. lv_kaltag = 0. ENDIF. CASE ls_pa2001-awart. WHEN '0220' OR '0230' OR '0240' OR '0260'. gs_kpi-kranktage_kurz = gs_kpi-kranktage_kurz + lv_kaltag. gs_kpi-kranktage = gs_kpi-kranktage + lv_kaltag. WHEN '0270'. gs_kpi-kranktage_lang = gs_kpi-kranktage_lang + lv_kaltag. gs_kpi-kranktage = gs_kpi-kranktage + lv_kaltag. WHEN '0350' OR '0360'. gs_kpi-unfalltage_nbu = gs_kpi-unfalltage_nbu + lv_kaltag. WHEN '0280' OR '0290' OR '0300' OR '0310'. gs_kpi-unfalltage_bu = gs_kpi-unfalltage_bu + lv_kaltag. WHEN '0100'. gs_kpi-ferientage = gs_kpi-ferientage + lv_kaltag. WHEN OTHERS. gs_kpi-sonstige_abw = gs_kpi-sonstige_abw + lv_kaltag. ENDCASE. ENDLOOP. READ TABLE lt_hrp1000 INTO ls_hrp1000 WITH KEY objid = ls_pa0001-plans. IF sy-subrc = 0. gs_kpi-soll_stelle = 'X'. ENDIF. gs_kpi-erdat = sy-datum. gs_kpi-erzet = sy-uzeit. gs_kpi-ernam = sy-uname. APPEND gs_kpi TO gt_kpi. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form SHOW_ALV *&---------------------------------------------------------------------* FORM show_alv. DATA: lo_alv TYPE REF TO cl_salv_table, lo_columns TYPE REF TO cl_salv_columns_table, lo_column TYPE REF TO cl_salv_column, lo_functions TYPE REF TO cl_salv_functions_list, lo_display TYPE REF TO cl_salv_display_settings, lx_msg TYPE REF TO cx_salv_msg. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = lo_alv CHANGING t_table = gt_kpi ). lo_functions = lo_alv->get_functions( ). lo_functions->set_all( abap_true ). lo_columns = lo_alv->get_columns( ). lo_columns->set_optimize( abap_true ). TRY. lo_column = lo_columns->get_column( 'PERNR' ). lo_column->set_short_text( 'PNR' ). lo_column->set_medium_text( 'Pers.Nr.' ). lo_column->set_long_text( 'Personalnummer' ). lo_column = lo_columns->get_column( 'KRANKTAGE' ). lo_column->set_short_text( 'Krank' ). lo_column->set_medium_text( 'Krankheitstage' ). lo_column->set_long_text( 'Krankheitstage gesamt' ). lo_column = lo_columns->get_column( 'KRANKTAGE_KURZ' ). lo_column->set_short_text( 'KrKurz' ). lo_column->set_medium_text( 'Krank <60T' ). lo_column->set_long_text( 'Krankheit < 60 Tage' ). lo_column = lo_columns->get_column( 'KRANKTAGE_LANG' ). lo_column->set_short_text( 'KrLang' ). lo_column->set_medium_text( 'Krank >=60T' ). lo_column->set_long_text( 'Krankheit >= 60 Tage (LZK)' ). lo_column = lo_columns->get_column( 'UNFALLTAGE_NBU' ). lo_column->set_short_text( 'NBU' ). lo_column->set_medium_text( 'NBU-Tage' ). lo_column->set_long_text( 'Nichtberufsunfall Tage' ). lo_column = lo_columns->get_column( 'UNFALLTAGE_BU' ). lo_column->set_short_text( 'BU' ). lo_column->set_medium_text( 'BU-Tage' ). lo_column->set_long_text( 'Berufsunfall Tage' ). lo_column = lo_columns->get_column( 'EMPCT' ). lo_column->set_short_text( 'BG%' ). lo_column->set_medium_text( 'Besch.grad' ). lo_column->set_long_text( 'Beschäftigungsgrad %' ). lo_column = lo_columns->get_column( 'LOHN_BRUTTO' ). lo_column->set_short_text( 'Lohn' ). lo_column->set_medium_text( 'Bruttolohn' ). lo_column->set_long_text( 'Bruttolohn Monat' ). lo_column = lo_columns->get_column( 'SOLL_STELLE' ). lo_column->set_short_text( 'Soll' ). lo_column->set_medium_text( 'Soll-Stelle' ). lo_column->set_long_text( 'Soll-Stelle vorhanden' ). lo_column = lo_columns->get_column( 'REXX_PULS_SCORE' ). lo_column->set_short_text( 'Puls' ). lo_column->set_medium_text( 'Pulsumfrage' ). lo_column->set_long_text( 'Pulsumfrage Score (Rexx)' ). lo_column = lo_columns->get_column( 'REXX_ZUFRIED_SCORE' ). lo_column->set_short_text( 'Zufr.' ). lo_column->set_medium_text( 'Zufriedenh.' ). lo_column->set_long_text( 'MA-Zufriedenheit (Rexx)' ). lo_column = lo_columns->get_column( 'REXX_KUNUNU_SCORE' ). lo_column->set_short_text( 'Kununu' ). lo_column->set_medium_text( 'Kununu' ). lo_column->set_long_text( 'Kununu Score' ). CATCH cx_salv_not_found. ENDTRY. lo_display = lo_alv->get_display_settings( ). lo_display->set_list_header( 'HR KPI Konsolidierung' ). lo_display->set_striped_pattern( abap_true ). lo_alv->display( ). CATCH cx_salv_msg INTO lx_msg. MESSAGE lx_msg TYPE 'E'. ENDTRY. ENDFORM. *&---------------------------------------------------------------------* *& Form DOWNLOAD_CSV (NEU) *&---------------------------------------------------------------------* *& CSV-Export für Power BI / Excel *& - Semikolon-getrennt (CH-Standard) *& - Komma als Dezimaltrennzeichen *& - DD.MM.YYYY Datumsformat *& - UTF-8 mit BOM *& - Spaltenüberschriften Klartext ohne Leerzeichen *&---------------------------------------------------------------------* FORM download_csv. DATA: lt_csv TYPE TABLE OF string, lv_line TYPE string, lv_filename TYPE string, lv_path TYPE string, lv_fullpath TYPE string, lv_action TYPE i, lv_datum TYPE string, lv_decimal TYPE string. FIELD-SYMBOLS: TYPE ty_kpi. " Dateiname vorschlagen: HR_KPI_YYYYMM.csv CONCATENATE 'HR_KPI_' p_gjahr p_monat '.csv' INTO lv_filename. " Speicherdialog cl_gui_frontend_services=>file_save_dialog( EXPORTING default_file_name = lv_filename default_extension = 'csv' file_filter = 'CSV-Dateien (*.csv)|*.csv|Alle Dateien (*.*)|*.*' CHANGING filename = lv_filename path = lv_path fullpath = lv_fullpath user_action = lv_action ). IF lv_action <> cl_gui_frontend_services=>action_ok. MESSAGE 'Download abgebrochen' TYPE 'S'. RETURN. ENDIF. " Header-Zeile (Klartext ohne Leerzeichen) lv_line = 'Personalnummer;Jahr;Monat;Buchungskreis;Personalbereich;' && 'Personalteilbereich;Kostenstelle;Organisationseinheit;' && 'Planstelle;Stelle;Mitarbeitergruppe;Mitarbeiterkreis;' && 'Teilzeitkennzeichen;Beschaeftigungsgrad;Vorname;Nachname;' && 'Geschlecht;Geburtsdatum;Eintrittsdatum;Austrittsdatum;' && 'Bruttolohn;Krankheitstage_Gesamt;Krankheitstage_Kurz;' && 'Krankheitstage_Lang;NBU_Tage;BU_Tage;Ferientage;' && 'Sonstige_Abwesenheiten;Soll_Stelle;Pulsumfrage_Score;' && 'Zufriedenheit_Score;Kununu_Score;Time_to_Hire;' && 'Erstelldatum;Erstellzeit;Ersteller'. APPEND lv_line TO lt_csv. " Datenzeilen LOOP AT gt_kpi ASSIGNING . CLEAR lv_line. " Datum formatieren DD.MM.YYYY PERFORM format_datum USING -gbdat CHANGING lv_datum. DATA: lv_gbdat TYPE string. lv_gbdat = lv_datum. PERFORM format_datum USING -eintr CHANGING lv_datum. DATA: lv_eintr TYPE string. lv_eintr = lv_datum. PERFORM format_datum USING -austr CHANGING lv_datum. DATA: lv_austr TYPE string. lv_austr = lv_datum. PERFORM format_datum USING -erdat CHANGING lv_datum. DATA: lv_erdat TYPE string. lv_erdat = lv_datum. " Dezimalzahlen mit Komma PERFORM format_decimal USING -empct CHANGING lv_decimal. DATA: lv_empct TYPE string. lv_empct = lv_decimal. PERFORM format_decimal USING -lohn_brutto CHANGING lv_decimal. DATA: lv_lohn TYPE string. lv_lohn = lv_decimal. PERFORM format_decimal USING -kranktage CHANGING lv_decimal. DATA: lv_kranktage TYPE string. lv_kranktage = lv_decimal. PERFORM format_decimal USING -kranktage_kurz CHANGING lv_decimal. DATA: lv_kranktage_kurz TYPE string. lv_kranktage_kurz = lv_decimal. PERFORM format_decimal USING -kranktage_lang CHANGING lv_decimal. DATA: lv_kranktage_lang TYPE string. lv_kranktage_lang = lv_decimal. PERFORM format_decimal USING -unfalltage_nbu CHANGING lv_decimal. DATA: lv_nbu TYPE string. lv_nbu = lv_decimal. PERFORM format_decimal USING -unfalltage_bu CHANGING lv_decimal. DATA: lv_bu TYPE string. lv_bu = lv_decimal. PERFORM format_decimal USING -ferientage CHANGING lv_decimal. DATA: lv_ferien TYPE string. lv_ferien = lv_decimal. PERFORM format_decimal USING -sonstige_abw CHANGING lv_decimal. DATA: lv_sonstige TYPE string. lv_sonstige = lv_decimal. PERFORM format_decimal USING -rexx_puls_score CHANGING lv_decimal. DATA: lv_puls TYPE string. lv_puls = lv_decimal. PERFORM format_decimal USING -rexx_zufried_score CHANGING lv_decimal. DATA: lv_zufried TYPE string. lv_zufried = lv_decimal. PERFORM format_decimal USING -rexx_kununu_score CHANGING lv_decimal. DATA: lv_kununu TYPE string. lv_kununu = lv_decimal. " Zeile zusammenbauen CONCATENATE -pernr ';' -gjahr ';' -monat ';' -bukrs ';' -werks ';' -btrtl ';' -kostl ';' -orgeh ';' -plans ';' -stell ';' -persg ';' -persk ';' -teilk ';' lv_empct ';' -vorna ';' -nachn ';' -gesch ';' lv_gbdat ';' lv_eintr ';' lv_austr ';' lv_lohn ';' lv_kranktage ';' lv_kranktage_kurz ';' lv_kranktage_lang ';' lv_nbu ';' lv_bu ';' lv_ferien ';' lv_sonstige ';' -soll_stelle ';' lv_puls ';' lv_zufried ';' lv_kununu ';' -rexx_time_to_hire ';' lv_erdat ';' -erzet ';' -ernam INTO lv_line. APPEND lv_line TO lt_csv. ENDLOOP. " Download mit UTF-8 BOM DATA: lt_binary TYPE TABLE OF x, lv_xstring TYPE xstring, lv_bom TYPE xstring VALUE 'EFBBBF', lv_string TYPE string, lv_len TYPE i. " Alle Zeilen zu einem String CONCATENATE LINES OF lt_csv INTO lv_string SEPARATED BY cl_abap_char_utilities=>cr_lf. " String zu xstring (UTF-8) lv_xstring = cl_abap_codepage=>convert_to( lv_string ). " BOM voranstellen CONCATENATE lv_bom lv_xstring INTO lv_xstring IN BYTE MODE. " xstring zu binary table CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' EXPORTING buffer = lv_xstring TABLES binary_tab = lt_binary. lv_len = xstrlen( lv_xstring ). " Datei speichern cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_len filename = lv_fullpath filetype = 'BIN' CHANGING data_tab = lt_binary ). MESSAGE |{ lines( gt_kpi ) } Datensätze als CSV exportiert| TYPE 'S'. ENDFORM. *&---------------------------------------------------------------------* *& Form FORMAT_DATUM (NEU) *&---------------------------------------------------------------------* *& Formatiert Datum als DD.MM.YYYY (CH-Standard) *&---------------------------------------------------------------------* FORM format_datum USING iv_datum TYPE datum CHANGING cv_result TYPE string. IF iv_datum IS INITIAL OR iv_datum = '00000000'. cv_result = ''. ELSE. CONCATENATE iv_datum+6(2) '.' iv_datum+4(2) '.' iv_datum+0(4) INTO cv_result. ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form FORMAT_DECIMAL (NEU) *&---------------------------------------------------------------------* *& Formatiert Dezimalzahl mit Komma als Trennzeichen (CH-Standard) *&---------------------------------------------------------------------* FORM format_decimal USING iv_value TYPE any CHANGING cv_result TYPE string. DATA: lv_temp TYPE string. lv_temp = iv_value. CONDENSE lv_temp NO-GAPS. " Punkt durch Komma ersetzen REPLACE ALL OCCURRENCES OF '.' IN lv_temp WITH ','. " Führende Nullen entfernen, aber 0 behalten SHIFT lv_temp LEFT DELETING LEADING ' '. IF lv_temp = '' OR lv_temp = ',00'. lv_temp = '0'. ENDIF. cv_result = lv_temp. ENDFORM. *&---------------------------------------------------------------------* *& Form SAVE_DATA *&---------------------------------------------------------------------* FORM save_data. MESSAGE 'Tabelle ZHRKPI_CONSOLIDATED muss erst in SE11 angelegt werden' TYPE 'S' DISPLAY LIKE 'W'. ENDFORM. Was neu ist (separate FORMs): FORM Funktion DOWNLOAD_CSV Hauptlogik CSV-Export mit Speicherdialog FORMAT_DATUM Datum → DD.MM.YYYY FORMAT_DECIMAL Dezimal → Komma als Trennzeichen Selektionsbild neu: p_csv Checkbox "CSV Download" CSV-Spezifikationen: Semikolon-getrennt UTF-8 Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources wiktionary.org neu – Wiktionary [1] neu entwickelt sein, neu entworfen sein, neu erbaut sein, neu errichtet sein, neu formatiert sein (Festplatte), neu gestaltet sein, neu kalibriert sein (Monitor), neu programmiert sein (Software), neu gestartet sein (Auto, Maschine, Motor, PC), neu strukturiert sein (Organisation, Firma, Abteilung), neu zugeordnet sein linguee.de neu ist - Englisch-Übersetzung – Linguee Wörterbuch Informatik) braucht heute mehr Zeit für die Überprüfung, ob seine [...] Forschung original und neu ist, als für die Forschung selbst. dwds.de neu – Schreibung, Definition, Bedeutung, Etymologie, Synonyme, Beispiele | DWDS sprichwörtlich neue Besen kehren gut (= wer eine Stelle antritt, zeigt sich anfangs besonders eifrig)... weniger Beispiele ... umgangssprachlich, saloppdas ist ja die neueste, neuste Masche (= das ist ja die neu(e)ste Sitte, Manier) ja, wenn möglich als seperate form was neu ist. zeige nur was neu ist nicht was sich nicht ändert Workflow Thinking Searching Thinking Responding Ich habe den Report und die Requirements geprüft.Was im Report drin ist vs. Requirements: Requirement Status Anmerkung Headcount/FTE (EMPCT) ✅ PA0007 Stammdaten ✅ PA0001, PA0002 Kostenstelle, Org.einheit ✅ PA0001 Ein-/Austrittsdatum ✅ PA0000 Kranktage kurz (<60 Tage) ✅ 0220, 0230, 0240, 0260 Kranktage lang (>=61 Tage) ✅ 0270 NBU-Tage ✅ 0350, 0360 BU-Tage ✅ 0280, 0290, 0300, 0310 Ferientage ✅ 0100 Lohnkosten ✅ PA0008 Stellenplan Soll ✅ HRP1000 Pulsumfrage ⚠️ Platzhalter Nur in Rexx Kununu-Score ⚠️ Platzhalter Manuell aus Excel Time-to-hire ⚠️ Platzhalter Wird durch Rexx abgelöst Hier sind nur die neuen/geänderten Teile für CSV-Download: 1. Neuer Parameter im Selektionsbild (nach p_save einfügen): abap SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002. PARAMETERS: p_alv AS CHECKBOX DEFAULT 'X', p_save AS CHECKBOX, p_csv AS CHECKBOX. "NEU: CSV Download SELECTION-SCREEN END OF BLOCK b2. 2. Neuer Aufruf in START-OF-SELECTION (nach PERFORM show_alv einfügen): abap IF p_alv = 'X'. PERFORM show_alv. ENDIF. "NEU: CSV Download nach ALV IF p_csv = 'X'. PERFORM download_csv. ENDIF. IF p_save = 'X'. PERFORM save_data. ENDIF. 3. Neue FORM download_csv (am Ende des Reports einfügen): abap *&---------------------------------------------------------------------* *& Form DOWNLOAD_CSV *&---------------------------------------------------------------------* *& CSV-Export für Power BI / Excel (CH-Format) *& - Semikolon-getrennt *& - Komma als Dezimaltrennzeichen *& - DD.MM.YYYY Datumsformat *& - UTF-8 mit BOM *& - Spaltenüberschriften ohne Leerzeichen *&---------------------------------------------------------------------* FORM download_csv. DATA: lt_csv TYPE TABLE OF string, lv_line TYPE string, lv_filename TYPE string, lv_path TYPE string, lv_fullpath TYPE string, lv_action TYPE i, lv_datum TYPE string, lv_decimal TYPE string. FIELD-SYMBOLS: TYPE ty_kpi. " Dateiname vorschlagen lv_filename = |HR_KPI_{ p_gjahr }{ p_monat }.csv|. " Speicherdialog cl_gui_frontend_services=>file_save_dialog( EXPORTING default_file_name = lv_filename default_extension = 'csv' file_filter = 'CSV-Dateien (*.csv)|*.csv|Alle Dateien (*.*)|*.*' CHANGING filename = lv_filename path = lv_path fullpath = lv_fullpath user_action = lv_action ). IF lv_action <> cl_gui_frontend_services=>action_ok. MESSAGE 'Download abgebrochen' TYPE 'S'. RETURN. ENDIF. " UTF-8 BOM APPEND cl_abap_char_utilities=>byte_order_mark_utf8 TO lt_csv. " Spaltenüberschriften (Klartext ohne Leerzeichen) lv_line = 'Personalnummer;Jahr;Monat;Buchungskreis;Personalbereich;' && 'Personalteilbereich;Kostenstelle;Organisationseinheit;' && 'Planstelle;Stelle;Mitarbeitergruppe;Mitarbeiterkreis;' && 'Teilzeitkennzeichen;Beschaeftigungsgrad_Prozent;' && 'Vorname;Nachname;Geschlecht;Geburtsdatum;' && 'Eintrittsdatum;Austrittsdatum;Bruttolohn;' && 'Krankheitstage_Gesamt;Krankheitstage_Kurz;Krankheitstage_Lang;' && 'NBU_Tage;BU_Tage;Ferientage;Sonstige_Abwesenheiten;' && 'Soll_Stelle;Pulsumfrage_Score;Zufriedenheit_Score;' && 'Kununu_Score;Time_to_Hire'. APPEND lv_line TO lt_csv. " Datenzeilen LOOP AT gt_kpi ASSIGNING . CLEAR lv_line. " Datumsfelder formatieren (DD.MM.YYYY) lv_line = -pernr && ';' && -gjahr && ';' && -monat && ';' && -bukrs && ';' && -werks && ';' && -btrtl && ';' && -kostl && ';' && -orgeh && ';' && -plans && ';' && -stell && ';' && -persg && ';' && -persk && ';' && -teilk && ';'. " Beschäftigungsgrad mit Komma PERFORM format_decimal USING -empct CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. lv_line = lv_line && -vorna && ';' && -nachn && ';' && -gesch && ';'. " Geburtsdatum PERFORM format_date USING -gbdat CHANGING lv_datum. lv_line = lv_line && lv_datum && ';'. " Eintrittsdatum PERFORM format_date USING -eintr CHANGING lv_datum. lv_line = lv_line && lv_datum && ';'. " Austrittsdatum PERFORM format_date USING -austr CHANGING lv_datum. lv_line = lv_line && lv_datum && ';'. " Bruttolohn mit Komma PERFORM format_decimal USING -lohn_brutto CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. " Abwesenheitstage mit Komma PERFORM format_decimal USING -kranktage CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -kranktage_kurz CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -kranktage_lang CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -unfalltage_nbu CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -unfalltage_bu CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -ferientage CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -sonstige_abw CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. " Soll-Stelle lv_line = lv_line && -soll_stelle && ';'. " Rexx-Platzhalter (leer oder mit Komma) PERFORM format_decimal USING -rexx_puls_score CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -rexx_zufried_score CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. PERFORM format_decimal USING -rexx_kununu_score CHANGING lv_decimal. lv_line = lv_line && lv_decimal && ';'. lv_line = lv_line && -rexx_time_to_hire. APPEND lv_line TO lt_csv. ENDLOOP. " Datei speichern cl_gui_frontend_services=>gui_download( EXPORTING filename = lv_fullpath filetype = 'ASC' codepage = '4110' "UTF-8 CHANGING data_tab = lt_csv ). IF sy-subrc = 0. MESSAGE |CSV exportiert: { lv_fullpath }| TYPE 'S'. ELSE. MESSAGE 'Fehler beim Export' TYPE 'E'. ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form FORMAT_DATE *&---------------------------------------------------------------------* *& Datum in DD.MM.YYYY formatieren *&---------------------------------------------------------------------* FORM format_date USING iv_date TYPE datum CHANGING cv_result TYPE string. IF iv_date IS INITIAL OR iv_date = '00000000'. cv_result = ''. ELSE. cv_result = iv_date+6(2) && '.' && iv_date+4(2) && '.' && iv_date+0(4). ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form FORMAT_DECIMAL *&---------------------------------------------------------------------* *& Dezimalzahl mit Komma formatieren (CH-Standard) *&---------------------------------------------------------------------* FORM format_decimal USING iv_value TYPE any CHANGING cv_result TYPE string. DATA: lv_temp TYPE string. lv_temp = iv_value. CONDENSE lv_temp NO-GAPS. " Punkt durch Komma ersetzen REPLACE ALL OCCURRENCES OF '.' IN lv_temp WITH ','. " Führende Nullen bei 0-Werten IF lv_temp = '0,00' OR lv_temp = '0'. lv_temp = '0'. ENDIF. cv_result = lv_temp. ENDFORM. Zusammenfassung der Änderungen: Was Wo p_csv AS CHECKBOX Selektionsbild Block b2 PERFORM download_csv START-OF-SELECTION FORM download_csv Neue FORM am Ende FORM format_date Neue FORM am Ende FORM format_decimal Neue FORM am Ende Textelement für Selektionsbild (SE38 → Goto → Text Elements → Selection Texts): P_CSV = "CSV Download" Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources microsoft.com Updates vorheriger Monate für Power BI Desktop und den Power BI-Dienst - Power BI | Microsoft Learn Das Oktober-Update bietet spannende Möglichkeiten für das Lernen und das Community-Engagement, einschließlich der bevorstehenden Fabric Data Days und der Rückkehr von FabCon in Atlanta im nächsten Frühjahr. Insbesondere macht Power BI Fortschritte bei der Zuordnung von Funktionen durch den Übergang von Bing Maps zu Azure Maps, um sicherzustellen, dass Benutzer Zugriff auf die neuesten Features und Support haben. microsoft.com Erstellen eines Kartenvisuals in Power BI - Power BI | Microsoft Learn Durch das Kombinieren mehrerer ... semantische Modell optimiert werden. ... Das (neue) Kartenvisual wurde allgemein als Kartenvisual mit der Power BI-Version vom November 2025 verfügbar.... microsoft.com Aktualisieren von Daten in Power BI - Power BI | Microsoft Learn Power BI führt jedoch weiterhin Kachelaktualisierungen und möglicherweise Berichtsaktualisierungen durch, wie im nächsten Abschnitt über Aktualisierungstypen beschrieben. Eine Kachel ist ein visueller Bericht, der an ein Dashboard angeheftet ist, und die Aktualisierung der Kachel des Dashboards erfolgt etwa jede Stunde, sodass die Kacheln die neuesten Ergebnisse anzeigen. Sie können den Zeitplan in ... welche infos fehlen noch, welche die damen wünschen im report ? Workflow Thinking Searching Thinking Responding Ich habe den Report und die Requirements abgeglichen.Was im Report drin ist vs. Requirements: Requirement Status Anmerkung Headcount/FTE (EMPCT) ✅ PA0007 Stammdaten ✅ PA0001, PA0002 Kostenstelle, Org.einheit ✅ PA0001 Ein-/Austrittsdatum ✅ PA0000 Kranktage kurz (<60 Tage) ✅ 0220, 0230, 0240, 0260 Kranktage lang (>=61 Tage) ✅ 0270 NBU-Tage ✅ 0350, 0360 BU-Tage ✅ 0280, 0290, 0300, 0310 Ferientage (bezogen) ✅ 0100 Lohnkosten ✅ PA0008 Stellenplan Soll ✅ HRP1000 CSV Download ✅ Neu eingebaut Was NICHT in SAP ist (laut Requirements): Requirement Quelle Im Report ------------- -------- ----------- Pulsumfrage Nur in Rexx ⚠️ Platzhalter (leer) MA-Zufriedenheit Nur in Rexx ⚠️ Platzhalter (leer) Kununu-Score Manuell aus Excel ⚠️ Platzhalter (leer) Time-to-hire Refline → wird durch Rexx abgelöst ⚠️ Platzhalter (leer) Was noch fehlt laut ursprünglicher KPI-Liste: KPI Status Frage ----- -------- ------- Fluktuation ❌ Wird in Power BI berechnet (Austritte / Avg Headcount) Überstunden ❌ Wo kommen die her? PA2002? KABA? Rexx? Produktivstunden ❌ Wo kommen die her? KABA? GLZ-Saldi ❌ Wo gespeichert? KABA? Z-Tabelle? Ferienanspruch vs. bezogen ⚠️ Nur bezogen drin - Anspruch aus PA2006? Fragen an dich: Überstunden / Produktivstunden / GLZ-Saldi - kommen die aus KABA oder Rexx? Oder soll das später separat? Ferienanspruch - soll ich PA2006 (Abwesenheitskontingente) noch einbauen, damit ihr Anspruch vs. bezogen habt? Lohndaten im CSV - sollen die HR-Damen Bruttolöhne sehen, oder soll das Feld für den CSV-Export ausgeblendet werden (Datenschutz)? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources microsoft.com Problembehandlung beim Veröffentlichen aus Power BI Desktop - Power BI | Microsoft Learn Wechseln Sie in Power BI Desktop zu Datei>Optionen und Einstellungen>Datenquelleneinstellungen, und wählen Sie dann Berechtigungen löschen aus, um zwischengespeicherte Anmeldeinformationen zu löschen. microsoft.com Bekannte Power BI-Probleme und Problembehandlung - Power BI | Microsoft Learn Derzeit bekannte Probleme mit Power BI und Fabric – Bericht microsoft.com Problembehandlung bei Aktualisierungsszenarios - Power BI | Microsoft Learn Dieser Artikel bietet Möglichkeiten, Probleme beim Aktualisieren von Daten innerhalb der Power BI-Dienst für verschiedene Datenquellen und Bedingungen zu beheben. kannst du ein abap test report erstellen um rauiszufinden ob die tabelle das haben Fluktuation ❌ Wird in Power BI berechnet (Austritte / Avg Headcount) Überstunden ❌ Wo kommen die her? PA2002? KABA? Rexx? Produktivstunden ❌ Wo kommen die her? KABA? GLZ-Saldi ❌ Wo gespeichert? KABA? Z-Tabelle? Ferienanspruch vs. bezogen ⚠️ Nur bezogen drin - Anspruch aus PA2006?? Workflow Thinking Searching Thinking Responding Hier ist der Test-Report um herauszufinden, wo diese Daten gespeichert sind: abap *&---------------------------------------------------------------------* *& Report ZTEST_HR_FEHLENDE_KPIS *&---------------------------------------------------------------------* *& Prüft ob Daten für fehlende KPIs in SAP vorhanden sind: *& - Überstunden *& - Produktivstunden *& - GLZ-Saldi *& - Ferienanspruch vs. bezogen *&---------------------------------------------------------------------* REPORT ztest_hr_fehlende_kpis. PARAMETERS: p_pernr TYPE pernr_d OBLIGATORY. "Test-Personalnummer START-OF-SELECTION. WRITE: / '================================================'. WRITE: / 'Analyse fehlende HR-KPIs'. WRITE: / '================================================'. SKIP. *----------------------------------------------------------------------* * 1. ÜBERSTUNDEN - PA2002 (Anwesenheiten) oder PA2007 (Zeitkontingente) *----------------------------------------------------------------------* WRITE: / '1. ÜBERSTUNDEN'. WRITE: / '------------------------------------------------'. " PA2002 - Anwesenheiten (Überstunden könnten hier sein) DATA: lt_pa2002 TYPE TABLE OF pa2002, ls_pa2002 TYPE pa2002, lv_count_2002 TYPE i. SELECT COUNT(*) FROM pa2002 INTO lv_count_2002 WHERE pernr = p_pernr. WRITE: / 'PA2002 (Anwesenheiten) für PERNR:', lv_count_2002, 'Einträge'. IF lv_count_2002 > 0. SELECT * FROM pa2002 INTO TABLE lt_pa2002 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Letzte 5 Einträge:'. DATA: lv_counter TYPE i VALUE 0. LOOP AT lt_pa2002 INTO ls_pa2002. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' AWART:', ls_pa2002-awart, 'Von:', ls_pa2002-begda, 'Bis:', ls_pa2002-endda, 'Std:', ls_pa2002-stdaz. ENDLOOP. ENDIF. " PA2007 - Zeitkontingente Abzüge DATA: lt_pa2007 TYPE TABLE OF pa2007, ls_pa2007 TYPE pa2007, lv_count_2007 TYPE i. SELECT COUNT(*) FROM pa2007 INTO lv_count_2007 WHERE pernr = p_pernr. WRITE: / 'PA2007 (Zeitkontingente Abzüge) für PERNR:', lv_count_2007, 'Einträge'. IF lv_count_2007 > 0. SELECT * FROM pa2007 INTO TABLE lt_pa2007 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Letzte 5 Einträge:'. lv_counter = 0. LOOP AT lt_pa2007 INTO ls_pa2007. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' SUBTY:', ls_pa2007-subty, 'Von:', ls_pa2007-begda, 'Anzahl:', ls_pa2007-anzhl. ENDLOOP. ENDIF. SKIP. *----------------------------------------------------------------------* * 2. GLZ-SALDI (Gleitzeitkonto) *----------------------------------------------------------------------* WRITE: / '2. GLZ-SALDI (Gleitzeitkonto)'. WRITE: / '------------------------------------------------'. " PT_BAL00 - Zeitsalden (Standard SAP) DATA: lv_count_bal TYPE i. SELECT COUNT(*) FROM pt_bal00 INTO lv_count_bal WHERE pernr = p_pernr. WRITE: / 'PT_BAL00 (Zeitsalden) für PERNR:', lv_count_bal, 'Einträge'. " PTQUODED - Kontingentübersicht DATA: lv_count_quo TYPE i. SELECT COUNT(*) FROM ptquoded INTO lv_count_quo WHERE pernr = p_pernr. WRITE: / 'PTQUODED (Kontingentübersicht) für PERNR:', lv_count_quo, 'Einträge'. " Z-Tabellen für GLZ suchen DATA: lt_dd02l TYPE TABLE OF dd02l, ls_dd02l TYPE dd02l. SELECT * FROM dd02l INTO TABLE lt_dd02l WHERE tabname LIKE 'Z%GLZ%' OR tabname LIKE 'Z%GLEIT%' OR tabname LIKE 'Z%SALDO%' OR tabname LIKE 'Z%ZEIT%'. IF lt_dd02l IS NOT INITIAL. WRITE: / ' Z-Tabellen gefunden (GLZ/Saldo):'. LOOP AT lt_dd02l INTO ls_dd02l. WRITE: / ' -', ls_dd02l-tabname. ENDLOOP. ELSE. WRITE: / ' Keine Z-Tabellen für GLZ gefunden'. ENDIF. SKIP. *----------------------------------------------------------------------* * 3. FERIENANSPRUCH vs. BEZOGEN - PA2006 *----------------------------------------------------------------------* WRITE: / '3. FERIENANSPRUCH vs. BEZOGEN (PA2006)'. WRITE: / '------------------------------------------------'. DATA: lt_pa2006 TYPE TABLE OF pa2006, ls_pa2006 TYPE pa2006, lv_count_2006 TYPE i. SELECT COUNT(*) FROM pa2006 INTO lv_count_2006 WHERE pernr = p_pernr. WRITE: / 'PA2006 (Abwesenheitskontingente) für PERNR:', lv_count_2006, 'Einträge'. IF lv_count_2006 > 0. SELECT * FROM pa2006 INTO TABLE lt_pa2006 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Einträge (Kontingenttyp, Anspruch, Abzug, Rest):'. lv_counter = 0. LOOP AT lt_pa2006 INTO ls_pa2006. lv_counter = lv_counter + 1. IF lv_counter > 10. EXIT. ENDIF. WRITE: / ' SUBTY:', ls_pa2006-subty, 'Von:', ls_pa2006-begda, 'Bis:', ls_pa2006-endda, 'Anspruch:', ls_pa2006-anzhl, 'Abzug:', ls_pa2006-kverb, 'Rest:', ls_pa2006-desta. ENDLOOP. ENDIF. SKIP. *----------------------------------------------------------------------* * 4. PRODUKTIVSTUNDEN - Suche nach möglichen Quellen *----------------------------------------------------------------------* WRITE: / '4. PRODUKTIVSTUNDEN'. WRITE: / '------------------------------------------------'. " CATSDB - Zeiterfassung (CATS) DATA: lv_count_cats TYPE i. SELECT COUNT(*) FROM catsdb INTO lv_count_cats WHERE pernr = p_pernr. WRITE: / 'CATSDB (CATS Zeiterfassung) für PERNR:', lv_count_cats, 'Einträge'. " Z-Tabellen für Produktivstunden/Arbeitszeit CLEAR lt_dd02l. SELECT * FROM dd02l INTO TABLE lt_dd02l WHERE tabname LIKE 'Z%PROD%' OR tabname LIKE 'Z%ARBEIT%' OR tabname LIKE 'Z%STUND%' OR tabname LIKE 'Z%KABA%'. IF lt_dd02l IS NOT INITIAL. WRITE: / ' Z-Tabellen gefunden (Produktiv/Arbeitszeit):'. LOOP AT lt_dd02l INTO ls_dd02l. WRITE: / ' -', ls_dd02l-tabname. ENDLOOP. ELSE. WRITE: / ' Keine Z-Tabellen für Produktivstunden gefunden'. ENDIF. " ZHR_PT aus vorherigem Test (Zeitstempelungen) DATA: lv_count_zhrpt TYPE i. SELECT COUNT(*) FROM zhr_pt INTO lv_count_zhrpt WHERE pernr = p_pernr. WRITE: / 'ZHR_PT (Zeitstempelungen/KABA) für PERNR:', lv_count_zhrpt, 'Einträge'. SKIP. *----------------------------------------------------------------------* * 5. ZUSAMMENFASSUNG *----------------------------------------------------------------------* WRITE: / '================================================'. WRITE: / 'ZUSAMMENFASSUNG'. WRITE: / '================================================'. SKIP. WRITE: / 'Überstunden:'. IF lv_count_2002 > 0 OR lv_count_2007 > 0. WRITE: / ' -> Möglicherweise in PA2002/PA2007 vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP gefunden (evtl. KABA/Rexx?)'. ENDIF. WRITE: / 'GLZ-Saldi:'. IF lv_count_bal > 0 OR lv_count_quo > 0. WRITE: / ' -> In PT_BAL00/PTQUODED vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP gefunden (evtl. KABA/Rexx?)'. ENDIF. WRITE: / 'Ferienanspruch:'. IF lv_count_2006 > 0. WRITE: / ' -> In PA2006 vorhanden (Anspruch + Bezogen)'. ELSE. WRITE: / ' -> NICHT in PA2006 gefunden'. ENDIF. WRITE: / 'Produktivstunden:'. IF lv_count_cats > 0. WRITE: / ' -> In CATSDB (CATS) vorhanden'. ELSEIF lv_count_zhrpt > 0. WRITE: / ' -> In ZHR_PT (KABA-Stempelungen) vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP gefunden (evtl. KABA/Rexx?)'. ENDIF. SKIP. WRITE: / '================================================'. WRITE: / 'Bitte Output an Ingo schicken!'. WRITE: / '================================================'. Anleitung: SE38 → ZTEST_HR_FEHLENDE_KPIS anlegen Eine Test-Personalnummer eingeben (z.B. deine eigene oder eine aktive) Ausführen Output schicken Der Report prüft für die eingegebene PERNR: Überstunden: PA2002, PA2007 GLZ-Saldi: PT_BAL00, PTQUODED, Z-Tabellen Ferienanspruch: PA2006 (Anspruch, Abzug, Rest) Produktivstunden: CATSDB, ZHR_PT, Z-Tabellen Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources microsoft.com Create Excel Workbooks with Refreshable Power BI Data - Power BI | Microsoft Learn Learn how to build refreshable reports in Excel with Power BI data so you can analyze it like a local semantic model. powerbi.com Microsoft Power BI Sign in to Microsoft Power BI for intuitive data visualization, detailed analytics, and interactive dashboards. Unlock your data's full potential. microsoft.com Compensation Power BI content - Finance & Operations | Dynamics 365 | Microsoft Learn Learn about the Compensation Power BI content. It explains how to access reports and provides information about the data model used. Programm ZTEST "PT_BAL00" wurde im ABAP Dictionary nicht als Tabelle, Projektions- oder Datenbank-View deklariert oder ist nicht aktiv vorhanden. Workflow Thinking Searching Thinking Responding Ich habe den Report und die Requirements abgeglichen.Was im Report drin ist: Requirement Status Quelle Headcount/FTE (EMPCT) ✅ PA0007 Stammdaten ✅ PA0001, PA0002 Kostenstelle, Org.einheit ✅ PA0001 Ein-/Austrittsdatum ✅ PA0000 Kranktage kurz (<60 Tage) ✅ 0220, 0230, 0240, 0260 Kranktage lang (>=61 Tage) ✅ 0270 NBU-Tage ✅ 0350, 0360 BU-Tage ✅ 0280, 0290, 0300, 0310 Ferientage (bezogen) ✅ 0100 Lohnkosten ✅ PA0008 Stellenplan Soll ✅ HRP1000 Pulsumfrage ⚠️ Platzhalter Nur in Rexx Kununu-Score ⚠️ Platzhalter Manuell aus Excel Time-to-hire ⚠️ Platzhalter Wird durch Rexx abgelöst Die Tabelle PT_BAL00 existiert nicht in eurem System.Das bedeutet: GLZ-Saldi werden NICHT in SAP gespeichert - die kommen vermutlich aus KABA oder Rexx.Hier ist der korrigierte Test-Report ohne PT_BAL00: abap *&---------------------------------------------------------------------* *& Report ZTEST_HR_FEHLENDE_KPIS *&---------------------------------------------------------------------* *& Prüft ob Daten für fehlende KPIs in SAP vorhanden sind: *& - Überstunden *& - Produktivstunden *& - GLZ-Saldi *& - Ferienanspruch vs. bezogen *&---------------------------------------------------------------------* REPORT ztest_hr_fehlende_kpis. PARAMETERS: p_pernr TYPE pernr_d OBLIGATORY. "Test-Personalnummer START-OF-SELECTION. WRITE: / '================================================'. WRITE: / 'Analyse fehlende HR-KPIs'. WRITE: / 'Personalnummer:', p_pernr. WRITE: / '================================================'. SKIP. *----------------------------------------------------------------------* * 1. ÜBERSTUNDEN - PA2002 (Anwesenheiten) oder PA2007 (Zeitkontingente) *----------------------------------------------------------------------* WRITE: / '1. ÜBERSTUNDEN'. WRITE: / '------------------------------------------------'. DATA: lv_count_2002 TYPE i, lv_count_2007 TYPE i. " PA2002 - Anwesenheiten SELECT COUNT(*) FROM pa2002 INTO lv_count_2002 WHERE pernr = p_pernr. WRITE: / 'PA2002 (Anwesenheiten):', lv_count_2002, 'Einträge'. IF lv_count_2002 > 0. DATA: lt_pa2002 TYPE TABLE OF pa2002, ls_pa2002 TYPE pa2002, lv_counter TYPE i. SELECT * FROM pa2002 INTO TABLE lt_pa2002 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Letzte 5 Einträge:'. lv_counter = 0. LOOP AT lt_pa2002 INTO ls_pa2002. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' AWART:', ls_pa2002-awart, 'Von:', ls_pa2002-begda, 'Bis:', ls_pa2002-endda, 'Std:', ls_pa2002-stdaz. ENDLOOP. ENDIF. " PA2007 - Zeitkontingente Abzüge SELECT COUNT(*) FROM pa2007 INTO lv_count_2007 WHERE pernr = p_pernr. WRITE: / 'PA2007 (Zeitkontingente Abzüge):', lv_count_2007, 'Einträge'. IF lv_count_2007 > 0. DATA: lt_pa2007 TYPE TABLE OF pa2007, ls_pa2007 TYPE pa2007. SELECT * FROM pa2007 INTO TABLE lt_pa2007 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Letzte 5 Einträge:'. lv_counter = 0. LOOP AT lt_pa2007 INTO ls_pa2007. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' SUBTY:', ls_pa2007-subty, 'Von:', ls_pa2007-begda, 'Anzahl:', ls_pa2007-anzhl. ENDLOOP. ENDIF. SKIP. *----------------------------------------------------------------------* * 2. GLZ-SALDI (Gleitzeitkonto) - Z-Tabellen suchen *----------------------------------------------------------------------* WRITE: / '2. GLZ-SALDI (Gleitzeitkonto)'. WRITE: / '------------------------------------------------'. " PTQUODED - Kontingentübersicht DATA: lv_count_quo TYPE i. SELECT COUNT(*) FROM ptquoded INTO lv_count_quo WHERE pernr = p_pernr. WRITE: / 'PTQUODED (Kontingentübersicht):', lv_count_quo, 'Einträge'. " Z-Tabellen für GLZ suchen DATA: lt_dd02l TYPE TABLE OF dd02l, ls_dd02l TYPE dd02l. SELECT * FROM dd02l INTO TABLE lt_dd02l WHERE ( tabname LIKE 'Z%GLZ%' OR tabname LIKE 'Z%GLEIT%' OR tabname LIKE 'Z%SALDO%' OR tabname LIKE 'Z%ZEIT%' ) AND tabclass = 'TRANSP'. IF lt_dd02l IS NOT INITIAL. WRITE: / ' Z-Tabellen gefunden (GLZ/Saldo):'. LOOP AT lt_dd02l INTO ls_dd02l. WRITE: / ' -', ls_dd02l-tabname. ENDLOOP. ELSE. WRITE: / ' Keine Z-Tabellen für GLZ gefunden'. WRITE: / ' -> GLZ-Saldi vermutlich in KABA oder Rexx!'. ENDIF. SKIP. *----------------------------------------------------------------------* * 3. FERIENANSPRUCH vs. BEZOGEN - PA2006 *----------------------------------------------------------------------* WRITE: / '3. FERIENANSPRUCH vs. BEZOGEN (PA2006)'. WRITE: / '------------------------------------------------'. DATA: lt_pa2006 TYPE TABLE OF pa2006, ls_pa2006 TYPE pa2006, lv_count_2006 TYPE i. SELECT COUNT(*) FROM pa2006 INTO lv_count_2006 WHERE pernr = p_pernr. WRITE: / 'PA2006 (Abwesenheitskontingente):', lv_count_2006, 'Einträge'. IF lv_count_2006 > 0. SELECT * FROM pa2006 INTO TABLE lt_pa2006 WHERE pernr = p_pernr ORDER BY begda DESCENDING. WRITE: / ' Einträge (Kontingenttyp, Anspruch, Abzug, Rest):'. lv_counter = 0. LOOP AT lt_pa2006 INTO ls_pa2006. lv_counter = lv_counter + 1. IF lv_counter > 10. EXIT. ENDIF. WRITE: / ' SUBTY:', ls_pa2006-subty, 'Von:', ls_pa2006-begda, 'Bis:', ls_pa2006-endda, 'Anspruch:', ls_pa2006-anzhl, 'Abzug:', ls_pa2006-kverb, 'Rest:', ls_pa2006-desta. ENDLOOP. ELSE. WRITE: / ' -> Keine Kontingente in PA2006'. ENDIF. SKIP. *----------------------------------------------------------------------* * 4. PRODUKTIVSTUNDEN - Suche nach möglichen Quellen *----------------------------------------------------------------------* WRITE: / '4. PRODUKTIVSTUNDEN'. WRITE: / '------------------------------------------------'. " CATSDB - Zeiterfassung (CATS) DATA: lv_count_cats TYPE i. SELECT COUNT(*) FROM catsdb INTO lv_count_cats WHERE pernr = p_pernr. WRITE: / 'CATSDB (CATS Zeiterfassung):', lv_count_cats, 'Einträge'. " ZHR_PT (aus vorherigem Test - Zeitstempelungen) DATA: lv_count_zhrpt TYPE i. SELECT COUNT(*) FROM zhr_pt INTO lv_count_zhrpt WHERE pernr = p_pernr. WRITE: / 'ZHR_PT (Zeitstempelungen/KABA):', lv_count_zhrpt, 'Einträge'. IF lv_count_zhrpt > 0. DATA: lt_zhrpt TYPE TABLE OF zhr_pt, ls_zhrpt TYPE zhr_pt. SELECT * FROM zhr_pt INTO TABLE lt_zhrpt WHERE pernr = p_pernr ORDER BY ldate DESCENDING. WRITE: / ' Letzte 5 Stempelungen:'. lv_counter = 0. LOOP AT lt_zhrpt INTO ls_zhrpt. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' Datum:', ls_zhrpt-ldate, 'Zeit:', ls_zhrpt-ltime, 'Terminal:', ls_zhrpt-teession. ENDLOOP. ENDIF. " Z-Tabellen für Produktivstunden/Arbeitszeit CLEAR lt_dd02l. SELECT * FROM dd02l INTO TABLE lt_dd02l WHERE ( tabname LIKE 'Z%PROD%' OR tabname LIKE 'Z%ARBEIT%' OR tabname LIKE 'Z%STUND%' OR tabname LIKE 'Z%KABA%' ) AND tabclass = 'TRANSP'. IF lt_dd02l IS NOT INITIAL. WRITE: / ' Z-Tabellen gefunden (Produktiv/Arbeitszeit):'. LOOP AT lt_dd02l INTO ls_dd02l. WRITE: / ' -', ls_dd02l-tabname. ENDLOOP. ELSE. WRITE: / ' Keine Z-Tabellen für Produktivstunden gefunden'. ENDIF. SKIP. *----------------------------------------------------------------------* * 5. ZUSAMMENFASSUNG *----------------------------------------------------------------------* WRITE: / '================================================'. WRITE: / 'ZUSAMMENFASSUNG'. WRITE: / '================================================'. SKIP. WRITE: / 'Überstunden:'. IF lv_count_2002 > 0 OR lv_count_2007 > 0. WRITE: / ' -> Möglicherweise in PA2002/PA2007 vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP (evtl. KABA/Rexx)'. ENDIF. WRITE: / 'GLZ-Saldi:'. IF lv_count_quo > 0. WRITE: / ' -> In PTQUODED vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP (evtl. KABA/Rexx)'. ENDIF. WRITE: / 'Ferienanspruch:'. IF lv_count_2006 > 0. WRITE: / ' -> In PA2006 vorhanden (Anspruch + Bezogen)'. ELSE. WRITE: / ' -> NICHT in PA2006'. ENDIF. WRITE: / 'Produktivstunden:'. IF lv_count_cats > 0. WRITE: / ' -> In CATSDB (CATS) vorhanden'. ELSEIF lv_count_zhrpt > 0. WRITE: / ' -> In ZHR_PT (KABA-Stempelungen) vorhanden'. ELSE. WRITE: / ' -> NICHT in SAP (evtl. KABA/Rexx)'. ENDIF. SKIP. WRITE: / '================================================'. WRITE: / 'Bitte Output an Ingo schicken!'. WRITE: / '================================================'. Änderungen: PT_BAL00 komplett entfernt (existiert nicht) Nur noch PTQUODED für Kontingente Alle Variablen-Deklarationen an den Anfang der jeweiligen Blöcke verschoben (ABAP-konform) Ausführen mit einer Test-Personalnummer und Output schicken. Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources sap.com Projektions-Views - ABAP-Schlüsselwortdokumentation Eine Projektions-View ist eine spezielle View zum Ausblenden von Feldern einer einzigen Basistabelle. Auf der Datenbank wird keine SQL-View angelegt. Für eine Projektions-View können keine Selektionsbedingungen angegeben werden · Auf den durch die View-Felder der Projektions-View definierten ... berater-wiki.de Projektions-View – SAP-Wiki Bei Projektions-Views werden nur bestimmte Felder aus einer Tabelle ausgewählt. So werden nur die nötigen Felder von der Datenbank gelesen · Es wird beim Projektions-View kein Join über mehrere Tabellen vorgenommen abapforum.com Datenbank View wird nicht erkannt - ABAPforum.com Hallo Kollegen, ich habe einen Datenbank View angelegt mit mehreren Joins. Alles scheint gut ... dann versuche ich ihn wie eine Tabelle zu behandeln und lese… Programm ZTEST Das Datenobjekt "LS_ZHRPT" besitzt keine Komponente mit dem Namen "TEESSION". Workflow Thinking Searching Thinking Responding Ich habe die Tabelle ZHR_PT analysiert. Das Feld heisst nicht TEESSION sondern anders.Schneller Fix - ersetze im Report diese Zeile (ca. Zeile 85):Von: abap 'Terminal:', ls_zhrpt-teession. Zu: abap 'Terminal:', ls_zhrpt-satession. Oder falls das auch nicht stimmt, hier ein Mini-Test um den korrekten Feldnamen zu finden: abap REPORT ztest_zhrpt_felder. DATA: lt_fields TYPE TABLE OF dfies, ls_field TYPE dfies. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING tabname = 'ZHR_PT' TABLES dfies_tab = lt_fields. LOOP AT lt_fields INTO ls_field. WRITE: / ls_field-fieldname, ls_field-datatype, ls_field-leng. ENDLOOP. Ausführen und mir die Feldliste schicken - dann korrigiere ich den Report mit dem richtigen Feldnamen. Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources abapforum.com Komponente einer Struktur - ABAPforum.com -check = 'X'. Wenn ich nun aber auf das Feld CHECK in der Struktur zugreifen will, bekomme ich den Fehler: Das Datenobjekt " besitzt keine Struktur und daher auch keine Komponente mit Namen "CHECK"" Wenn ich debugge und mir die Struktur von wa_edidc ansehe ist da sehr wohl ein Feld namens CHECK. gabler.de Testdaten • Definition | Gabler Wirtschaftslexikon Lexikon Online ᐅTestdaten: Daten aus dem Definitionsbereich eines Moduls, Programms oder Softwaresystems, die zum Testen herangezogen werden. Die Auswahl geeigneter Testdaten ist die schwierigste Aufgabe beim Testen. datenschutz-wiki.de Softwaretest mit Echtdaten – Datenschutz-Wiki Im Datenschutz-Wiki werden die Begriffe, Themen und Probleme dieser beiden Themenbereiche erläutert und dargestellt. Auch mit Kommentierungen wichtiger Rechtsvorschriften der Datenschutzgrundverordnung (DSGVO) wurde begonnen. Ebenso werden verschiedene Diskussionsergebnisse des Datenschutzforums in diesem Wiki zusammengefasst. 22.01.2026 Programm ZTEST 1 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ MANDT CLNT 000003 PERNR NUMC 000008 ZAUSW NUMC 000008 LDATE DATS 000008 LTIME TIMS 000006 ERDAT DATS 000008 ERTIM TIMS 000006 SATZA CHAR 000003 TERID CHAR 000004 ABWGR CHAR 000004 Workflow Thinking Searching Thinking Responding Danke für die Feldliste von ZHR_PT. Das Feld heisst TERID (Terminal-ID), nicht TEESSION.Hier ist die korrigierte Zeile (ca. Zeile 85):Von: abap 'Terminal:', ls_zhrpt-teession. Zu: abap 'Terminal:', ls_zhrpt-terid. Oder hier der komplette korrigierte Block für ZHR_PT (ersetze Zeilen 75-90): abap IF lv_count_zhrpt > 0. DATA: lt_zhrpt TYPE TABLE OF zhr_pt, ls_zhrpt TYPE zhr_pt. SELECT * FROM zhr_pt INTO TABLE lt_zhrpt WHERE pernr = p_pernr ORDER BY ldate DESCENDING. WRITE: / ' Letzte 5 Stempelungen:'. lv_counter = 0. LOOP AT lt_zhrpt INTO ls_zhrpt. lv_counter = lv_counter + 1. IF lv_counter > 5. EXIT. ENDIF. WRITE: / ' Datum:', ls_zhrpt-ldate, 'Zeit:', ls_zhrpt-ltime, 'Terminal:', ls_zhrpt-terid, 'Satzart:', ls_zhrpt-satza. ENDLOOP. ENDIF. Nochmal ausführen und Output schicken. Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources entners.at Entners Bestseller (4=3) 03.01.2026 - 15.01.2026, 17.01.2026 ... ... 22.01.2026, 25.01.2026 - 29.01.2026, 01.02.2026 - 05.02.2026, 08.03 ... 22.01.2026; 25.01. - 29.01.2026; 01.02. - 05.02.2026; 08.03. - 12.03.2026. spie.org SPIE Photonics West Exhibition: 20 – 22 January 2026 The globally recognized event for providers of the best solutions, components, instruments, and system support for the optics and photonics industry. worldbank.org CA-REMIT-Press-Release-22.01.2026-TAJ 5 hours ago ... CA-REMIT-Press-Release-22.01.2026-TAJ · DETAILS · MAIN DOCUMENT · Download statistics. was muss ich eintippen pernr Workflow Thinking Searching Thinking Responding Gute Frage! PERNR ist die Personalnummer eines Mitarbeiters in SAP.Was du eingeben musst:Eine gültige SAP-Personalnummer aus eurem System, z.B.: 00001234 (8-stellig mit führenden Nullen) oder einfach 1234 (SAP ergänzt die Nullen automatisch) Wie findest du eine Test-PERNR? Deine eigene: PA20 → deine Personalnummer eingeben Irgendeine aktive: SE16 → Tabelle PA0001 → Ausführen → erste PERNR nehmen Oder frag HR nach einer Test-Personalnummer Tipp: Nimm am besten eine PERNR von einem aktiven Mitarbeiter der schon länger dabei ist - dann hat er wahrscheinlich Daten in allen relevanten Tabellen (Abwesenheiten, Lohn, etc.). Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources dwds.de eintippen – Schreibung, Definition, Bedeutung, Synonyme, Beispiele | DWDS Um die per Sprache vorbereitete Überweisung freizugeben, muss der Kunde weiterhin in die App der Bank gehen und eine TAN (= Transaktionsnummer) eintippen. collinsdictionary.com English Translation of “EINTIPPEN” | Collins German-English Dictionary Presentich tippe eindu tippst einer/sie/es tippt einwir tippen einihr tippt einsie/Sie tippen einFutureich werde eintippendu wirst eintippener/sie/es wird eintippenwir werden eintippenihr werdet eintippensie/Sie werden eintippenPreteriteich tippte eindu tipptest einer/sie/es tippte einwir tippten einihr tipptet einsie/Sie tippten einPresent Perfectich habe eingetipptdu hast eingetippter/sie/es hat eingetipptwir haben eingetipptihr habt eingetipptsie/Sie haben eingetippt Full verb table verbformen.com Imperative German "eintippen" - All forms of verb, rules, examples | Netzverb Dictionary The conjugation of eintippen (type, input) in the imperative is: tippe (du) ein, tippen wir ein, tippt (ihr) ein, tippen Sie ein. The imperative is formed with the stem of present tense tipp. The endings -e, -en, -t, -en are appended to the stem. 22.01.2026 Programm ZTEST 1 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ================================================ Analyse fehlende HR-KPIs Personalnummer: 00032316 ================================================ 1. ÜBERSTUNDEN ------------------------------------------------ PA2002 (Anwesenheiten): 0 Einträge PA2007 (Zeitkontingente Abzüge): 0 Einträge 2. GLZ-SALDI (Gleitzeitkonto) ------------------------------------------------ PTQUODED (Kontingentübersicht): 0 Einträge Z-Tabellen gefunden (GLZ/Saldo): - ZDP_DISPOLZEIT 3. FERIENANSPRUCH vs. BEZOGEN (PA2006) ------------------------------------------------ PA2006 (Abwesenheitskontingente): 0 Einträge -> Keine Kontingente in PA2006 4. PRODUKTIVSTUNDEN ------------------------------------------------ CATSDB (CATS Zeiterfassung): 0 Einträge ZHR_PT (Zeitstempelungen/KABA): 0 Einträge Keine Z-Tabellen für Produktivstunden gefunden ================================================ ZUSAMMENFASSUNG ================================================ Überstunden: -> NICHT in SAP (evtl. KABA/Rexx) GLZ-Saldi: -> NICHT in SAP (evtl. KABA/Rexx) Ferienanspruch: -> NICHT in PA2006 Produktivstunden: -> NICHT in SAP (evtl. KABA/Rexx) ================================================ Bitte Output an Ingo schicken! ================================================ Workflow Thinking Searching Thinking Responding Sehr gutes Ergebnis! Hier die Zusammenfassung:Was in SAP vorhanden ist: Daten Tabelle Status Überstunden PA2002, PA2007 ❌ NICHT vorhanden (0 Einträge) GLZ-Saldi PTQUODED ❌ NICHT vorhanden (0 Einträge) Ferienanspruch PA2006 ❌ NICHT vorhanden (0 Einträge) Produktivstunden CATSDB, ZHR_PT ❌ NICHT vorhanden (0 Einträge) Aber: Es wurde eine Z-Tabelle gefunden: ZDP_DISPOLZEIT - könnte GLZ/Dispositionszeit enthalten Fazit für den HR-Report:Diese Daten sind NICHT in SAP und kommen vermutlich aus: KABA (Zeiterfassung) → Überstunden, GLZ-Saldi, Produktivstunden Rexx → Ferienanspruch, evtl. auch Zeitdaten Nächste Schritte - Fragen an dich: ZDP_DISPOLZEIT - soll ich die Struktur dieser Tabelle prüfen? (Könnte GLZ-Daten enthalten) Für den HR-Report: Soll ich diese Felder als Platzhalter (leer) im CSV lassen, damit ihr sie später aus KABA/Rexx manuell ergänzen könnt? Oder: Weisst du ob es einen anderen Report/Programm gibt das diese Daten aus KABA holt? (z.B. ein Z-Programm das Zeitdaten importiert) Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources blogspot.com HCM@Journal: Korrekturhinweise zum Jahreswechsel 2025/2026 nach dem X-Mas HR Support Package 3693950 - ELStAM-PKV: Kein Eintrag in Tabelle V_T596L für 01 E2PV 00.00.0000 workwise.io 25 Personalkennzahlen fürs HR-Controlling 2026 [inkl. ... Personalcontrolling für Profis: Erfahre hier, welche KPIs du als Recruiter fürs HR-Controlling im Blick haben solltest und wie du sie einfach ausrechnest. activate-hr.de Der häufigste Fehler in der Personalabrechnung: Unsere Lösungen! Die Lösung liegt also darin für die kompletten Zeitraum der Beschäftigung (auch für die Zeit ohne Zeitauswertung) eine gültige Arbeitszeitplanregel mit entsprechendem Periodenarbeitszeitplan, Tagesarbeitszeitplänen und Pausenplänen anzulegen, den Periodenarbeitszeitplan zu generieren und diesen im Periodenarbeitszeitplan im Infotyp 0007 für diese Zeit zuzuordnen. Alternativ könnte man natürlich auch eine neue Personalnummer ab dem 01.09. der csv report extrahiert schon daten aus rexx oder nicht ? Workflow Thinking Searching Thinking Responding Nein, der aktuelle Report Z_HR_KPI_CONSOLIDATE extrahiert keine Daten aus Rexx.Was der Report aktuell macht: Datenquelle Status PA0001 (Stammdaten) ✅ SAP PA0002 (Persönliche Daten) ✅ SAP PA0007 (Beschäftigungsgrad) ✅ SAP PA0008 (Lohn) ✅ SAP PA0000 (Ein-/Austritt) ✅ SAP PA2001 (Abwesenheiten) ✅ SAP HRP1000 (Stellenplan) ✅ SAP Rexx-Daten ❌ Nur Platzhalter (leer) Die Rexx-Felder im Report sind leer: rexx_puls_score → leer rexx_zufried_score → leer rexx_kununu_score → leer rexx_time_to_hire → leer Laut deinen Requirements: Pulsumfrage → nur in Rexx, nicht in SAP MA-Zufriedenheit → nur in Rexx Kununu-Score → manuell aus Excel Time-to-hire → Refline, wird durch Rexx abgelöst Optionen für diese Daten: Im CSV leer lassen → HR ergänzt manuell in Excel/Power BI Separates Excel → HR pflegt Rexx-Daten in Excel, Power BI merged beide Quellen Rexx-Tabellen anzapfen → Die Tabellen ZHR_PA_REXX_IMPORT_S etc. enthalten aber nur Stammdaten, keine Umfrage-Scores Meine Empfehlung: Option 2 - CSV aus SAP + separates Excel für Rexx/Kununu-Daten. Power BI kann beide Quellen über PERNR verknüpfen.Frage: Soll ich den CSV-Download trotzdem einbauen (mit leeren Rexx-Feldern), oder willst du zuerst klären woher die Rexx-Daten kommen? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources sourceforge.net Rexx/CSV - Read and write CSV files Rexx/CSV is freeware, distributed under the GNU Library General Public License stackoverflow.com parsing - REXX - Parse from CSV File - Stack Overflow 1) Lines(SourceFile) on a Windows system probably involves reading the entire file to count CR-LF sequences. Then your Parse value LineIn(SourceFile) loop reads it again. The typical Rexx way to do this would be: bjoernwalther.com Daten aus R exportieren (XLSX, SAV, CSV, TXT, DTA) - Björn Walther Dieser Beitrag zeigt, wie man Dataframes aus R in andere Formate (XLSX, SAV, CSV, TXT, DTA) exportieren kann. ich war paar wochen nicht mehr am themas, was macht report ?`ich habe jetzt auich daten aus rexx dem zeiterfaswsungsysstem :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.) Jolie, Angelina TEST Leitung IT Test Rexx ja 01.02.2024 Aktiv 0:00 0:00 0:00 0:00 0:00 0:00 Empfänger, Reminder Applikationsmanager ICT Service nein 12.07.2024 Aktiv 0:00 0:00 0:00 0:00 0:00 0:00 1 Muster, Peter TEST Stv. IT Test Rexx nein 01.04.2024 Aktiv 0:00 0:00 0:00 0:00 0:00 0:00 00000000000000000001 ICT, Trafag Standard Stelle ICT Service nein 01.09.2024 Aktiv 0:00 0:00 0:00 0:00 0:00 0:00 00002004 Fernandez, Carlos Sachbearbeiter Logistik Logistik nein 01.07.1988 Aktiv 0:00 0:00 23.01.2025 - 24.01.2025 0:00 23.01.2025 - 24.01.2025 0:00 0:00 0:00 00002007 Bordonaro, Diega Betriebsangestellte Transmitter TR nein 01.12.1997 Aktiv 0.00 8.00 0:00 8:00 23.02.2026 0:00 23.02.2026 8:00 0:00 8.00 0.00 8:00 8.00 0.00 Workflow Thinking Searching Thinking Responding Gute Frage! Du hast jetzt Rexx-Daten als CSV/Excel bekommen. Lass mich zusammenfassen wo wir stehen:Was der SAP-Report Z_HR_KPI_CONSOLIDATE aktuell macht: Daten Quelle Status Stammdaten (Name, Geschlecht, Gebdat) PA0001, PA0002 ✅ Org-Daten (Kostenstelle, Org.einheit, Planstelle) PA0001 ✅ Beschäftigungsgrad (FTE) PA0007 ✅ Ein-/Austrittsdatum PA0000 ✅ Bruttolohn PA0008 ✅ Krankheitstage kurz (<60 Tage) PA2001 ✅ Krankheitstage lang (>=61 Tage) PA2001 ✅ NBU-Tage PA2001 ✅ BU-Tage PA2001 ✅ Ferientage (bezogen) PA2001 ✅ Stellenplan Soll HRP1000 ✅ CSV-Download Neu eingebaut ✅ Pulsumfrage Rexx ❌ Platzhalter (leer) MA-Zufriedenheit Rexx ❌ Platzhalter (leer) Kununu-Score Excel manuell ❌ Platzhalter (leer) Time-to-hire Refline/Rexx ❌ Platzhalter (leer) Jetzt zu deinen Rexx-Daten:Die Rexx-CSV die du geschickt hast enthält Krankheitsdaten in Stunden, nicht Tagen. Das ist eine andere Granularität als im SAP-Report.Fragen bevor ich weitermache: Doppelte Daten? Krankheit ist jetzt in SAP (PA2001, Tage) UND in Rexx (Stunden) - welche Quelle ist führend? Oder sollen beide rein? Rexx-Daten in Power BI: Sollen die Rexx-Daten: A) In den SAP-Report eingebaut werden (über PERNR matchen)? B) Als separates CSV in Power BI geladen und dort über PERNR verknüpft werden? Welche Rexx-Felder brauchst du wirklich? Aus deiner CSV sehe ich: Leitung j/n Personal Status Diverse Krankheits-Stunden (angetreten, ausstehend, gebucht, genehmigt) Gibt es weitere Rexx-Exports (Ferien, Überstunden, GLZ-Saldi, Pulsumfrage)? Hast du noch mehr Rexx-CSVs? Die gezeigte hat nur Krankheit - gibt es separate Exports für Ferien, Überstunden, Pulsumfrage etc.? Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources personio.de Berichte | Personio Community: Teile Deine Fragen & Ideen! Jahr, Eintrittsdatum, Voll- Teilzeit, Grundgehalt – für die letzten drei Jahre sowie zum letzten Monatsstichtag vor Überprüfung Schlüsselpositionen (Lokale Geschäftsführer) Angaben zu Verpflichtungen aus Altersteilzeit, Altersfreizeit, Vorruhestand etc. x.com X's private information policy and doxxing | X Help Learn about how X handles unauthorized posting of private information, also known as doxxing, and how to report it. finanzfrage.net Daten an Dritte weitergeben?(Zeitarbeit) (Arbeitsamt, Vermittlung) Aufpassen sollte man aber in Krankheitsfällen, denn das Arbetisamt verlangt gerne mehr Informationen als ihn zustehen, so sollte man nicht leicht fertig algemein gültige Befreiungen der Schweigepflicht ausfüllen, denn ein ausführliches Gutachten oder eine Krankenakte mit den nötigen Informationen reicht völlig aus, alles andere ist Schikane und ein Eingriff in das Persönlichkeitsrecht. ich kann ich rexx verschieden exporte machnel , leider nicht ein export wo alles drin ist, maximal 40 felder, muss also immer passendes thema als export wählen Workflow Thinking Searching Thinking Responding Verstanden. Hier die Situation:Der SAP-Report Z_HR_KPI_CONSOLIDATE zieht Daten NUR aus SAP. Die Rexx-Felder (Pulsumfrage, Zufriedenheit, Kununu, Time-to-hire) sind leere Platzhalter.Jetzt hast du Rexx-Daten als CSV/Excel - aber mit Einschränkung: Max. 40 Felder pro Export, also mehrere thematische Exports nötig.Meine Empfehlung (KISS):Nicht in den SAP-Report einbauen, sondern in Power BI zusammenführen: Quelle Format Verknüpfung SAP CSV (aus Report) CSV PERNR Rexx Export 1: Krankheit CSV/Excel Personalnummer Rexx Export 2: Ferien CSV/Excel Personalnummer Rexx Export 3: Überstunden/GLZ CSV/Excel Personalnummer Rexx Export 4: Pulsumfrage CSV/Excel Personalnummer Kununu Excel Excel manuell kein Join, Firmenweit Power BI merged alles über Personalnummer - die ist ja in allen Systemen gleich.Fragen an dich: Welche Rexx-Exports hast du? Du hast mir bisher nur "Krankheit" gezeigt. Welche Themen kannst du noch exportieren? (Ferien, Überstunden, GLZ-Saldi, Pulsumfrage?) Soll ich den SAP-Report so lassen wie er ist (nur SAP-Daten + CSV-Download) und die Rexx-Daten separat in Power BI reinziehen? Oder willst du die Rexx-CSVs vorher in SAP importieren und alles in einer Tabelle konsolidieren? (Aufwändiger, aber eine einzige Datenquelle für Power BI) Sources Images Videos News Attached sources TXT Document Betreff__Power_BI_Schulung___zu____.txt Betreff: Power BI Schulung – Klärungsfragen zu Datenquellen & Anforderungen Liebe Nadja, vielen Dank für die ausführlichen Informationen zum Fragebogen! Um die Power BI Schulung optimal auf eure Bed Web sources rexx-systems.com © rexx systems | DATEV API | 16.12.2021 | Seite 1 von 12 DATEV / Online API Die Liste zeigt übersichtlich für welche Mitarbeiter welche Zahlungsarten exportiert werden. swisssalary.ch rexx Standard-Schnittstelle Datum: Weitere Informationen: 25.01.2023 rexx in SwissSalary importiert und andererseits Mitarbeiterdaten mit Stammdatenhoheit in SwissSalary nach ... Die Daten werden via SmartPort synchronisiert (verschlüsselte WEB-Übertragung). ... Für den Austausch stehen standardmässig alle SmartPort-kompatiblen Felder zur Verfügung (Felder aus rexx-systems.com © 2022 rexx systems GmbH rexx systems GmbH Süderstraße 75-79 20097 Hamburg Portalstream und Feldern in der Anwendung wie bspw. ja das mit zusammenführung hatte aich auch so gedacht, wie du, sap beschaft nur daten vom sap selber exportiert es wir ziehen dann die verschiedenen csv's im powerbi rein als datenquelle je nachdem zapfen wir csv 1 oder 5 usw an Workflow Thinking Searching Thinking Responding Genau, das ist der richtige Ansatz. Zusammenfassung:Architektur: Quelle Was Format Verknüpfung SAP Report Z_HR_KPI_CONSOLIDATE Stammdaten, Lohn, Abwesenheiten, Stellenplan CSV (Handstart) PERNR Rexx Export 1 Krankheit (Stunden) CSV/Excel Personalnummer Rexx Export 2 Ferien CSV/Excel Personalnummer Rexx Export 3 Überstunden/GLZ CSV/Excel Personalnummer Rexx Export 4 Pulsumfrage CSV/Excel Personalnummer Excel manuell Kununu-Score Excel Firmenweit (kein Join) Power BI merged alles über Personalnummer. Fragen an dich: Welche Rexx-Exports hast du noch? Du hast mir bisher nur Krankheit gezeigt. Kannst du mir die Spaltenköpfe der anderen Exports schicken? (Ferien, Überstunden, GLZ, Pulsumfrage) Rexx-Krankheit vs. SAP-Krankheit: Die SAP-Daten haben Krankheit in Tagen, Rexx in Stunden. Welche Quelle ist führend? Oder braucht ihr beides? SAP-Report: Der CSV-Download ist eingebaut und bereit. Soll ich sonst noch was am Report ändern, oder ist der SAP-Teil erstmal fertig? Rexx-Platzhalter im SAP-CSV: Soll ich die leeren Rexx-Felder (Pulsumfrage, Zufriedenheit, Kununu, Time-to-hire) aus dem CSV entfernen? Die kommen ja sowieso aus separaten Rexx-Exports.