Ansicht
Dokumentation

RPUWMTX0 - Lohnartenpflege - Hauptlogik

RPUWMTX0 - Lohnartenpflege - Hauptlogik

General Data in Customer Master   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Beschreibung

Lesen Sie bitte die Online-Dokumentation zum Report RPUWMXX0 für detailliertere Informationen.

Die folgenden Tabellen (Sichten) werden derzeit unterstützt:

  • T512W - Lohnartenbewertung
  • T512T - Lohn-Gehaltsarten-Text
  • T510J - Konstante Bewertungen
  • T510L - Stufentabelle
  • T510S - Lohnartengenerierung
  • T511 - Lohn- und Gehaltsarten
  • T511B - Kumulationsregeln für Durchschnittsgrundlagen
  • T511M - L/G-Artenmuster
  • T512C - Freibeträge
  • T512Z - Zulässigkeit von Lohnarten per Infotyp
  • T51D2 - Lohnartenklassen
  • T51D4 - Kumulationsregeln
  • T51RA - Ableitung HR Kreditor
  • T520S - Textschlüssel Datenträger
  • T528C - Lohnartenkatalog
  • T52D7 - Zuordnung Lohnarten zu Lohnartengruppen
  • T52DZ - Zuordnung Customizing - Modell-Lohnart
  • T539A - Vorschlagslohnarten für Basisbezüge
  • T539J - Basis-Lohnarten-Bewertung
  • T539R - Maßnahmen Verdienstsicherung
  • T539S - Lohn/Gehaltsarten Verdienstsicherung
  • T541N - Nettozusagen
  • T54C3 - CRT: Kumulation der Lohnarten
  • T555K - Umbuchung in Zeitlohnarten
  • T555W - Externe Lohnarten von Subsystem
  • T51D4 - Kumulationsregeln
  • T51RA - Ableitung HR Kreditor
  • T520S - Textschlüssel Datenträger
  • T528C - Lohnartenkatalog
  • T52D7 - Zuordnung Lohnarten zu Lohnartengruppen
  • T52DZ - Zuordnung Customizing - Modell-Lohnart
  • T539A - Vorschlagslohnarten für Basisbezüge
  • T539J - Basis-Lohnarten-Bewertung
  • T539R - Maßnahmen Verdienstsicherung
  • T539S - Lohn/Gehaltsarten Verdienstsicherung
  • T541N - Nettozusagen
  • T54C3 - CRT: Kumulation der Lohnarten
  • T555K - Umbuchung in Zeitlohnarten
  • T555W - Externe Lohnarten von Subsystem
  • T558A - Übernahme Lohnkonto
  • T591B - Zeitbindung von Lohnarten
  • T599Y - Umsetzung ext. Lohnarten
  • T599Z - Zeitlohnarten an ext. Systeme
  • T51T0 - Auswertung von Lohnarten für die Steueranmeldung
  • T51P1 - Zuordnung von Lohnarten
  • T51P6 - Eigenschaften von Abzugslohnarten bzgl. Arrears-Verarbeitung
  • T703K - Leistungslohn: Zulässige Lohnarten pro Lohnscheintyp
  • T703N - Leistungslohn: Zulässige Lohnarten
  • T703O - Leistungslohn: Konvertierung von Lohnarten in Ergebnisarten
  • T513U - RPDSYS00 Sekundärdokumentation
  • T5URC - Ableitung HR Kreditor Steuern

Diese Online-Dokumentation is nur für diejenigen Entwickler bestimmt, die die länderspezifischen Reports zur Pflege von länderspezifischen Tabelle anlegen. Für andere Zwecke sollten Sie die Online-Dokumentation zum Report RPUWMXX0 lesen.

WICHTIGE ANNAHME !

  1. Die Ländergruppierung ist Deutschland, dh. MOLGA ist 01.
  2. Es gibt drei Tabellen T5D01, T5D02, T5D03.
    1. T5D01 hat die Lohnart LGART nur als Schlüsselfeld.
      Die Schlüsselfelder sind MANDT, MOLGA, LGART und ENDDA.
    2. T5D02 hat die Lohnart LGAR2 als nicht-Schlüsselfeld.
      Die Schlüsselfelder sind MANDT und MOLGA.
    3. T5D03 hat die Lohnart LGART im Schlüssel und die Lohnart LGAR2 als nicht-Schlüsselfeld.
      Die Schlüsselfelder sind MANDT, MOLGA, LGART und PLANS.

Verfahren, um den länderspezifischen Report anzulegen:

  1. Namenskonvention:
    1. Achten Sie auf die Namenskonventionen, wenn Sie den Namen eines länderspezifischen Reports anlegen. Zum Beispiel:
  • RPUWMTD0 für Deutschland

  • RPUWMTU0 für USA

  • RPUWMTA0 für Österreich

  • HSAUWMT0 für Saudi-Arabien

  • HCNUWMT0 für China

  • HMXUWMT0 für Mexiko, etc.

  1. Wenn wir RPUWMTD0 als Reportname verwenden, sieht der Report wie folgt aus:

    REPORT RPUWMTD0.

    DATA: BEGIN OF COMMON PART 'WAGE_TYPE_MAINT'.
    INCLUDE RPUWD1X0.
    DATA: END OF COMMON PART.

    INCLUDE RPUWMDD0. "Tabellendefinition

    INCLUDE RPUWM1D0. "Tab. kontrollieren, bearbeiten, & ändern

    INCLUDE RPUWM2D0. "FORM-Routinen für Tabellen

    INCLUDE RPUWM3D0. "Korrektur/Transport

    INCLUDE RPUWM0X0. "Allg. Unterprogramme alle Länderversionen
  • RPUWMDD0:

    Dieses INCLUDE enthält die Datendefinitionen und sieht wie folgt aus:

    *-------------------------------------------------*
    * INCLUDE RPUWMDD0 *
    *-------------------------------------------------*
    TABLES T512T. "Für jede Länderversion nötig
    TABLES: T5D01, "Kurztext für T5D01
    T5D02, "Kurztext für T5D02
    T5D03. "Kurztext für T5D03

    *-------Export-Tabellen für Deutschland------------*
    DATA: BEGIN OF ET5D01 OCCURS 1.
    INCLUDE STRUCTURE T5D01.
    DATA: END OF ET5D01.

    DATA: BEGIN OF ET5D02 OCCURS 1.
    INCLUDE STRUCTURE T5D02.
    DATA: ART(1),
    END OF ET5D02.

    DATA: BEGIN OF ET5D03 OCCURS 1.
    INCLUDE STRUCTURE T5D03.
    DATA: ART(1),
    END OF ET5D03.
  • RPUWM1D0:

    Dieses INCLUDE enthält drei FORM-Routinen:

    *-----------------------------------------------*
    * INCLUDE RPUWM1D0 *
    *-----------------------------------------------*

    *-----------------------------------------------*
    * Deutschland-spezifische Tabellen bearbeiten *
    *-----------------------------------------------*
    FORM COUNTRY_TABLES. <=== Gleichen FORM-Namen verwenden
    PERFORM PROCESS_T5D01.
    PERFORM PROCESS_T5D02_FUNC.
    PERFORM PROCESS_T5D03.
    PERFORM PROCESS_T5D03_FUNC.
    ENDFORM. "Ende von COUNTRY_TABLES.

    FORM CHECK_COUNTRY_WAGETYPE. <=== Gleichen FORM-Namen verwenden
    PERFORM CHECK_T5D01.
    PERFORM CHECK_T5D02.
    PERFORM CHECK_T5D03.
    ENDFORM. "Ende von CHECK_COUNTRY_WAGETYPE

    FORM CHANGE_COUNTRY_TABLES. <=== Gleichen FORM-Namen verwenden
    PERFORM CHANGE_T5D01.
    PERFORM CHANGE_T5D02.
    PERFORM CHANGE_T5D03.
    ENDFORM. "Ende von CHANGE_COUNTRY_TABLES
  • RPUWM2D0:

    Dieses INCLUDE enthält alle in INCLUDE RPUWM1D0 verwendeten FORM-Routinen und auch andere FORM-Routinen:

    *-------------------------------------------*
    * INCLUDE RPUWM2U0 *
    *-------------------------------------------*

    *-Vollständigkeitsprüfung für T5D01
    FORM CHECK_T5D01.
    SELECT * FROM T5D01.
    PERFORM MAKE_WAGETYPE USING T5D01-LGART.
    ENDSELECT.
    ENDFORM. "Ende von CHECK_T5D01

    *-Vollständigkeitsprüfung für T5D02
    FORM CHECK_T5D02.
    SELECT * FROM T5D02.
    PERFORM MAKE_WAGETYPE USING T5D02-LGAR2.
    ENDSELECT.
    ENDFORM. "Ende von CHECK_T5D02

    *-Vollständigkeitsprüfung für T5D03
    FORM CHECK_T5D03.
    SELECT * FROM T5D03.
    PERFORM MAKE_WAGETYPE USING T5D03-LGART.
    PERFORM MAKE_WAGETYPE USING T5D03-LGAR2.
    ENDSELECT.
    ENDFORM. "Ende von CHECK_T5D03
    *----------------------------------------------------------*

    *---------------------------------------------*
    * Tabelle T5D01 bearbeiten *
    *---------------------------------------------*
    FORM PROCESS_T5D01.
    LOOP AT WAGETYPE.
    SELECT * FROM T5D01 WHERE MOLGA EQ MOLGA
    AND LGART EQ WAGETYPE-OLD.
    PERFORM PROCESS_T5D01_1.
    ENDSELECT.
    ENDFORM. "Ende von PROCESS_T5D01

    *----------------------------------------------*
    * Tabelle T5D01 weiterbearbeiten *
    *----------------------------------------------*
    FORM PROCESS_T5D01_1.
    DATA: BEGIN OF I5D01.
    INCLUDE STRUCTURE T5D01.
    DATA: END OF I5D01.
    DATA: BEGIN OF J5D01,
    MOLGA LIKE T5D01-MOLGA,
    LGART LIKE T5D01-LGART,
    END OF J5D01.

    CASE ACTION.
    WHEN INSERT.
    I5D01 = T5D01.
    I5D01-LGART = WAGETYPE-NEW.
    SELECT * FROM T5D01 WHERE MOLGA EQ MOLGA
    AND LGART EQ I5D01-LGART.
    EXIT.
    ENDSELECT.
    T5D01 = I5D01.
    IF SY-SUBRC EQ 0.
    CLEAR PROTOKOLL.
    PROTOKOLL-TABLE = 'T5D01'.
    PERFORM PROTOKOLL_AFTER_SELECT.
    MOVE-CORRESPONDING T5D01 TO J5D01.
    PROTOKOLL-KEY = J5D01.
    CONDENSE PROTOKOLL-KEY NO-GAPS.
    APPEND PROTOKOLL.
    ELSE.
    ET5D01 = T5D01.
    APPEND ET5D01.
    ENDIF.

    WHEN DELETE.
    ET5D01 = T5D01.
    APPEND ET5D01.

    ENDCASE.
    ENDFORM. "Ende von PROCESS_T5D01_1
    *------------------------------------------------------*

    FORM CHANGE_T5D01.
    DATA: BEGIN OF J5D01,
    MOLGA LIKE T5D01-MOLGA,
    LGART LIKE T5D01-LGART,
    END OF J5D01.

    LOOP AT ET5D01.
    CLEAR PROTOKOLL.
    PROTOKOLL-TABLE = 'T5D01'.
    T5D01 = ET5D01.
    CASE ACTION.
    WHEN INSERT.
    IF TEST EQ SPACE.
    INSERT T5D01.
    PERFORM PROTOKOLL_AFTER_INSERT USING SY-SUBRC.
    ENDIF.
    PROTOKOLL-MANDT = ET5D01-MANDT.

    WHEN DELETE.
    IF TEST EQ SPACE.
    DELETE T5D01.
    PERFORM PROTOKOLL_AFTER_DELETE USING SY-SUBRC.
    ENDIF.

    WHEN CHECKC.
    IF TEST EQ SPACE.
    DELETE T5D01.
    PERFORM PROTOKOLL_AFTER_DELETE USING SY-SUBRC.
    ENDIF.
    ENDCASE.
    MOVE-CORRESPONDING T5D01 TO J5D01.
    PROTOKOLL-KEY = J5D01.
    CONDENSE PROTOKOLL-KEY NO-GAPS.
    APPEND PROTOKOLL.
    ENDLOOP.
    ENDFORM. "Ende von CHANGE_T5D01

    *-------------------------------------------*
    * Tabelle T5D02 bearbeiten *
    *-------------------------------------------*
    FORM PROCESS_T5D02_FUNC.
    DATA: BEGIN OF I5D02.
    INCLUDE STRUCTURE T5D02.
    DATA: END OF I5D02.

    SELECT * FROM T5D02.
    I5D02 = T5D02.
    LOOP AT WAGETYPE WHERE OLD EQ T5D02-LGAR2.
    PERFORM PROCESS_T5D02_1_FUNC USING I5D02.
    ENDLOOP.
    ENDSELECT.
    ENDFORM. "Ende von PROCESS_T5D02_FUNC

    *------------------------------------------*
    * Tabelle T5D02 weiterbearbeiten *
    *------------------------------------------*
    FORM PROCESS_T5D02_1_FUNC USING I5D02 STRUCTURE T5D02
    IF I5D02-LGAR2 EQ WAGETYPE-OLD.
    CASE ACTION.
    WHEN INSERT.
    I5D02-LGAR2 = WAGETYPE-NEW.
    WHEN DELETE.
    CLEAR I5D02-LGAR2.
    WHEN CHECKC.
    CLEAR I5D02-LGAR2.
    ENDCASE.
    ENDIF.

    ET5D02 = I5D02.
    ET5D02-ART = '1'.
    APPEND ET5D02.
    ENDFORM. "Ende von PROCESS_T5D02_1_FUNC
    *------------------------------------------------

    FORM CHANGE_T5D02.
    DATA: BEGIN OF J5D02,
    ORDCD LIKE T5D02-LGAR2,
    END OF J5D02.

    LOOP AT ET5D02.
    CLEAR PROTOKOLL.
    PROTOKOLL-TABLE = 'T5D02'.
    PROTOKOLL-FUNC_CHANGE = ET5D02-ART.
    T5D02 = ET5D02.
    CASE ACTION.
    WHEN INSERT.
    PROTOKOLL-MANDT = ET5d02-MANDT.
    ENDCASE.
    MOVE-CORRESPONDING T5D02 TO J5D02.
    PROTOKOLL-KEY = J5D02.
    CONDENSE PROTOKOLL-KEY NO-GAPS.
    APPEND PROTOKOLL.
    ENDLOOP.
    ENDFORM. "Ende von CHANGE_T5D02

    *-----------------------------------------*
    * Tabelle T5D03 bearbeiten *
    *-----------------------------------------*
    FORM PROCESS_T5D03.
    LOOP AT WAGETYPE.
    SELECT * FROM T5D03 WHERE MOLGA EQ MOLGA
    AND LGART EQ WAGETYPE-OLD.
    PERFORM PROCESS_T5D03_1.
    ENDSELECT.
    ENDLOOP.
    ENDFORM. "Ende von PROCESS_T5D03

    *-----------------------------------------------*
    * Tabelle T5D03 weiterbearbeiten *
    *-----------------------------------------------*
    FORM PROCESS_T5D03_1.
    DATA: BEGIN OF I5D03.
    INCLUDE STRUCTURE T5D03.
    DATA: END OF I5D03.
    DATA: BEGIN OF J5D03,
    MODIF LIKE T5D03-MOLGA,
    LGART LIKE T5D03-LGART,
    END OF J5D03.

    CASE ACTION.
    WHEN INSERT.
    I5D03 = T5D03.
    I5D03-LGART = WAGETYPE-NEW.
    SELECT * FROM T5D03 WHERE MOLGA EQ MOLGA
    AND LGART EQ I5D03-LGART.
    EXIT.
    ENDSELECT.
    T5D03 = I5D03.
    IF SY-SUBRC EQ 0.
    CLEAR PROTOKOLL.
    PROTOKOLL-TABLE = 'T5D03'.
    PERFORM PROTOKOLL_AFTER_SELECT.
    MOVE-CORRESPONDING T5D03 TO J5D03.
    PROTOKOLL-KEY = J5D03.
    CONDENSE PROTOKOLL-KEY NO-GAPS.
    APPEND PROTOKOLL.
    ELSE.
    ET5D03 = T5D03.
    APPEND ET5D03.
    ENDIF.

    WHEN DELETE.
    ET5D03 = T5D03.
    APPEND ET5D03.

    WHEN CHECKC.
    ET5D03 = T5D03.
    APPEND ET5D03.

    ENDCASE.
    ENDFORM. "Ende von PROCESS_T5D03_1

    *--------------------------------------------------*
    * Tabelle T5D03 bearbeiten - aktualisieren *
    *--------------------------------------------------*
    FORM PROCESS_T5D03_FUNC.
    DATA: BEGIN OF I5D03.
    INCLUDE STRUCTURE T5D03.
    DATA: END OF I5D03.

    SELECT * FROM T5D03 WHERE MOLGA EQ MOLGA.
    I5D03 = T5D03.
    IF T5D03-LGART+0(1) BETWEEN '0' AND '9'.
    LOOP AT WAGETYPE WHERE OLD EQ T5D03-LGAR2.
    PERFORM PROCESS_T5D03_1_FUNC USING I5D03.
    ENDLOOP.
    ENDIF.
    ENDSELECT.

    IF ACTION EQ INSERT.
    LOOP AT ET5D03 WHERE MOLGA EQ MOLGA.
    IF ET5D03-LGART+0(1) BETWEEN '0' AND '9'.
    LOOP AT WAGETYPE WHERE OLD EQ ET5D03-LGAR2
    T5D03 = ET5D03.
    I5D03 = T5D03.
    PERFORM PROCESS_T5D03_1_FUNC USING I5D03.
    ENDLOOP.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ENDFORM. "Ende von PROCESS_T5D03_FUNC

    FORM PROCESS_T512C_1_FUNC USING I512C STRUCTURE T512C.

    *-----------------------------------------------------*
    * Tabelle T5D03 weiterbearbeiten - aktualisieren *
    *-----------------------------------------------------*
    FORM PROCESS_T5D03_1_FUNC USING I5D03 STRUCTURE T5D03.
    IF I5D03-LGAR2 EQ WAGETYPE-OLD.
    CASE ACTION.
    WHEN INSERT.
    I5D03-LGAR2 = WAGETYPE-NEW.
    WHEN DELETE.
    CLEAR I5D03-LGAR2.
    WHEN CHECKC.
    CLEAR I5D03-LGAR2.
    ENDCASE.
    ENDIF.

    LOOP AT ET5D03 WHERE MODIF EQ MOLGA
    AND LGART EQ I5D03-LGART
    AND PLANS EQ I5D03-PLANS.
    MOVE-CORRESPONDING I5D03 TO ET5D03.
    MODIFY ET5D03.
    EXIT.
    ENDLOOP.
    IF SY-SUBRC NE 0.
    ET5D03 = I5D03.
    ET5D03-ART = '1'.
    APPEND ET5D03.
    ENDIF.
    ENDFORM. "Ende von PROCESS_T5D03_1_FUNC

    *--------------------------------------------
    FORM CHANGE_T5D03.
    DATA: BEGIN OF J5D03,
    MOLGA LIKE T5D03-MOLGA,
    LGART LIKE T5D03-LGART,
    LGART LIKE T5D03-PLANS,
    END OF J5D03.

    LOOP AT ET5D03.
    CLEAR PROTOKOLL.
    PROTOKOLL-TABLE = 'T5D03'.
    PROTOKOLL-FUNC_CHANGE = ET5D03-ART.
    T5D03 = ET5D03.
    CASE ACTION.
    WHEN INSERT.
    IF TEST EQ SPACE.
    INSERT T5D03.
    PERFORM PROTOKOLL_AFTER_INSERT USING SY-SUBRC.
    ENDIF.
    PROTOKOLL-MANDT = ET5D03-MANDT.

    WHEN DELETE.
    IF TEST EQ SPACE.
    IF ET5D03-ART EQ '1'.
    PERFORM PROTOKOLL_AFTER_INSERT USING SY-SUBRC.
    ELSE.
    DELETE T5D03.
    PERFORM PROTOKOLL_AFTER_DELETE USING SY-SUBRC.
    ENDIF.
    ENDIF.

    WHEN CHECKC.
    IF TEST EQ SPACE.
    IF ET5D03-ART EQ '1'.
    ELSE.
    DELETE T5D03.
    PERFORM PROTOKOLL_AFTER_DELETE USING SY-SUBRC.
    ENDIF.
    ENDIF.
    ENDCASE.
    MOVE-CORRESPONDING T5D03 TO J5D03.
    PROTOKOLL-KEY = J5D03.
    CONDENSE PROTOKOLL-KEY NO-GAPS.
    APPEND PROTOKOLL.
    ENDLOOP.
    ENDFORM. "Ende von CHANGE_T5D03
  • RPUWM3D0:

    Dieses INCLUDE sieht wie folgt aus:

    *--------------------------------------------
    * INCLUDE RPUWM3D0
    *-----------------------------------------
    FORM FILL_COUNTRY_KORR_ENTRIES. <== Gleichen Namen verwenden
    DATA: BEGIN OF J5D01,
    MOLGA LIKE T5D01-MOLGA,
    LGART LIKE T5D01-LGART,
    END OF J5D01.

    * T5D02 ist nicht nötig weil sie keine Schlüsselfeld-Lohnart hat

    DATA: BEGIN OF J5D03,
    MOLGA LIKE T5D03-MOLGA,
    LGART LIKE T5D03-LGART,
    PLANS LIKE T5D03-PLANS,
    END OF J5D03.

    LOOP AT ET5D01.
    CLEAR KORR.
    MOVE-CORRESPONDING ET5D01 TO J5D01.
    KORR-KEY = J5D01.
    CONDENSE KORR-KEY NO-GAPS.
    KORR-TABLE = 'T5D01'.
    APPEND KORR.
    ENDLOOP.

    LOOP AT ET5D03.
    CHECK ET5D03-ART IS INITIAL. <==== !!!
    CLEAR KORR.
    MOVE-CORRESPONDING ET5D03 TO J5D03.
    KORR-KEY = J5D03.
    CONDENSE KORR-KEY NO-GAPS.
    KORR-TABLE = 'T5D03'.
    APPEND KORR.
    ENDLOOP.
    ENDFORM. "Ende von FILL_COUNTRY_KORR_ENTRIES.

    *------------------------------------------------
    FORM COUNTRY_CORRECTION_LINK USING KEY_STAR. <== gleichen Namen
    ver.
    *---- Die Einträge der folgenden Tabelle sind spezifisch.
    * Wenn alle Schlüsselfelder in der Korrekturtabelle verwendet
    * werden, muß das * im Korrektureditor entfernt werden.
    CASE KORR-TABLE.
    * WHEN 'T5D01'. CLEAR KEY_STAR. "da ENDDA nicht enthalten ist
    * WHEN 'T5D02'. CLEAR KEY_STAR. "da keine Änderung in T5D02
    WHEN 'T5D03'. CLEAR KEY_STAR.
    ENDCASE.
    ENDFORM. "Ende von COUNTRY_CORRECTION_LINK
  • Voraussetzungen

    Ausgabe

    Beispiel






    ROGBILLS - Synchronize billing plans   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
    Diese Dokumentation steht unter dem Copyright der SAP AG.

    Length: 20645 Date: 20240520 Time: 131322     sap01-206 ( 114 ms )