482 ABAP HR Pms1

download 482 ABAP HR Pms1

of 15

Transcript of 482 ABAP HR Pms1

  • 7/29/2019 482 ABAP HR Pms1

    1/15

    wo ABAP HR Programs, which are interconnected, the first takes employee numbers

    which should not be given Petrol allowance and the other program gives the petrol

    allowance to employees.

    FIRST PRG

    *********REPORT ZPETROL_EXCLUDE .

    TABLES SSCRFIELDS.

    SELECTION-SCREEN BEGIN OF SCREEN 100.SELECTION-SCREEN SKIP 9.PARAMETERS NUMBER(200) TYPE C.SELECTION-SCREEN SKIP 2.

    SELECTION-SCREEN:BEGIN OF LINE,PUSHBUTTON 2(10) TEXT-001 USER-COMMAND PROC,

    END OF LINE.

    SELECTION-SCREEN END OF SCREEN 100.

    CALL SCREEN 100.

    AT SELECTION-SCREEN.CASE SSCRFIELDS.WHEN 'PROC'.SET PARAMETER ID: 'NUM' FIELD NUMBER.CALL TRANSACTION 'ZP_PALLOWANCE'.LEAVE TO SCREEN 0.ENDCASE.

    SECOND PRG

    **********

    REPORT ZPR_PETROL_ALLOWANCE NO STANDARD PAGEHEADING .

    *-- InfotypesINFOTYPES : 0000, "Actions

    0002, "Personal Data0008. "Basic pay details

    *-- TablesTABLES : PERNR, "Standard Selections for HR Master Data Reporting

    PC207, "Payroll Results: Results TablePCL1, "HR Cluster 1

    PCL2, "HR Cluster 2T510, "Pay scalesT549A, "Payroll areasT549Q, "Payroll PeriodsPA0002. "Personal details

    *-- Internal Tables

    *-- Internal Table Declaration For Holding The Data

  • 7/29/2019 482 ABAP HR Pms1

    2/15

    DATA: BEGIN OF INT_PETROL OCCURS 0,PERNR LIKE PA0008-PERNR, "Personnel NumberTRFST LIKE PA0008-TRFST, "Pay Scale LevelNAME(40), "Name of EmployeePALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount

    END OF INT_PETROL.DATA: BEGIN OF PA0015_DATA OCCURS 0,

    PERNR LIKE PA0015-PERNR,BETRG LIKE PA0015-BETRG,

    END OF PA0015_DATA.

    DATA:BEGIN OF INT_PETROL2 OCCURS 0,PERNR LIKE PA0008-PERNR, "Personnel NumberVORNA LIKE PA0002-VORNA, "First NameNACHN LIKE PA0002-NACHN, "Last NameTRFST LIKE PA0008-TRFST, "Pay Scale LevelNAME(40), "Name of EmployeePALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance AmountEND OF INT_PETROL2.

    DATA : TITLE TYPE LVC_TITLE.

    DATA: BEGIN OF PER_NO OCCURS 0,PERNR LIKE PA0008-PERNR,TRFST LIKE PA0008-TRFST,END OF PER_NO.

    DATA: BEGIN OF MSG OCCURS 0,MSG1(100) TYPE C,END OF MSG.

    DATA: FLAG TYPE I VALUE '0',DIS_FLAG TYPE I VALUE '0'.

    DATA: INT_PETROL3 LIKE STANDARD TABLE OF INT_PETROL2 INITIAL SIZE 0WITH HEADER LINE.

    DATA: INT_PETROL1 LIKE STANDARD TABLE OF INT_PETROL INITIAL SIZE 0 WITHHEADER LINE.

    DATA: WA_PET_ALLOWANCE TYPE ZBPETROL_ALL. "WORKAREA FOR INSERTINGVALUES.

    *DATA: P_LGART1 LIKE T512T-LGART VALUE '0010'. "CHANGE WAGE TYPE HEREDATA: P_LGART1 LIKE T512T-LGART VALUE '0077'. "CHANGE WAGE TYPE HERE

    DATA: BEGIN OF INT_0015 OCCURS 0,

    PERNR(038),BEGDA(010),BETRG(018),

    END OF INT_0015.

    *-- Internal Table To Store Error Records.DATA: E_INT_0015 LIKE INT_0015 OCCURS 0 WITH HEADER LINE.

    *-- Batch Input Data of Single TransactionDATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  • 7/29/2019 482 ABAP HR Pms1

    3/15

    *-- Internal Table For Export and Import Payroll ResultsDATA: INT_RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE,

    LGTXT LIKE T512T-LGTXT.

    DATA: BEGIN OF EMP_NO OCCURS 0,PERNR(4) TYPE C,

    END OF EMP_NO.

    DATA: BEGIN OF EMP_NO1 OCCURS 0,PERNR TYPE I,

    END OF EMP_NO1.

    DATA EMPNO LIKE STANDARD TABLE OF EMP_NO INITIAL SIZE 0.DATA EMPNO1 LIKE STANDARD TABLE OF EMP_NO1 INITIAL SIZE 0 WITH HEADERLINE.DATA LEN1 TYPE I.

    DATA: ERR LIKE MESSAGE.DATA TEMP_NUM(200) TYPE C.

    *-- Includes

    *-- International IncludeINCLUDE RPC2CD09. "Cluster CD data definitionINCLUDE RPC2CA00. "Cluster CA Data-DefinitionINCLUDE RPPPXD00. "Data Definition buffer PCL1/PCL2 Buffer INCLUDE RPPPXD10."Common part buffer PCL1/PCL2 INCLUDE RPPPXM00. "Buffer Handling routine

    *-- Country Specific IncludeINCLUDE PC2RXIN0. "Cluster IN data definitionINCLUDE RPC2RX09.

    *-- ALV DeclarationTYPE-POOLS : SLIS.

    DATA: INT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,INT_EVENTS TYPE SLIS_T_EVENT,INT_LAYOUT TYPE SLIS_LAYOUT_ALV,WS_EVENTS TYPE SLIS_ALV_EVENT,WS_REPID LIKE SY-REPID.

    *-- InitializationINITIALIZATION.

    WS_REPID = SY-REPID.

    *-- At Selection-ScreenSTART-OF-SELECTION.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(30) TEXT-002.SELECTION-SCREEN POSITION 33.PARAMETERS: P_RATE TYPE P DECIMALS 2.

  • 7/29/2019 482 ABAP HR Pms1

    4/15

    SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK B1.

    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.SELECTION-SCREEN BEGIN OF BLOCK B3.PARAMETERS: P_UPLOAD AS CHECKBOX,

    P_FG RADIOBUTTON GROUP G1,P_BG RADIOBUTTON GROUP G1.

    SELECTION-SCREEN END OF BLOCK B3.SELECTION-SCREEN BEGIN OF BLOCK B4.PARAMETERS: P_DI AS CHECKBOX.SELECTION-SCREEN END OF BLOCK B4.SELECTION-SCREEN END OF BLOCK B2.

    AT SELECTION-SCREEN.

    *-- Wate Type Text

    SELECT SINGLE LGTXT INTO LGTXT FROM T512T WHERE SPRSL = 'E' ANDMOLGA = '40' AND LGART = P_LGART1 .

    *-- Data Retrieval From Logical Database PNPGET PERNR.

    PROVIDE PERNR FROM P0000 VORNA NACHN FROM P0002 BETWEEN PN-BEGDA ANDPN-ENDDA.

    INT_PETROL1-PERNR = P0000-PERNR.CONCATENATE P0002-VORNA P0002-NACHN INTO INT_PETROL1-NAME SEPARATED

    BY SPACE.ENDPROVIDE.

    *-- Clear DataCLEAR: RGDIR, INT_RGDIR.REFRESH: RGDIR, INT_RGDIR.

    *-- Read All The Payroll Runs For An EmployeeCD-KEY-PERNR = PERNR-PERNR.RP-IMP-C2-CU.CHECK RP-IMP-CD-SUBRC EQ 0.

    *-- Clear DataREFRESH: RT.

    * Read IN Cluster.LOOP AT RGDIR WHERE FPBEG >= PN-BEGDA AND FPEND

  • 7/29/2019 482 ABAP HR Pms1

    5/15

    READ TABLE RT WITH KEY LGART = P_LGART1.IF SY-SUBRC = 0.INT_PETROL1-PALLOWANCE = RT-BETRG.

    ENDIF.APPEND INT_PETROL1.CLEAR INT_PETROL1.

    SELECT TRFST PERNRINTO CORRESPONDING FIELDS OF TABLE PER_NOFROM PA0008WHERE TRFST LIKE 'L%'AND BET01 > 0.

    SORT PER_NO.DELETE ADJACENT DUPLICATES FROM PER_NO.

    *-- END-OF-SELECTION.

    END-OF-SELECTION.

    LOOP AT INT_PETROL1.READ TABLE PER_NO WITH KEY PERNR = INT_PETROL1-PERNR.IF SY-SUBRC = 0.INT_PETROL-TRFST = PER_NO-TRFST.MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING TRFST.

    ENDIF.ENDLOOP.

    SORT INT_PETROL1.DELETE ADJACENT DUPLICATES FROM INT_PETROL1.

    CONCATENATE 'From' ' : ' PN-BEGDA+6(2) '.' PN-BEGDA+4(2) '.' PN-BEGDA+0(4)' To' ' : ' PN-ENDDA+6(2) '.' PN-ENDDA+4(2) '.' PN-ENDDA+0(4)

    INTO TITLE.

    IF P_DI = 'X'. "TO DISPLAY PETROL ALLOWANCE ONLYIF PNPTIMRA = 'X'. "CHECK OTHER PERIOD CHECKEDDIS_FLAG = 1.

    ENDIF.

    IF PNPTIMR9 = 'X'. "CHECK TO SEE CURRENT PERIOD SELECTED* CASES - NO RATE GIVEN, RATE GIVEN* CURRENT PERIOD UPLOADED BUT PAYROLL NOT WRITTEN SO NO RESULT FROM LDB

    SELECT RATE INTO P_RATE FROM ZBPETROL_ALL WHERE BEGDA = PN- BEGDA ANDENDDA = PN-ENDDA.

    ENDSELECT.IF SY-DBCNT = 0.MESSAGE I455(0) WITH 'NO PETROL RATE EXSISTS'.

    ELSE.FLAG = 1.

    ENDIF. "OF SY-DBCNT

    IF P_RATE > 0 AND FLAG = 1. " PETROL RATE EXSISTS.SELECT PERNR SUM( BETRG ) INTO TABLE PA0015_DATAFROM PA0015

  • 7/29/2019 482 ABAP HR Pms1

    6/15

    WHERE BEGDA BETWEEN PN-BEGDA AND PN-ENDDAGROUP BY PERNR.

    SELECT A~PERNR A~TRFST B~VORNA B~NACHNINTO CORRESPONDING FIELDS OF TABLE INT_PETROL3FROM PA0008 AS AINNER JOIN PA0002 AS B ON B~PERNR = A~PERNRWHERE A~TRFST LIKE 'L%'AND A~BET01 > 0.

    SORT INT_PETROL3.DELETE ADJACENT DUPLICATES FROM INT_PETROL3.REFRESH INT_PETROL1.

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportemployee name

    CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTOINT_PETROL2-NAME SEPARATED BY SPACE.

    MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.ENDLOOP.

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportonetable to another table

    READ TABLE PA0015_DATA WITH KEY PERNR = INT_PETROL2-PERNR.IF SY-SUBRC = 0.INT_PETROL-PERNR = INT_PETROL2-PERNR.INT_PETROL-TRFST = INT_PETROL2-TRFST.INT_PETROL-NAME = INT_PETROL2-NAME.INT_PETROL-PALLOWANCE = PA0015_DATA-BETRG.APPEND INT_PETROL TO INT_PETROL1.

    ENDIF.ENDLOOP.DIS_FLAG = 1.

    ENDIF. "P_RATE > 0 AND FLAG = 1.

    IF P_RATE > 0 AND FLAG = 0. "CURRENT PERIOD AND DATA NOT UPLOADEDSELECT A~PERNR A~TRFST B~VORNA B~NACHNINTO CORRESPONDING FIELDS OF TABLE INT_PETROL3FROM PA0008 AS AINNER JOIN PA0002 AS B ON B~PERNR = A~PERNRWHERE A~TRFST LIKE 'L%'AND A~BET01 > 0.

    SORT INT_PETROL3.DELETE ADJACENT DUPLICATES FROM INT_PETROL3.

    REFRESH INT_PETROL1.

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportemployee name

    CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTOINT_PETROL2-NAME SEPARATED BY SPACE.

    MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.ENDLOOP.

    PERFORM GET_VALUE. "TO CONVERT THE FIRST SCREEN PERNR INTO

  • 7/29/2019 482 ABAP HR Pms1

    7/15

    NUMBER FORMATE

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportonetable to another table

    READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.IF SY-SUBRC 0.INT_PETROL-PERNR = INT_PETROL2-PERNR.INT_PETROL-TRFST = INT_PETROL2-TRFST.INT_PETROL-NAME = INT_PETROL2-NAME.APPEND INT_PETROL TO INT_PETROL1.

    ENDIF.ENDLOOP.

    PERFORM CAL_ALLOWANCE.ENDIF. " OF P_RATE > 0DIS_FLAG = 1.

    ENDIF. " OF CURRENT PERIOD CHECK.

    ENDIF. " OF CHECK DISPLAY.

    *----BDCIF P_UPLOAD = 'X'.IF PNPTIMRA = 'X'. "CHECK OTHER PERIOD CHECKEDMESSAGE I455(0) WITH 'Petrol Allowance cannot be uploaded'.LEAVE SCREEN.

    ENDIF.IF P_RATE > 0.

    * IF P_RATE > 0 OR P_RATE = 0.IF PNPTIMR9 = 'X'. "CHECK TO SEE CURRENT PERIOD SELECTEDWA_PET_ALLOWANCE-BEGDA = PN-BEGDA.WA_PET_ALLOWANCE-ENDDA = PN-ENDDA.WA_PET_ALLOWANCE-RATE = P_RATE.WA_PET_ALLOWANCE-CURR = 'INR'.INSERT INTO ZBPETROL_ALL VALUES WA_PET_ALLOWANCE.

    SELECT A~PERNR A~TRFST B~VORNA B~NACHNINTO CORRESPONDING FIELDS OF TABLE INT_PETROL3FROM PA0008 AS AINNER JOIN PA0002 AS B ON B~PERNR = A~PERNRWHERE A~TRFST IN ('L1' , 'L2' , 'L3')AND A~BET01 > 0.

    SORT INT_PETROL3.DELETE ADJACENT DUPLICATES FROM INT_PETROL3.REFRESH INT_PETROL1.

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportemployee name

    CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTOINT_PETROL2-NAME SEPARATED BY SPACE.

    MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.ENDLOOP.

    PERFORM GET_VALUE. "TO CONVERT THE FIRST SCREEN PERNR INTONUMBER FORMATE

  • 7/29/2019 482 ABAP HR Pms1

    8/15

    LOOP AT INT_PETROL3 INTO INT_PETROL2. "loop to transportonetable to another table

    READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.IF SY-SUBRC 0.INT_PETROL-PERNR = INT_PETROL2-PERNR.INT_PETROL-TRFST = INT_PETROL2-TRFST.INT_PETROL-NAME = INT_PETROL2-NAME.APPEND INT_PETROL TO INT_PETROL1.

    ENDIF.ENDLOOP.

    PERFORM CAL_ALLOWANCE.DIS_FLAG = 1.

    SORT INT_PETROL1.LOOP AT INT_PETROL1.MOVE: INT_PETROL1-PERNR TO INT_0015-PERNR,INT_PETROL1-PALLOWANCE TO INT_0015-BETRG.CONCATENATE PN-ENDDA+6(2) PN-ENDDA+4(2) PN-ENDDA+0(4) INTO

    INT_0015-BEGDA SEPARATED BY '.'.APPEND INT_0015.CLEAR INT_0015.

    ENDLOOP.

    LOOP AT INT_0015.PERFORM F_BDCDATA.IF P_FG = 'X'.CALL TRANSACTION 'PA30' USING BDCDATA MODE 'A' UPDATE 'S'.

    ELSE.CALL TRANSACTION 'PA30' USING BDCDATA MODE 'N' UPDATE 'S'.

    ENDIF.

    *-- Handling Error records.IF SY-SUBRC 0.

    *-- Handling Error MessagesPERFORM ERROR_MSG.MOVE-CORRESPONDING INT_0015 TO E_INT_0015.APPEND E_INT_0015.CLEAR E_INT_0015.

    ENDIF.REFRESH BDCDATA.

    ENDLOOP.

    *-- Downloading Error Records.CALL FUNCTION 'GUI_DOWNLOAD'

    EXPORTINGFILENAME = 'C:\Errors.Txt'FILETYPE = 'ASC'

    TABLESDATA_TAB = E_INT_0015.

    *-- Downloading Error Messages.CALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGFILENAME = 'C:\Err_Msg.Txt'

  • 7/29/2019 482 ABAP HR Pms1

    9/15

    FILETYPE = 'ASC'TABLESDATA_TAB = MSG.

    ENDIF. " FOR CURRENT PERIOD* ENDIF.

    ELSE.MESSAGE I455(0) WITH 'Enter Petrol Rate'.LEAVE TO SCREEN 0.

    ENDIF. " FOR PETROL RATEENDIF. " FOR UPLOAD

    IF DIS_FLAG = 1.INT_LAYOUT-SUBTOTALS_TEXT = TEXT-004.INT_LAYOUT-TOTALS_TEXT = TEXT-004.INT_LAYOUT-ZEBRA = 'X'.PERFORM FILL_FIELDCAT.PERFORM GET_EVENTS_ALV.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTINGI_CALLBACK_PROGRAM = WS_REPIDIS_LAYOUT = INT_LAYOUTIT_FIELDCAT = INT_FIELDCAT[]I_DEFAULT = 'X'I_SAVE = 'X'IT_EVENTS = INT_EVENTS

    TABLEST_OUTTAB = INT_PETROL1

    EXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.

    IF SY-SUBRC 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.

    ENDIF.

    *&--------------------------------------------------------------------**& Form GET_VALUE*&--------------------------------------------------------------------** text*---------------------------------------------------------------------*FORM GET_VALUE.

    GET PARAMETER ID: 'NUM' FIELD TEMP_NUM.IF TEMP_NUM ''.LEN1 = STRLEN( TEMP_NUM ).PERFORM GET_PERNR.APPEND TEMP_NUM TO EMPNO.

    LOOP AT EMPNO INTO EMP_NO.

    CALL FUNCTION 'CHECK_AND_CONVERT_NUMERICS'

  • 7/29/2019 482 ABAP HR Pms1

    10/15

    EXPORTING* DFELD = ' '

    DMZEI = ','DTYPE = 'STRING'

    * DYPNO = ' 'EFELD = EMP_NO-PERNR

    * FNAME = ' '* PROGR = ' '* IMP_DECIMALS = '0'

    IMPORTING* ERROR =

    IFELD = EMP_NO1-PERNRMESSG = ERR

    * MSGLN =.

    IF ( ERR-MSGID = '' ).APPEND EMP_NO1 TO EMPNO1.CLEAR EMP_NO1-PERNR.

    ELSE.MESSAGE I455(0) WITH 'Could not convert employee number'.

    LEAVE TO SCREEN 0.ENDIF.

    ENDLOOP.ENDIF.

    ENDFORM. "GET_VALUE

    *&--------------------------------------------------------------------**& Form GET_PERNR*&--------------------------------------------------------------------** text*---------------------------------------------------------------------*FORM GET_PERNR.SPLIT TEMP_NUM AT ',' INTO EMP_NO TEMP_NUM.APPEND EMP_NO TO EMPNO.CLEAR EMP_NO.SEARCH TEMP_NUM FOR ','.IF SY-SUBRC = 0.PERFORM GET_PERNR.

    ENDIF.ENDFORM. "GET_PERNR

    *&---------------------------------------------------------------------*

    *& Form ERROR_MSG*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text*

  • 7/29/2019 482 ABAP HR Pms1

    11/15

    FORM ERROR_MSG.

    IF SY-SUBRC 0.CALL FUNCTION 'FORMAT_MESSAGE'EXPORTINGLANG = SY-LANGU

    IMPORTINGMSG = MSG-MSG1.

    APPEND MSG.CLEAR MSG.

    ENDIF.

    ENDFORM. "ERROR_MSG

    *&--------------------------------------------------------------------**& Form F_BDCDATA*&--------------------------------------------------------------------** text

    *---------------------------------------------------------------------*FORM F_BDCDATA.

    PERFORM BDC_DYNPRO USING 'SAPMP50A' '1000'.PERFORM BDC_FIELD USING 'BDC_OKCODE'

    '=INS'.PERFORM BDC_FIELD USING 'RP50G-PERNR'

    INT_0015-PERNR.PERFORM BDC_FIELD USING 'RP50G-TIMR6'

    'X'.PERFORM BDC_FIELD USING 'BDC_CURSOR'

    'RP50G-CHOIC'.PERFORM BDC_FIELD USING 'RP50G-CHOIC'

    '0015'.PERFORM BDC_DYNPRO USING 'MP001500' '2000'.PERFORM BDC_FIELD USING 'BDC_CURSOR'

    'Q0015-BETRG'.PERFORM BDC_FIELD USING 'BDC_OKCODE'

    '/00'.PERFORM BDC_FIELD USING 'P0015-LGART'

    '0077'. "CHANGE WAGE TYPE HEREALSOPERFORM BDC_FIELD USING 'Q0015-BETRG'

    INT_0015-BETRG.PERFORM BDC_FIELD USING 'P0015-WAERS'

    'INR'.

    PERFORM BDC_FIELD USING 'P0015-BEGDA'INT_0015-BEGDA.

    PERFORM BDC_DYNPRO USING 'MP001500' '2000'.PERFORM BDC_FIELD USING 'BDC_CURSOR'

    'P0015-LGART'.PERFORM BDC_FIELD USING 'BDC_OKCODE'

    '=UPD'.PERFORM BDC_FIELD USING 'P0015-LGART'

    '0077'. "CHANGE WAGE TYPE HEREALSO

  • 7/29/2019 482 ABAP HR Pms1

    12/15

    PERFORM BDC_FIELD USING 'Q0015-BETRG'INT_0015-BETRG.

    PERFORM BDC_FIELD USING 'P0015-WAERS''INR'.

    PERFORM BDC_FIELD USING 'P0015-BEGDA'INT_0015-BEGDA.

    ENDFORM. "F_BDCDATA

    *&---------------------------------------------------------------------**& Form BDC_DYNPRO*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_0732 text* -->P_0733 text*-------------------------------------------------

    ---------------------*FORM BDC_DYNPRO USING VALUE(P_0732) TYPE C

    VALUE(P_0733) TYPE C.CLEAR BDCDATA.BDCDATA-PROGRAM = P_0732.BDCDATA-DYNPRO = P_0733.BDCDATA-DYNBEGIN = 'X'.APPEND BDCDATA.

    ENDFORM. " BDC_DYNPRO

    *&---------------------------------------------------------------------**& Form BDC_FIELD*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_0755 text* -->P_0756 text*----------------------------------------------------------------------*FORM BDC_FIELD USING VALUE(P_0755) TYPE C

    VALUE(P_0756) TYPE C.CLEAR BDCDATA.BDCDATA-FNAM = P_0755.

    BDCDATA-FVAL = P_0756.APPEND BDCDATA.

    ENDFORM. " BDC_FIELD

    *&--------------------------------------------------------------------**& Form CAL_ALLOWANCE*&--------------------------------------------------------------------*

  • 7/29/2019 482 ABAP HR Pms1

    13/15

    * text*---------------------------------------------------------------------*FORM CAL_ALLOWANCE.

    LOOP AT INT_PETROL1 INTO INT_PETROL.IF INT_PETROL-TRFST = 'L1'.INT_PETROL-PALLOWANCE = P_RATE * 100. "CHANGE TO SELECT WHEN

    DISPLAYELSEIF INT_PETROL-TRFST = 'L2'.INT_PETROL-PALLOWANCE = P_RATE * 150.

    ELSEIF INT_PETROL-TRFST = 'L3'.INT_PETROL-PALLOWANCE = P_RATE * 150.

    ELSEIF INT_PETROL-TRFST = 'L4'.* INT_PETROL-PALLOWANCE = P_RATE * 200.

    ELSEIF INT_PETROL-TRFST = 'L5'.* INT_PETROL-PALLOWANCE = P_RATE * 250.

    ENDIF.MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING PALLOWANCE.

    ENDLOOP.

    ENDFORM. "CAL_ALLOWANCE

    *&---------------------------------------------------------------------**& Form FILL_FIELDCAT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text*

  • 7/29/2019 482 ABAP HR Pms1

    14/15

    INT_FIELDCAT-SELTEXT_L = TEXT-007.INT_FIELDCAT-OUTPUTLEN = 5.INT_FIELDCAT-KEY = 'X'.APPEND INT_FIELDCAT.CLEAR INT_FIELDCAT.

    INT_FIELDCAT-COL_POS = 4.INT_FIELDCAT-TABNAME = 'INT_PETROL1'.INT_FIELDCAT-FIELDNAME = 'PALLOWANCE'.INT_FIELDCAT-SELTEXT_L = TEXT-008.INT_FIELDCAT-OUTPUTLEN = 16.INT_FIELDCAT-KEY = 'X'.APPEND INT_FIELDCAT.CLEAR INT_FIELDCAT.

    ENDFORM. " FILL_FIELDCAT

    *&---------------------------------------------------------------------**& Form GET_EVENTS_ALV

    *&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text*

  • 7/29/2019 482 ABAP HR Pms1

    15/15

    *&--------------------------------------------------------------------** text*---------------------------------------------------------------------*FORM TOP.

    *-- ALV Declarations

    DATA: WS_HEADER TYPE SLIS_T_LISTHEADER,WA_HEADER TYPE SLIS_LISTHEADER.

    *-- Title

    WA_HEADER-TYP = 'H'.WA_HEADER-INFO = TEXT-009.APPEND WA_HEADER TO WS_HEADER.CLEAR WA_HEADER.

    WA_HEADER-TYP = 'H'.

    WA_HEADER-INFO = TITLE.APPEND WA_HEADER TO WS_HEADER.CLEAR WA_HEADER.

    WA_HEADER-TYP = 'H'.WA_HEADER-INFO = ' '.APPEND WA_HEADER TO WS_HEADER.CLEAR WA_HEADER.

    WA_HEADER-TYP = 'H'.WA_HEADER-INFO = ' '.APPEND WA_HEADER TO WS_HEADER.CLEAR WA_HEADER.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGIT_LIST_COMMENTARY = WS_HEADERI_LOGO = 'LOGO'.

    ENDFORM. "TOP-OF-PAGE