482 ABAP HR Pms1
-
Upload
vinayistha -
Category
Documents
-
view
228 -
download
0
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