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: 

How to get for same pernr if fundcode is different then i need - URGENT

Former Member
0 Kudos

Hi,

I am retrieving the data based upon payroll and fund code. am using rp_provide_from_last space pnpdisbd pnpdised statement for getting the data. After passing this data to RT table to get amount based upon the wagetypes. Because of rp_provide_from_last am getting only latest record details.How to get for same pernr if fundcode is different then i need to get that relavent data based upon the fundcode.

Edited by: mahendra kumar on Apr 16, 2008 1:35 PM

4 REPLIES 4

Former Member
0 Kudos

Instead of using rp_provide_from_last ..

loop at the structure you have .. say

loop at p0001.

*write logic for fundcode ...

endloop.

0 Kudos

If i loop p0001 what will happen ? i cant understand .

I want data for a pernr based upon different fundcodes.

i am looping p0220 so am getting diff fcodes, but i am getting the data latest one details only( because of this rp_provide_from_last).

Edited by: mahendra kumar on Apr 16, 2008 1:49 PM

0 Kudos

Post your coding ...

0 Kudos

start-of-selection.

GET PERNR.

Loop at p0220 .

if p0220-fcode in funds.

wa_output-FCODE = p0220-fcode.

wa_output-jonid = p0220-jonid.

rp_provide_from_last p0000 space pnpdisbd pnpdised.

if pnp-sw-found = 1.

wa_output-PERNR = p0000-PERNR.

wa_output-BEGDA0 = p0000-BEGDA.

if p0000-massn = '01'.

wa_output-BEGDA0_H = p0000-BEGDA.

endif.

if p0000-massn = '20'.

wa_output-BEGDA0_T = p0000-BEGDA.

wa_output-STAT2_T = p0000-STAT2.

endif.

wa_output-STAT2 = p0000-STAT2.

endif.

rp_provide_from_last p0001 space pnpdisbd pnpdised.

if pnp-sw-found = 1.

wa_output-ABKRS = p0001-ABKRS.

WA_OUTPUT-EMP_CATAGEORY = p0001-PERSG. " FOR SUPER EFT

if p0001[] is not initial.

select abkrs permo datmo from t549a

into corresponding fields of table it_t549a

for all entries in p0001

where abkrs eq p0001-abkrs.

endif.

rp_provide_from_last p0002 space pnpdisbd pnpdised.

if pnp-sw-found = 1.

wa_output-NACHN = p0002-NACHN.

wa_output-VORNA = p0002-VORNA.

wa_output-TITEL = p0002-TITEL.

wa_output-GESCH = p0002-GESCH.

wa_output-GBDAT = p0002-GBDAT.

endif.

rp_provide_from_last p0006 space pnpdisbd pnpdised.

if pnp-sw-found = 1.

wa_output-STRAS = p0006-STRAS.

wa_output-PSTLZ = p0006-PSTLZ.

wa_output-LOCAT = p0006-LOCAT.

wa_output-ORT01 = p0006-ORT01.

endif.

rp_provide_from_last p0008 space pnpdisbd pnpdised.

if pnp-sw-found = 1.

wa_output-DIVGV = p0008-DIVGV.

wa_output-BEGDA8 = p0008-BEGDA.

wa_output-ANSAL = p0008-ANSAL.

endif.

CALL FUNCTION 'CU_READ_RGDIR'

EXPORTING

PERSNR = pernr-pernr

  • BUFFER =

  • NO_AUTHORITY_CHECK = ' '

IMPORTING

MOLGA = molga

TABLES

IN_RGDIR = it_rgdir

EXCEPTIONS

NO_RECORD_FOUND = 1

OTHERS = 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.

CALL FUNCTION 'CD_READ_LAST'

EXPORTING

BEGIN_DATE = pnpdisbd

END_DATE = pnpdised

IMPORTING

OUT_SEQNR = seqnr

TABLES

RGDIR = it_rgdir

EXCEPTIONS

NO_RECORD_FOUND = 1

OTHERS = 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.

CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'

EXPORTING

CLUSTERID = 'RQ'

EMPLOYEENUMBER = pernr-pernr

SEQUENCENUMBER = seqnr

  • READ_ONLY_BUFFER = ' '

  • READ_ONLY_INTERNATIONAL = ' '

  • ARC_GROUP = ' '

  • CHECK_READ_AUTHORITY = 'X'

  • FILTER_CUMULATIONS = 'X'

  • CLIENT =

  • IMPORTING

  • VERSION_NUMBER_PAYVN =

  • VERSION_NUMBER_PCL2 =

CHANGING

PAYROLL_RESULT = wa_result

EXCEPTIONS

ILLEGAL_ISOCODE_OR_CLUSTERID = 1

ERROR_GENERATING_IMPORT = 2

IMPORT_MISMATCH_ERROR = 3

SUBPOOL_DIR_FULL = 4

NO_READ_AUTHORITY = 5

NO_RECORD_FOUND = 6

VERSIONS_DO_NOT_MATCH = 7

ERROR_READING_ARCHIVE = 8

ERROR_READING_RELID = 9

OTHERS = 10

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

loop at wa_result-inter-rt into wa_rt.

if wa_rt-lgart eq '7000'.

  • wa_RT_RESULTS-ca_7000 = wa_rt-BETRG.

wa_output-ca_7000 = wa_rt-BETRG.

endif.

if wa_rt-lgart eq '7006'.

ca1 = wa_rt-BETRG.

endif.

if wa_rt-lgart eq '7007'.

ca2 = wa_rt-BETRG.

endif.

endlop.

Edited by: mahendra kumar on Apr 16, 2008 2:15 PM