Ansicht
Dokumentation

RPUWMTX0 - Wage type maintenance - Main logic

RPUWMTX0 - Wage type maintenance - Main logic

PERFORM Short Reference   Addresses (Business Address Services)  
This documentation is copyright by SAP AG.
SAP E-Book

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

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

Assumption --- IMPORTANT!

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

Step by step guide to create country version report

  1. Naming convention:
    1. Please follow the naming convention to create the country version report 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.

  1. Let us use RPUWMTD0 as the report name and the report should look 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 INCLUDE RPUWM1D0, 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





  • General Material Data   ABAP Short Reference  
    This documentation is copyright by SAP AG.

    Length: 20218 Date: 20240520 Time: 130955     sap01-206 ( 116 ms )