Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

abap hr payroll

Former Member
0 Kudos

Can any one help me out in fetching

Quarterly transport allowance claimed by all employeeu2019s for particular sub area.

i.e what are the clusters,

infotypes and wage types we use for this.

is it necessary to take both rt, crt for this report

3 REPLIES 3

Former Member
0 Kudos

In transaction code PC_PAYRESULT

under what section do you have transport allowance?

I think you might need to fetch Payroll results throught event

GET PAYROLL

and calculate the quaterly transport allowance from the payroll results

Former Member
0 Kudos

data: rgdir like pc261 occurs 0 with header line.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

persnr = it_loans-pernr <-- pass pernr here

TABLES

in_rgdir = it_rgdir. --> get rgdir

LOOP AT it_rgdir WHERE srtza = 'A'

AND void IS INITIAL

AND reversal IS INITIAL

AND fpper = v_fpper.

v_seqnr = it_rgdir-seqnr. <-- get the seqnr

ENDLOOP.

rx-key-pernr = it_loans-pernr.

rx-key-seqno = v_seqnr.

rp-imp-c2-RU. <-- call macro to get payroll results ..

loop at rt where lgart = <transport allowance wage type >.

v_betrg = v_betrg + rt-betrg.

endloop.

get amount in v_betrg .. for the wage types ...

Former Member
0 Kudos

hi check this report....

REPORT ZFIO_PAYROLL_BUDGET_EXTRACT LINE-SIZE 132.

************************************************************************

  • PROGRAM TITLE: Interface return percentages from SAP to legacy

  • LOGICAL DATABASE USED: NONE

  • FILES: /tmp/RSD2XX (SAP WIDGET JVs)

  • CHANGES:

  • PROGRAMMER DATE TASK DESCRIPTION

  • Carolyn B. 01/06/1999 Load Payroll planning data

  • into FDSB

*

************************************************************************

TABLES: COEJ,

T009B.

PARAMETERS:

PRMYR LIKE COEJ-GJAHR,

PRMPD LIKE COEJ-PERBL DEFAULT '001' OBLIGATORY.

DATA: BEGIN OF COEJ_TBL OCCURS 0,

COSTCTR LIKE COEJ-OBJNR,

FISCAL-YEAR LIKE COEJ-GJAHR,

ACCOUNT LIKE COEJ-KSTAR,

WTG001 LIKE COEJ-WTG001,

WTG002 LIKE COEJ-WTG002,

WTG003 LIKE COEJ-WTG003,

WTG004 LIKE COEJ-WTG004,

WTG005 LIKE COEJ-WTG005,

WTG006 LIKE COEJ-WTG006,

WTG007 LIKE COEJ-WTG007,

WTG008 LIKE COEJ-WTG008,

WTG009 LIKE COEJ-WTG009,

WTG010 LIKE COEJ-WTG010,

WTG011 LIKE COEJ-WTG011,

WTG012 LIKE COEJ-WTG012,

SUB-ACCOUNT(4) TYPE C,

END OF COEJ_TBL.

DATA: BEGIN OF REC OCCURS 0,

COSTCTR(4) TYPE C,

DELIM1(1) TYPE C,

SUB-ACCOUNT(4) TYPE C,

DELIM2(1) TYPE C,

PAYROLL-AMT(14) TYPE C,

FILLER3(1) TYPE C,

FILLER4(1) TYPE C VALUE 'B',

END OF REC.

DATA: FILE_NAME(128) VALUE

'/usr/sap/trans/tmp/sap_datafeed/pay_b'.

DATA: BEGIN OF WS-DATE,

YEAR(4) TYPE C,

MONTH(2) TYPE C,

DAY(2) TYPE C,

END OF WS-DATE.

DATA: BEGIN OF WS-COEJ,

COSTCTR LIKE COEJ-OBJNR,

FISCAL-YEAR LIKE COEJ-GJAHR,

ACCOUNT LIKE COEJ-KSTAR,

WTG001 LIKE COEJ-WTG001,

WTG002 LIKE COEJ-WTG002,

WTG003 LIKE COEJ-WTG003,

WTG004 LIKE COEJ-WTG004,

WTG005 LIKE COEJ-WTG005,

WTG006 LIKE COEJ-WTG006,

WTG007 LIKE COEJ-WTG007,

WTG008 LIKE COEJ-WTG008,

WTG009 LIKE COEJ-WTG009,

WTG010 LIKE COEJ-WTG010,

WTG011 LIKE COEJ-WTG011,

WTG012 LIKE COEJ-WTG012,

SUB-ACCOUNT(4) TYPE C,

END OF WS-COEJ.

DATA: WS-FISCAL-YEAR(4) TYPE C.

DATA: WS-PERIOD(3) TYPE C.

DATA: WS-TYLY(2) TYPE C.

DATA: WS-BEGIN-MONTH(2) TYPE C.

DATA: WS-END-DAY(2) TYPE C.

DATA: WS-COUNT TYPE I,

PREV-COSTCTR(5) TYPE C,

WS-PAYROLL-AMT LIKE COEJ-WTG001.

INITIALIZATION.

WS-DATE = SY-DATUM.

SELECT SINGLE BDATJ BUMON BUTAG POPER RELJR FROM T009B

INTO (WS-FISCAL-YEAR,

WS-BEGIN-MONTH,

WS-END-DAY,

WS-PERIOD,

WS-TYLY)

WHERE PERIV = 'X4' AND

BDATJ = WS-DATE-YEAR AND

BUMON = WS-DATE-MONTH AND

BUTAG > 0.

IF WS-TYLY = '0'.

ELSE.

WS-FISCAL-YEAR = WS-FISCAL-YEAR - 1.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

MOVE WS-PERIOD TO PRMPD.

      • coej contains current balances for fiscal year / periods

START-OF-SELECTION.

SELECT: OBJNR GJAHR KSTAR WTG001 WTG002 WTG003 WTG004

WTG005 WTG006

WTG007 WTG008 WTG009 WTG010 WTG011 WTG012

FROM COEJ

INTO (WS-COEJ-COSTCTR,

WS-COEJ-FISCAL-YEAR,

WS-COEJ-ACCOUNT,

WS-COEJ-WTG001,

WS-COEJ-WTG002,

WS-COEJ-WTG003,

WS-COEJ-WTG004,

WS-COEJ-WTG005,

WS-COEJ-WTG006,

WS-COEJ-WTG007,

WS-COEJ-WTG008,

WS-COEJ-WTG009,

WS-COEJ-WTG010,

WS-COEJ-WTG011,

WS-COEJ-WTG012)

  • into table coej_tbl

WHERE GJAHR = PRMYR

  • and perbl = 016

AND VERSN = '000'

AND KSTAR = '0000050000'.

  • write: /'objnr ', coej-objnr+6(5).

WS-COEJ-COSTCTR = WS-COEJ-COSTCTR+6(5).

IF WS-COEJ-COSTCTR+10(1) = 'B'.

WS-COEJ-SUB-ACCOUNT = '0100'.

ENDIF.

IF WS-COEJ-COSTCTR+10(1) = 'C'.

WS-COEJ-SUB-ACCOUNT = '0400'.

ENDIF.

IF WS-COEJ-COSTCTR+10(1) = 'F'.

WS-COEJ-SUB-ACCOUNT = '0300'.

ENDIF.

APPEND WS-COEJ TO COEJ_TBL.

CLEAR WS-COEJ.

ENDSELECT.

SORT: COEJ_TBL BY COSTCTR SUB-ACCOUNT.

IF SY-SUBRC NE 0.

WRITE: /'invalid write of coej_tbl ', SY-SUBRC.

ENDIF.

END-OF-SELECTION.

OPEN DATASET FILE_NAME FOR OUTPUT IN TEXT MODE.

IF SY-SUBRC NE 0.

WRITE: / 'Invalid output open of payroll budget file' ,SY-SUBRC.

EXIT.

ENDIF.

LOOP AT COEJ_TBL.

IF WS-COUNT = 0.

PREV-COSTCTR = COEJ_TBL-COSTCTR.

WS-COUNT = WS-COUNT + 1.

ENDIF.

IF PREV-COSTCTR(4) NE COEJ_TBL-COSTCTR(4).

PERFORM COSTCTR-CHANGE.

ENDIF.

PERFORM ADD-PAYROLL-AMTS.

ENDLOOP.

CLOSE DATASET FILE_NAME.

OPEN DATASET FILE_NAME FOR INPUT IN TEXT MODE.

IF SY-SUBRC NE 0.

WRITE: / 'Invalid open of sap payroll budget file ', SY-SUBRC.

EXIT.

ENDIF.

CLEAR WS-COUNT.

DO.

READ DATASET FILE_NAME INTO REC.

IF SY-SUBRC = 0.

IF WS-COUNT < 2000.

WRITE: / REC.

WS-COUNT = WS-COUNT + 1.

ENDIF.

ELSE.

EXIT.

ENDIF.

ENDDO.

WRITE: /.

WRITE: 'total ', WS-COUNT.

CLOSE DATASET FILE_NAME.

FORM ADD-PAYROLL-AMTS.

IF PRMPD = 1.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG001.

ENDIF.

IF PRMPD = 2.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG002.

ENDIF.

IF PRMPD = 3.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG003.

ENDIF.

IF PRMPD = 4.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG004.

ENDIF.

IF PRMPD = 5.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG005.

ENDIF.

IF PRMPD = 6.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG006.

ENDIF.

IF PRMPD = 7.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG007.

ENDIF.

IF PRMPD = 8.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG008.

ENDIF.

IF PRMPD = 9.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG009.

ENDIF.

IF PRMPD = 10.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG010.

ENDIF.

IF PRMPD = 11.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG011.

ENDIF.

IF PRMPD = 12.

COMPUTE WS-PAYROLL-AMT = WS-PAYROLL-AMT + COEJ_TBL-WTG012.

ENDIF.

ENDFORM.

----


  • FORM COSTCTR-CHANGE *

----


  • ........ *

----


FORM COSTCTR-CHANGE.

REC-COSTCTR = PREV-COSTCTR(+4).

REC-DELIM1 = '|'.

REC-DELIM2 = '|'.

TRANSFER REC TO FILE_NAME.

IF SY-SUBRC NE 0.

WRITE: 'Invalid write of payroll budget file'.

EXIT.

ENDIF.

CLEAR: REC, WS-PAYROLL-AMT.

PREV-COSTCTR(4) = COEJ_TBL-COSTCTR(4).

ENDFORM.