SAP Program RPUWMTD0 - Wage type maintenance - German version

Description
Please read the on-line documentation of RPUWMXX0 for more information.
The following tables (views) are currently supported:

  • T512W - Wage Type Valuation

  • T512T - Wage Type Texts

  • T510J - Constant Valuations

  • T510L - Levels

  • T510S - Time Wage Type Selection Rule

  • T511 - Wage Types

  • T511B - Cumulation Types for Averages

  • T511M - Wage Type Models

  • T512C - Tax Exemptions

  • T512Z - Permissibility of W.T. per Infotype

  • T51D2 - Wage Type Classes

  • T51D4 - Cumulation Rules

  • T51RA - Wage Type / HR Creditor Mapping

  • T520S - Text Key for Data Carrier

  • T528C - Work Center Catalog

  • T52D7 - Assign Wage Types to Wage Type Groups

  • T52DZ - Assignment: Customizing - Model wage types

  • T539A - Default Wage Types for Basic Pay

  • T539J - Evaluation of Base Wage Types

  • T539R - Events for Standard Wage Maintenance

  • T539S - Wage Types for Standard Wage Maintenance

  • T541N - Guaranteed Net Amounts

  • T54C3 - CRT: Cumulation of wagetypes

  • T555K - Transfer to Time Wage Types

  • T555W - External Wage Types from Subsystem

  • T51D4 - Cumulation Rules

  • T51RA - Wage Type / HR Creditor Mapping

  • T520S - Text Key for Data Carrier

  • T528C - Work Center Catalog

  • T52D7 - Assign Wage Types to Wage Type Groups

  • T52DZ - Assignment: Customizing - Model wage types

  • T539A - Default Wage Types for Basic Pay

  • T539J - Evaluation of Base Wage Types

  • T539R - Events for Standard Wage Maintenance

  • T539S - Wage Types for Standard Wage Maintenance

  • T541N - Guaranteed Net Amounts

  • T54C3 - CRT: Cumulation of wagetypes

  • T555K - Transfer to Time Wage Types

  • T555W - External Wage Types from Subsystem

  • T558A - Transfer Payroll Account

  • T591B - Time Constraints for Wage Types

  • T599Y - Conversion of External Wage Types

  • T599Z - Time Wage Types to Third-Party Systems

  • T51T0 - Evaluation of wage types for tax reporting

  • T51P1 - Assignment of wage types.

  • T51P6 - Characteristics of deduction WTypes for arrears processing

  • T703K - Inc.Wages: Permitted Wage Types for Each Time Ticket Type

  • T703N - Incentive Wages: Allowed Wage Types

  • T703O - Incentive Wages: Convert Wage Types to Result Types

  • T513U - Secondary System Documentation

  • T5URC - Tax Authority / HR Creditor Mapping

  • German specific tables (in German version only)
    • T5D2S - Derived Tax Wage Types

    • T5D6B - Equalization Reasons

    • This on-line documentation is for developers only who create thecountry version reports to maintain country-specific tables. For otherpurposes please read the on-line documentation of RPUWMXX0.

      Assumption --- IMPORTANT!
      Country grouping is Germany, i.e., MOLGA is 01.
      There are three tables T5D01, T5D02, T5D03.
      T5D01 has only a key field wage type LGART.
      Its key fields are MANDT, MOLGA, LGART and ENDDA.
      T5D02 has only a non-key field wage type LGAR2.
      Its key fields are MANDT, and MOLGA.
      T5D03 has both key field wage type LGART and non-keyfield wage type LGAR2.
      Its key fields are MANDT, MOLGA, LGART and PLANS.

      Step by step guide to create country version report
      RESET N1
      RESET N2
      Naming convention:
      Please follow the naming convention to create the country versionreport name. Here are some examples:
      RPUWMTD0 for Germany;
      RPUWMTU0 for USA;
      RPUWMTA0 for Austria;
      HSAUWMT0 for Saudi Arabia;
      HCNUWMT0 for China; and
      HMXUWMT0 for Mexico. etc.
      Let us use RPUWMTD0 as the report name and the report shouldlook like:
      REPORT RPUWMTD0.
      DATA: BEGIN OF COMMON PART 'WAGE_TYPE_MAINT'.
      INCLUDE RPUWD1X0.
      DATA: END OF COMMON PART.
      INCLUDE RPUWMDD0. "Table definition
      INCLUDE RPUWM1D0. "Check, process and change table
      INCLUDE RPUWM2D0. "Form routines for tables
      INCLUDE RPUWM3D0. "Correction/transport
      INCLUDE RPUWM0X0. "Common subroutines -- all conutry versions
      RPUWMDD0:
      This INCLUDE contains the data definitions. Here is how it looks like:
      *-------------------------------------------------*
      * INCLUDE RPUWMDD0 *
      *-------------------------------------------------*
      TABLES T512T. "It is needed for every country version
      TABLES: T5D01, "short text of T5D01
      T5D02, "short text of T5D02
      T5D03. "short text of T5D03
      *------ Export tables for Germany ----------------*
      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:
      This INCLUDE contains three FORM routines:
      *-----------------------------------------------*
      * INCLUDE RPUWM1D0 *
      *-----------------------------------------------*
      *-----------------------------------------------*
      * Process of Germany-specific tables *
      *-----------------------------------------------*
      FORM COUNTRY_TABLES. <=== Please use the same FORM name
      PERFORM PROCESS_T5D01.
      PERFORM PROCESS_T5D02_FUNC.
      PERFORM PROCESS_T5D03.
      PERFORM PROCESS_T5D03_FUNC.
      ENDFORM. "end of COUNTRY_TABLES.
      FORM CHECK_COUNTRY_WAGETYPE. <=== Please use the same FORM name
      PERFORM CHECK_T5D01.
      PERFORM CHECK_T5D02.
      PERFORM CHECK_T5D03.
      ENDFORM. "end of CHECK_COUNTRY_WAGETYPE
      FORM CHANGE_COUNTRY_TABLES. <=== Please use the same FORM name
      PERFORM CHANGE_T5D01.
      PERFORM CHANGE_T5D02.
      PERFORM CHANGE_T5D03.
      ENDFORM. "end of CHANGE_COUNTRY_TABLES
      RPUWM2D0:
      This INCLUDE contains all the FORM routines that are used in INCLUDERPUWM1D0, plus some more FORM routines:
      *---------------------------------------------
      * INCLUDE RPUWM2U0
      *---------------------------------------------
      *-Check completeness for T5D01---------------
      FORM CHECK_T5D01.
      SELECT * FROM T5D01.
      PERFORM MAKE_WAGETYPE USING T5D01-LGART.
      ENDSELECT.
      ENDFORM. "end of CHECK_T5D01
      *-Check completeness for T5D02----------------
      FORM CHECK_T5D02.
      SELECT * FROM T5D02.
      PERFORM MAKE_WAGETYPE USING T5D02-LGAR2.
      ENDSELECT.
      ENDFORM. "end of CHECK_T5D02
      *-Check completeness for T5D03----------------
      FORM CHECK_T5D03.
      SELECT * FROM T5D03.
      PERFORM MAKE_WAGETYPE USING T5D03-LGART.
      PERFORM MAKE_WAGETYPE USING T5D03-LGAR2.
      ENDSELECT.
      ENDFORM. "end of CHECK_T5D03
      *------------------------------------------------------------------*
      *-------------------------------------------------------
      * Table T5D01 process
      *-------------------------------------------------------
      FORM PROCESS_T5D01.
      LOOP AT WAGETYPE.
      SELECT * FROM T5D01 WHERE MOLGA EQ MOLGA
      AND LGART EQ WAGETYPE-OLD.
      PERFORM PROCESS_T5D01_1.
      ENDSELECT.
      ENDFORM. "end of PROCESS_T5D01
      *----------------------------------------------
      * Table T5D01 process--more
      *----------------------------------------------
      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. "end of 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. "end of CHANGE_T5D01
      *-------------------------------------------------------
      * Table T5D02 process
      *-------------------------------------------------------
      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. "end of PROCESS_T5D02_FUNC
      *----------------------------------------------------
      * Table T5D02 process--more
      *----------------------------------------------------
      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. "end of PROCESS_T5D02_1_FUNC
      *----------------------------------------------------
      FORM CHANGE_T5D02.
      DATA: BEGIN OF J5D02,
      ORDCD LIKE T5D02-LGAR2,
      END OF J5D02.
      LOOP AT ET5UG0.
      CLEAR PROTOKOLL.
      PROTOKOLL-TABLE = 'T5D02'.
      PROTOKOLL-FUNC_CHANGE = ET5D02-ART.
      T5D02 = ET5D02.
      CASE ACTION.
      WHEN INSERT.
      PROTOKOLL-MANDT = ET5UG0-MANDT.
      ENDCASE.
      MOVE-CORRESPONDING T5D02 TO J5D02.
      PROTOKOLL-KEY = J5D02.
      CONDENSE PROTOKOLL-KEY NO-GAPS.
      APPEND PROTOKOLL.
      ENDLOOP.
      ENDFORM. "end of CHANGE_T5D02
      *------------------------------------------------------------
      * Table T5D03 process
      *------------------------------------------------------------
      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. "end of PROCESS_T5D03
      *----------------------------------------------------------
      * Table T5D03 process--more
      *----------------------------------------------------------
      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. "end of PROCESS_T5D03_1
      *----------------------------------------------------
      * Table T5D03 process--update
      *----------------------------------------------------
      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. "end of PROCESS_T5D03_FUNC
      FORM PROCESS_T512C_1_FUNC USING I512C STRUCTURE T512C.
      *---------------------------------------------------------
      * Table T5D03 process-update-more
      *---------------------------------------------------------
      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. "end of 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. "end of CHANGE_T5D03
      RPUWM3D0:
      This INCLUDE looks like the following:
      *--------------------------------------------------------------------
      * INCLUDE RPUWM3D0
      *--------------------------------------------------------------------
      FORM FILL_COUNTRY_KORR_ENTRIES. <== Please use the same name
      DATA: BEGIN OF J5D01,
      MOLGA LIKE T5D01-MOLGA,
      LGART LIKE T5D01-LGART,
      END OF J5D01.
      * There is no need for T5D02 because it has no key field wage type
      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. "end of FILL_COUNTRY_KORR_ENTRIES.
      *-----------------------------------------------------
      FORM COUNTRY_CORRECTION_LINK USING KEY_STAR. <== same name please
      *---- The entries in the following table are specific determined
      * If all the key fields are used in the correction table, Then
      * The * must be cleared in the correction editor.
      CASE KORR-TABLE.
      * WHEN 'T5D01'. CLEAR KEY_STAR. "because ENDDA is not included
      * WHEN 'T5D02'. CLEAR KEY_STAR. "because there is no change in T5D02
      WHEN 'T5D03'. CLEAR KEY_STAR.
      ENDCASE.
      ENDFORM. "end of COUNTRY_CORRECTION_LINK