*&---------------------------------------------------------------------* *& Report ZHR_ILM_CHECK_T569V_STATUS *&---------------------------------------------------------------------* *& Beschreibung: Anzeige des Status der Verwaltungssätze (T569V) *& zur Prüfung, ob eine Abrechnung aktiv ist. *& Status 1 oder 2 = Abrechnung läuft (rot markiert) *& Relevant für ILM-Löschprüfungen in SAP HCM. *&---------------------------------------------------------------------* *& Autor: hoelterhoff.consulting *& Peer Hoelterhoff *& Johannstraße 37, 40476 Düsseldorf *& https://hoelterhoff.info *& Datum: 25.02.2026 *& Version: 1.0 *&---------------------------------------------------------------------* *& Textsymbole (SE38 -> Goto -> Text Elements -> Text Symbols): *& *& B01 Selektion *& 001 Keine Verwaltungssätze gefunden. *& 002 Neu angelegt *& 003 Frei zur Abrechnung *& 004 Korrektur der Abrechnung *& 005 Ende der Abrechnung *& 006 Status der Verwaltungssätze (T569V) - ILM Prüfung *& 007 Abrechnungskreis *& 010 AbrKrs *& 011 Abr.Kreis *& 012 Abrechnungskreis *& 013 VwSArt *& 014 Verw.Satzart *& 015 Verwaltungssatzart *& 016 AbrJahr *& 017 Abr.Jahr *& 018 Abrechnungsjahr *& 019 AbrPer *& 020 Abr.Periode *& 021 Abrechnungsperiode *& 022 Status *& 023 Status *& 024 Status Verwaltungssatz *& 025 Stat.Text *& 026 Statustext *& 027 Statusbeschreibung *& 028 SortFld *& 029 Sortierfeld *& 030 Sortierfeld Verw.Satz *& 031 RückrJ *& 032 Rückr.Jahr *& 033 Tiefstes rückr. Abrechnungsjahr *& 034 RückrP *& 035 Rückr.Periode *& 036 Tiefstes rückr. Abrechnungsperiode *& 037 SoLauf *& 038 Sonderlauf *& 039 HR: Abrechnung - Sonderlauf *& 040 Prüfen Abrechnungsergebnisse *& 041 Gelöscht *& 042 Unbekannter Status *&---------------------------------------------------------------------* REPORT zhr_ilm_check_t569v_status. *----------------------------------------------------------------------* * Datendeklarationen *----------------------------------------------------------------------* TYPES: BEGIN OF ty_output, abkrs TYPE t569v-abkrs, " Abrechnungskreis vwsaz TYPE t569v-vwsaz, " Verwaltungssatzart pabrj TYPE t569v-pabrj, " Abrechnungsjahr pabrp TYPE t569v-pabrp, " Abrechnungsperiode state TYPE t569v-state, " Status status_text TYPE char40, " Statustext srtfd TYPE t569v-srtfd, " Sortierfeld uabrj TYPE t569v-uabrj, " Tiefstes rückr. Abrechnungsjahr uabrp TYPE t569v-uabrp, " Tiefstes rückr. Abrechnungsperiode adrun TYPE t569v-adrun, " Sonderlauf cellcolor TYPE lvc_t_scol, " Zeilenfarbe für ALV END OF ty_output. DATA: gt_output TYPE STANDARD TABLE OF ty_output, gs_output TYPE ty_output, gt_t569v TYPE STANDARD TABLE OF t569v, gs_t569v TYPE t569v. * ALV-Variablen DATA: go_alv TYPE REF TO cl_salv_table, go_columns TYPE REF TO cl_salv_columns_table, go_column TYPE REF TO cl_salv_column, go_functions TYPE REF TO cl_salv_functions_list, go_display TYPE REF TO cl_salv_display_settings, go_sorts TYPE REF TO cl_salv_sorts, go_layout TYPE REF TO cl_salv_layout, ls_layout TYPE salv_s_layout_key, lx_msg TYPE REF TO cx_salv_msg, lx_not_found TYPE REF TO cx_salv_not_found. DATA: gv_title TYPE lvc_title, gv_short TYPE scrtext_s, gv_medium TYPE scrtext_m, gv_long TYPE scrtext_l. *----------------------------------------------------------------------* * Selektionsbild *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-b01. SELECT-OPTIONS: s_abkrs FOR gs_t569v-abkrs. SELECTION-SCREEN END OF BLOCK b01. *----------------------------------------------------------------------* * Initialisierung *----------------------------------------------------------------------* INITIALIZATION. %_s_abkrs_%_app_%-text = TEXT-007. *----------------------------------------------------------------------* * Selektion *----------------------------------------------------------------------* START-OF-SELECTION. SELECT * FROM t569v INTO TABLE gt_t569v WHERE abkrs IN s_abkrs. IF sy-subrc <> 0. MESSAGE TEXT-001 TYPE 'S' DISPLAY LIKE 'W'. RETURN. ENDIF. * Ausgabetabelle aufbauen LOOP AT gt_t569v INTO gs_t569v. CLEAR gs_output. gs_output-abkrs = gs_t569v-abkrs. gs_output-vwsaz = gs_t569v-vwsaz. gs_output-pabrj = gs_t569v-pabrj. gs_output-pabrp = gs_t569v-pabrp. gs_output-state = gs_t569v-state. gs_output-srtfd = gs_t569v-srtfd. gs_output-uabrj = gs_t569v-uabrj. gs_output-uabrp = gs_t569v-uabrp. gs_output-adrun = gs_t569v-adrun. * Statustext ermitteln CASE gs_t569v-state. WHEN 0. gs_output-status_text = TEXT-002. " Neu angelegt WHEN 1. gs_output-status_text = TEXT-003. " Frei zur Abrechnung WHEN 2. gs_output-status_text = TEXT-004. " Korrektur der Abrechnung WHEN 3. gs_output-status_text = TEXT-005. " Ende der Abrechnung WHEN 4. gs_output-status_text = TEXT-040. " Prüfen Abrechnungsergebnisse WHEN 9. gs_output-status_text = TEXT-041. " Gelöscht WHEN OTHERS. gs_output-status_text = TEXT-042. " Unbekannter Status ENDCASE. * Rote Markierung für Status 1 und 2 (Abrechnung läuft) IF gs_t569v-state = 1 OR gs_t569v-state = 2. DATA: ls_color TYPE lvc_s_scol. ls_color-fname = ''. " Gesamte Zeile einfärben ls_color-color-col = col_negative. " Rot (6) ls_color-color-int = 1. " Intensiv ls_color-color-inv = 0. APPEND ls_color TO gs_output-cellcolor. ENDIF. APPEND gs_output TO gt_output. ENDLOOP. * Sortierung: Abrechnungskreis, dann Verwaltungssatzart SORT gt_output BY abkrs vwsaz. *----------------------------------------------------------------------* * ALV-Ausgabe *----------------------------------------------------------------------* END-OF-SELECTION. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gt_output ). CATCH cx_salv_msg INTO lx_msg. MESSAGE lx_msg TYPE 'E'. ENDTRY. * Alle ALV-Standardfunktionen aktivieren (Export, Sortieren, Filtern...) go_functions = go_alv->get_functions( ). go_functions->set_all( abap_true ). * Anzeigeeinstellungen go_display = go_alv->get_display_settings( ). gv_title = TEXT-006. go_display->set_list_header( gv_title ). go_display->set_striped_pattern( abap_true ). * Farbspalte zuordnen go_columns = go_alv->get_columns( ). go_columns->set_color_column( 'CELLCOLOR' ). go_columns->set_optimize( abap_true ). * Makro für typsichere Spaltentexte DEFINE set_column_texts. go_column = go_columns->get_column( &1 ). gv_short = &2. gv_medium = &3. gv_long = &4. go_column->set_short_text( gv_short ). go_column->set_medium_text( gv_medium ). go_column->set_long_text( gv_long ). END-OF-DEFINITION. * Spaltenüberschriften anpassen TRY. set_column_texts 'ABKRS' TEXT-010 TEXT-011 TEXT-012. set_column_texts 'VWSAZ' TEXT-013 TEXT-014 TEXT-015. set_column_texts 'PABRJ' TEXT-016 TEXT-017 TEXT-018. set_column_texts 'PABRP' TEXT-019 TEXT-020 TEXT-021. set_column_texts 'STATE' TEXT-022 TEXT-023 TEXT-024. set_column_texts 'STATUS_TEXT' TEXT-025 TEXT-026 TEXT-027. set_column_texts 'SRTFD' TEXT-028 TEXT-029 TEXT-030. set_column_texts 'UABRJ' TEXT-031 TEXT-032 TEXT-033. set_column_texts 'UABRP' TEXT-034 TEXT-035 TEXT-036. set_column_texts 'ADRUN' TEXT-037 TEXT-038 TEXT-039. CATCH cx_salv_not_found INTO lx_not_found. MESSAGE lx_not_found TYPE 'S' DISPLAY LIKE 'W'. ENDTRY. * Sortierung im ALV TRY. go_sorts = go_alv->get_sorts( ). go_sorts->add_sort( columnname = 'ABKRS' ). go_sorts->add_sort( columnname = 'VWSAZ' ). CATCH cx_salv_not_found cx_salv_existing cx_salv_data_error. ENDTRY. * Layout-Varianten ermöglichen go_layout = go_alv->get_layout( ). ls_layout-report = sy-repid. go_layout->set_key( ls_layout ). go_layout->set_save_restriction( if_salv_c_layout=>restrict_none ). * ALV anzeigen go_alv->display( ).