‎2009 May 20 10:58 AM
hii,
the output of my report showing correct data for one employee.
but, on selecting 2 or more employees it is showing data corresponding to last employee for all of them.
where m i getting wrong.
thanks
‎2009 May 20 11:00 AM
‎2009 May 20 11:09 AM
Hi,
Check your code wheather it is overwriting the previous data.
Its better if you give the code.
Regards,
Anirban
‎2009 May 20 11:11 AM
check where you have written the append statement in the loop. if u are using a loop within a loop, the append should be in the 2nd loop and not in the first. but posting ur code here would be of much help.
Regards,
SG
‎2009 May 20 11:14 AM
The possible error may be you would not have cleared the structure and so the last value in the structure will be taken into consideration.
‎2009 May 20 11:18 AM
Used function modules for payroll result
LOOP AT i_pa0001 INTO fs_pa0001.
*& Reading of the Payresult for all the Periods
REFRESH:
it_rgdir,
i_rgdir.
CLEAR:fs_rgdir.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = fs_pa0001-pernr
TABLES
in_rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'PYXX_GET_RELID_FROM_PERNR'
EXPORTING
employee = fs_pa0001-pernr
IMPORTING
relid = lv_relid
molga = lv_molga
EXCEPTIONS
error_reading_infotype_0001 = 1
error_reading_molga = 2
error_reading_relid = 3
OTHERS = 4.
IF sy-subrc NE 0.
ENDIF.
SELECT SINGLE typename
FROM t52relid
INTO lv_type
WHERE relid EQ lv_relid
AND tabname = 'PCL2'.
IF sy-subrc NE 0.
lv_relid = 'IN'.
lv_type = 'PAYIN_RESULT'.
ENDIF.
lv_typename = lv_type.
CREATE DATA ref_payresult TYPE (lv_typename).
ASSIGN ref_payresult->* TO <payresult>.
SRTZA--Status Of records.
SRTZA = 'A' --Current Result.
DELETE it_rgdir WHERE srtza NE 'A'.
PAYTY --> Payment Type ( Regular or Bonus)
PAYTY = SPACE --'Regular Payroll'.
PAYTY = 'B' --> 'Bonus'.
LOOP AT it_rgdir INTO fs_rgdir WHERE payty = ''
AND fpbeg GE v_begda
AND fpend LE v_endda.
APPEND fs_rgdir TO i_rgdir.
ENDLOOP. " LOOP AT it_rgdir
SORT i_rgdir BY seqnr DESCENDING.
CLEAR: lv_unpaid,lv_paid.
LOOP AT i_rgdir INTO fs_rgdir.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = lv_relid
employeenumber = fs_pa0001-pernr
sequencenumber = fs_rgdir-seqnr
CHANGING
payroll_result = <payresult>
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 EQ 0.
ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE <payresult> TO <li_rt>.
LOOP AT <li_rt> INTO lfs_rt .
if lfs_rt-lgart = '/460'.
fs_pa0001-betrg = lfs_rt-betrg.
endif.
if lfs_rt-lgart = '4101'.
fs_pa0001-betrg1 = lfs_rt-betrg.
endif.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT TABFINAL INTO W_FINAL.
WRITE:/6(8) W_FINAL-PERNR .
WRITE:/100(10) fs_pa0001-betrg .
ENDLOOP.
ENDFORM.
Edited by: AKSHAYA A on May 20, 2009 12:18 PM
Edited by: AKSHAYA A on May 20, 2009 12:20 PM
Edited by: AKSHAYA A on May 20, 2009 12:20 PM
Edited by: AKSHAYA A on May 20, 2009 12:21 PM
Edited by: AKSHAYA A on May 20, 2009 12:25 PM
‎2009 May 20 11:27 AM
HI,
try clearing lv_relid before calling PYXX_GET_RELID_FROM_PERNR.
‎2009 May 20 11:53 AM
Hi,
ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE TO .
"here refresh lfs_rt[] and clear lfs_rt.
LOOP AT lfs_rt .
if lfs_rt-lgart = '/460'.
..
‎2009 May 20 11:23 AM
hi ,
i suggest .
first check your internal table contain all the data,in debugg mode....
enter the multiple values and check whether your internal table is filtering the required values.
Clear all the workarea you are using inside the loop after appending or displaying.
clear the internal table before fetching datas.
regards,
Safel
‎2009 May 20 11:30 AM
‎2009 May 20 11:36 AM
you are not appending the records in to internal table that's why you are getting last record in the out put.
chek the inter nal table or select statement. it will work .
‎2009 May 20 11:37 AM
‎2009 May 20 11:38 AM
hii nikhil,
thanks for your advice but it is not solved yet.
Edited by: AKSHAYA A on May 20, 2009 12:38 PM
‎2009 May 20 12:09 PM
LOOP AT TABFINAL INTO W_FINAL.
WRITE:/6(8) W_FINAL-PERNR .
WRITE:/100(10) fs_pa0001-betrg .
ENDLOOP.
instead of this
write
LOOP AT TABFINAL INTO W_FINAL.
append W_FINAL TO IT_FINAL.
ENDLOOP.
AND THEN
WRITE IT_FINAL-PERNR .
WRITE IT_FINAL-BETRG.
‎2009 May 20 12:25 PM
‎2009 May 20 12:32 PM
‎2009 May 20 12:44 PM
TYPES: BEGIN OF ty_pa0001,
pernr TYPE pa0001-pernr,
begda TYPE pa0001-begda,
orgeh TYPE pa0001-orgeh,
ename TYPE pa0001-ename,
betrg TYPE netwr,
betrg1 TYPE netwr,
END OF ty_pa0001.
TYPES: BEGIN OF ty_output,
sno TYPE i,
orgeh TYPE pa0001-orgeh,
orgtx TYPE t527x-orgtx,
pernr TYPE pa0001-pernr,
ename TYPE pa0001-ename,
lgart TYPE pa0008-lga01,
betrg TYPE netwr,
betrg1 TYPE netwr,
END OF ty_output.
***********************************************************************
* Internal Tables Declaration *
***********************************************************************
DATA i_pa0001 TYPE STANDARD TABLE OF ty_pa0001 with header line.
DATA: it_rgdir TYPE STANDARD TABLE OF pc261.
DATA: i_rgdir TYPE STANDARD TABLE OF pc261.
DATA i_output TYPE STANDARD TABLE OF ty_output with header line.
*& Header structure declaration
DATA fs_pa0001 TYPE ty_pa0001.
DATA: fs_rgdir TYPE pc261.
***********************************************************************
* Variable Declaration *
***********************************************************************
DATA:
v_begda TYPE begda,
v_endda TYPE endda,
v_atext TYPE t549t-atext,
v_error TYPE c.
DATA: v_mname(15).
DATA: v_mname2(20).
***********************************************************************
* Constants Declaration *
***********************************************************************
CONSTANTS:
c_x TYPE c VALUE 'X'.
***********************************************************************
* SELECTION SCREEN *
***********************************************************************
**********************************************************************
***********************************************************************
* START-OF-SELECTION EVENT *
***********************************************************************
START-OF-SELECTION.
* Getting the starting and ending date of the period.
PERFORM get_period.
*& Select the Employees.
PERFORM get_pernrs.
END-OF-SELECTION.
*&---------------------------------------------------------------------
*& Form get_pernrs
*&---------------------------------------------------------------------
* This subroutine is used to get the amount to pay.
*----------------------------------------------------------------------
* There are no interface parameters are there to pass
*----------------------------------------------------------------------
FORM get_period .
SELECT SINGLE begda
endda
INTO (v_begda,
v_endda)
FROM t549q
WHERE permo = '01'
AND pabrj = yr
AND pabrp = mon.
ENDFORM. " Get_period
FORM get_pernrs .
FIELD-SYMBOLS:
<payresult> TYPE ANY,
<lv_payresult> TYPE h99_clst_s_payresult,
<lv_versc> TYPE pc202,
<li_rt> TYPE hrpay99_rt,
<li_ddntk> TYPE hrpay99_ddntk.
DATA: lfs_rt TYPE pc207.
DATA: lfs_ddntk TYPE pc23e.
DATA: lv_relid TYPE t500l-relid.
DATA: lv_type TYPE t52relid-typename.
DATA: lv_typename TYPE hrpclx_type.
DATA: ref_payresult TYPE REF TO data.
DATA: lv_molga TYPE molga.
DATA: lv_type_1 TYPE tadir-obj_name.
DATA: lv_tadir TYPE tadir-obj_name.
DATA: lv_unpaid TYPE ktsol.
DATA: lv_paid TYPE ktsol.
*& Reading all the Personnel Numbers
SELECT pernr
begda
orgeh
ename
FROM pa0001
INTO TABLE i_pa0001
WHERE endda GE v_begda
AND begda LE v_endda
and pernr in per.
* AND abkrs EQ p_abkrs.
SORT i_pa0001 BY pernr begda DESCENDING.
DELETE ADJACENT DUPLICATES FROM i_pa0001 COMPARING pernr.
SORT i_pa0001 BY orgeh pernr.
LOOP AT i_pa0001 INTO fs_pa0001.
*& Reading of the Payresult for all the Periods
REFRESH:
it_rgdir,
i_rgdir.
CLEAR:fs_rgdir.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = fs_pa0001-pernr
TABLES
in_rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'PYXX_GET_RELID_FROM_PERNR'
EXPORTING
employee = fs_pa0001-pernr
IMPORTING
relid = lv_relid
molga = lv_molga
EXCEPTIONS
error_reading_infotype_0001 = 1
error_reading_molga = 2
error_reading_relid = 3
OTHERS = 4.
IF sy-subrc NE 0.
ENDIF.
SELECT SINGLE typename
FROM t52relid
INTO lv_type
WHERE relid EQ lv_relid
AND tabname = 'PCL2'.
IF sy-subrc NE 0.
lv_relid = 'IN'.
lv_type = 'PAYIN_RESULT'.
ENDIF.
lv_typename = lv_type.
CREATE DATA ref_payresult TYPE (lv_typename).
ASSIGN ref_payresult->* TO <payresult>.
* SRTZA--Status Of records.
* SRTZA = 'A' --Current Result.
DELETE it_rgdir WHERE srtza NE 'A'.
* PAYTY --> Payment Type ( Regular or Bonus)
* PAYTY = SPACE --'Regular Payroll'.
* PAYTY = 'B' --> 'Bonus'.
LOOP AT it_rgdir INTO fs_rgdir WHERE payty = ''
AND fpbeg GE v_begda
AND fpend LE v_endda.
APPEND fs_rgdir TO i_rgdir.
ENDLOOP. " LOOP AT it_rgdir
SORT i_rgdir BY seqnr DESCENDING.
CLEAR: lv_unpaid,lv_paid.
LOOP AT i_rgdir INTO fs_rgdir.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = lv_relid
employeenumber = fs_pa0001-pernr
sequencenumber = fs_rgdir-seqnr
CHANGING
payroll_result = <payresult>
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 EQ 0.
ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE <payresult> TO <li_rt>.
clear fs_pa0001.
LOOP AT <li_rt> INTO lfs_rt .
* refresh lfs_rt[].
* clear lfs_rt.
if lfs_rt-lgart = '/460'.
fs_pa0001-betrg = lfs_rt-betrg.
endif.
if lfs_rt-lgart = '4101'.
fs_pa0001-betrg1 = lfs_rt-betrg.
endif.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
* on change of fs_pa0001-pernr.
* clear : fs_pa0001-betrg , fs_pa0001-betrg1.
* endon.
* IF sy-subrc EQ 0.
* ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE <payresult> TO <li_rt>.
* write /: fs_pa0001-pernr.
* LOOP AT <li_rt> INTO lfs_rt.
** write:/ lfs_rt-lgart,30 lfs_rt-betrg.
* ENDLOOP.
* ENDIF.
* ENDLOOP.
* ENDIF.
* ENDLOOP.
*ENDFORM. "get_pernrs
*loop at i_rgdir into fs_rgdir.
* wapay-pernr = fs_pa0001-pernr.
* wapay-lgart = lfs_rt-lgart.
* wapay-betrg = lfs_rt-betrg.
* append wapay to tabpay.
* endloop.
*&---------------------------------------------------------------------
*& Form get_period
*&---------------------------------------------------------------------
* This subroutine is used to calculate the period range
*----------------------------------------------------------------------
* There are no interface parameters are there to pass
*----------------------------------------------------------------------
format color = 4.
WRITE:/.
WRITE:/(28)'Salary Slip Of The Month Of:',W_FINAL-MONAM.
WRITE:/1(15)'DEPT:',W_FINAL-ORGTX.
ULINE.
* endif.
WRITE:/1(5)'S.No',6(6)'Code',20(25)'Name',40(30)'Days OB EL OB CL OB MD'.
WRITE:/40(30)'Worked EL TKN CL TKN MD TKN', 75(10)'L-W/O',85(10)'Net Days',110(10) 'NET SALARY',125(15) 'SIGNATURE'.
ULINE.
LOOP AT TABFINAL INTO W_FINAL.
* format color = 4.
WRITE:/6(8) W_FINAL-PERNR ,20(25) W_FINAL-ENAME, 40(2) W_FINAL-DAYWORK,
47(4) W_FINAL-OPNEL,55(4) W_FINAL-OPNCL,63(4) W_FINAL-OPNSL.
WRITE:/47(4) W_FINAL-sel,55(4) W_FINAL-scl,65(2) W_FINAL-sSL,75(3) W_FINAL-sLWP,83(10) W_FINAL-net1.
uline.
format color = 2 inverse.
WRITE:/6(15)'Father/Husband Name',21(1)':',W_FINAL-FAVOR,W_FINAL-FANAM.
WRITE:/6(15)'Date Of Joining',21(1)':', W_FINAL-BEGDA,53(10)'PF no.',63(20) W_FINAL-EEPFN.
WRITE:/6(15)'DESIGNATION',21(1)':', W_FINAL-STLTX,53(10)'ESI no.',63(20) W_FINAL-ESINO.
uline.
* WRITE:/20(20)'STIPEND', 40(10) W_FINAL-ASTP,53(20)'STIPEND DUE',73(10) W_FINAL-STP_d,85(20)'WELFARE FUND',100(10) W_FINAL-welfare.
WRITE:/20(20)'BASIC',40(10) W_FINAL-ABAS, 53(20)'BASIC DUE',73(10) W_FINAL-bas_d,85(20)'WELFARE FUND',100(10) W_FINAL-welfare.
WRITE:/20(20)'HRA', 40(10) W_FINAL-AHR, 53(20)'HRA DUE',73(10) W_FINAL-hr_d,85(20)'INCOME',100(10) fs_pa0001-betrg .
WRITE:/20(20)'CONVEYANCE', 40(10) W_FINAL-ACONY,53(20)'CONVEYANCE DUE',73(10) W_FINAL-CONY_d,85(20)'EMPLOYEE PF',100(10) W_FINAL-PF.
WRITE:/20(20)'UNIFORM ALWN', 40(10) W_FINAL-AUNIF,53(20)'UNIFORM DUE',73(10) W_FINAL-UNIF_d,85(20)'EMPLOYEE ESI',100(10) W_FINAL-ESI.
WRITE:/20(20)'SPECIAL ALW',40(10) W_FINAL-ASPEC,53(20)'SPECIAL ALW',73(10) W_FINAL-SPEC_d,85(20)'ADVANCES',100(10) fs_pa0001-betrg1 .
WRITE:/20(20)'ALW',40(10) W_FINAL-AALWN,53(20)'ALW',73(10) W_FINAL-alwn_d.
WRITE:/20(20)'MEDICAL ALW',40(10) W_FINAL-AMED,53(20)'MEDICAL ALW',73(10) W_FINAL-med_d,100(20) W_FINAL-NETSAL.
WRITE:/20(20)'TRANSPORT ALW',40(10) W_FINAL-ATRNP,53(20)'TRANSPORT ALW',73(10) W_FINAL-trnp_d.
WRITE:/20(20)'HELPER ALW',40(10) W_FINAL-AHEP,53(20)'HELPER ALW',73(10) W_FINAL-hep_d.
WRITE:/20(20)'CHILD EDU ALW',40(10) W_FINAL-ACHD,53(20)'CHILD EDU ALW',73(10) W_FINAL-chd_d.
WRITE:/20(20)'CITY COMPENSATORY',40(10) W_FINAL-ACTY,53(20)'CITY COMPENSATORY',73(10) W_FINAL-cty_d.
WRITE:/20(20)'CHAMBA ALWN', 40(10) W_FINAL-ACHMBA,53(20)'CHAMBA ALWN DUE',73(10) W_FINAL-CHMBA_d.
WRITE:/20(20)'FOOD ALWN', 40(10) W_FINAL-AFOD,53(20)'FOOD ALWN DUE',73(10) W_FINAL-FOD_d.
format color = 5 inverse off.
WRITE:/20(20)'GROSS SALARY',40(10) W_FINAL-GRS,53(20)'SALARY DUE',73(10) W_FINAL-SALARYDUE.
WRITE:/.
WRITE:/.
ENDLOOP.
ENDFORM.Edited by: AKSHAYA A on May 20, 2009 1:46 PM
Edited by: AKSHAYA A on May 20, 2009 1:48 PM
‎2009 May 20 12:54 PM
Hi,
Just before assign,refresh table and before loop clear work area.
IF sy-subrc EQ 0.
refresh li_rt[].
ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE <payresult> TO <li_rt>.
clear lfs_rt.
LOOP AT <li_rt> INTO lfs_rt .
‎2009 May 20 12:34 PM
Dear Akshaya,
Its simple just clear the work area after the data of the first employee is displayed. i.e. clear work area after the end of first loop pass.
‎2009 May 20 12:42 PM
***********************************************************************
* Types Declaration *
***********************************************************************
TYPES: BEGIN OF ty_pa0001,
pernr TYPE pa0001-pernr,
begda TYPE pa0001-begda,
orgeh TYPE pa0001-orgeh,
ename TYPE pa0001-ename,
betrg TYPE netwr,
betrg1 TYPE netwr,
END OF ty_pa0001.
TYPES: BEGIN OF ty_output,
sno TYPE i,
orgeh TYPE pa0001-orgeh,
orgtx TYPE t527x-orgtx,
pernr TYPE pa0001-pernr,
ename TYPE pa0001-ename,
lgart TYPE pa0008-lga01,
betrg TYPE netwr,
betrg1 TYPE netwr,
END OF ty_output.
***********************************************************************
* Internal Tables Declaration *
***********************************************************************
DATA i_pa0001 TYPE STANDARD TABLE OF ty_pa0001 with header line.
DATA: it_rgdir TYPE STANDARD TABLE OF pc261.
DATA: i_rgdir TYPE STANDARD TABLE OF pc261.
DATA i_output TYPE STANDARD TABLE OF ty_output with header line.
*& Header structure declaration
DATA fs_pa0001 TYPE ty_pa0001.
DATA: fs_rgdir TYPE pc261.
***********************************************************************
* Variable Declaration *
***********************************************************************
DATA:
v_begda TYPE begda,
v_endda TYPE endda,
v_atext TYPE t549t-atext,
v_error TYPE c.
DATA: v_mname(15).
DATA: v_mname2(20).
***********************************************************************
* Constants Declaration *
***********************************************************************
CONSTANTS:
c_x TYPE c VALUE 'X'.
***********************************************************************
* SELECTION SCREEN *
***********************************************************************
**********************************************************************
***********************************************************************
* START-OF-SELECTION EVENT *
***********************************************************************
START-OF-SELECTION.
* Getting the starting and ending date of the period.
PERFORM get_period.
*& Select the Employees.
PERFORM get_pernrs.
END-OF-SELECTION.
*&---------------------------------------------------------------------
*& Form get_pernrs
*&---------------------------------------------------------------------
* This subroutine is used to get the amount to pay.
*----------------------------------------------------------------------
* There are no interface parameters are there to pass
*----------------------------------------------------------------------
FORM get_period .
SELECT SINGLE begda
endda
INTO (v_begda,
v_endda)
FROM t549q
WHERE permo = '01'
AND pabrj = yr
AND pabrp = mon.
ENDFORM. " Get_period
FORM get_pernrs .
FIELD-SYMBOLS:
<payresult> TYPE ANY,
<lv_payresult> TYPE h99_clst_s_payresult,
<lv_versc> TYPE pc202,
<li_rt> TYPE hrpay99_rt,
<li_ddntk> TYPE hrpay99_ddntk.
DATA: lfs_rt TYPE pc207.
DATA: lfs_ddntk TYPE pc23e.
DATA: lv_relid TYPE t500l-relid.
DATA: lv_type TYPE t52relid-typename.
DATA: lv_typename TYPE hrpclx_type.
DATA: ref_payresult TYPE REF TO data.
DATA: lv_molga TYPE molga.
DATA: lv_type_1 TYPE tadir-obj_name.
DATA: lv_tadir TYPE tadir-obj_name.
DATA: lv_unpaid TYPE ktsol.
DATA: lv_paid TYPE ktsol.
*& Reading all the Personnel Numbers
SELECT pernr
begda
orgeh
ename
FROM pa0001
INTO TABLE i_pa0001
WHERE endda GE v_begda
AND begda LE v_endda
and pernr in per.
* AND abkrs EQ p_abkrs.
SORT i_pa0001 BY pernr begda DESCENDING.
DELETE ADJACENT DUPLICATES FROM i_pa0001 COMPARING pernr.
SORT i_pa0001 BY orgeh pernr.
LOOP AT i_pa0001 INTO fs_pa0001.
*& Reading of the Payresult for all the Periods
REFRESH:
it_rgdir,
i_rgdir.
CLEAR:fs_rgdir.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = fs_pa0001-pernr
TABLES
in_rgdir = it_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'PYXX_GET_RELID_FROM_PERNR'
EXPORTING
employee = fs_pa0001-pernr
IMPORTING
relid = lv_relid
molga = lv_molga
EXCEPTIONS
error_reading_infotype_0001 = 1
error_reading_molga = 2
error_reading_relid = 3
OTHERS = 4.
IF sy-subrc NE 0.
ENDIF.
SELECT SINGLE typename
FROM t52relid
INTO lv_type
WHERE relid EQ lv_relid
AND tabname = 'PCL2'.
IF sy-subrc NE 0.
lv_relid = 'IN'.
lv_type = 'PAYIN_RESULT'.
ENDIF.
lv_typename = lv_type.
CREATE DATA ref_payresult TYPE (lv_typename).
ASSIGN ref_payresult->* TO <payresult>.
* SRTZA--Status Of records.
* SRTZA = 'A' --Current Result.
DELETE it_rgdir WHERE srtza NE 'A'.
* PAYTY --> Payment Type ( Regular or Bonus)
* PAYTY = SPACE --'Regular Payroll'.
* PAYTY = 'B' --> 'Bonus'.
LOOP AT it_rgdir INTO fs_rgdir WHERE payty = ''
AND fpbeg GE v_begda
AND fpend LE v_endda.
APPEND fs_rgdir TO i_rgdir.
ENDLOOP. " LOOP AT it_rgdir
SORT i_rgdir BY seqnr DESCENDING.
CLEAR: lv_unpaid,lv_paid.
LOOP AT i_rgdir INTO fs_rgdir.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = lv_relid
employeenumber = fs_pa0001-pernr
sequencenumber = fs_rgdir-seqnr
CHANGING
payroll_result = <payresult>
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 EQ 0.
ASSIGN COMPONENT 'INTER-RT' OF STRUCTURE <payresult> TO <li_rt>.
clear fs_pa0001.
LOOP AT <li_rt> INTO lfs_rt .
* refresh lfs_rt[].
* clear lfs_rt.
if lfs_rt-lgart = '/460'.
fs_pa0001-betrg = lfs_rt-betrg.
endif.
if lfs_rt-lgart = '4101'.
fs_pa0001-betrg1 = lfs_rt-betrg.
endif.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT TABFINAL INTO W_FINAL.
WRITE:/6(8) W_FINAL-PERNR ,20(25) W_FINAL-ENAME,
ENDLOOP.
ENDFORM.
‎2009 May 20 12:45 PM
hi,
had u tried my previous solution.
do this
LOOP AT TABFINAL INTO W_FINAL.
WRITE:/6(8) W_FINAL-PERNR ,20(25) W_FINAL-ENAME,
clear w_final .
ENDLOOP.
‎2009 May 20 12:51 PM
thanks monica,
cleared work area , i think there is some other problem.
and
not able to write code in correct format even.
‎2009 May 20 12:54 PM
IT IS BCAUSE UR CODE EXCEEDING 15000 CHARACTERS... OTHERWISE ITS CORRECT
‎2009 May 20 12:56 PM
‎2009 May 20 12:56 PM
Hi,
LOOP AT <li_rt> INTO lfs_rt .
* refresh lfs_rt[].
* clear lfs_rt.
IF lfs_rt-lgart = '/460'.
fs_pa0001-betrg = lfs_rt-betrg.
ENDIF.
IF lfs_rt-lgart = '4101'.
fs_pa0001-betrg1 = lfs_rt-betrg.
ENDIF.
ENDLOOP.in this loop you are assigning value for betrg1 in fs_pa0001.
but what are you doing with this assignment... what exactly is the purpose of it... is it to update the table tabfinal or to modify the table i_pa0001... if the record has to be appended to tabfinal or to any other table you have to write code after this loop so that the loop has some meaning...
hope it will resolve the issue
Regards,
Siddarth
‎2009 May 21 5:17 AM
ok let me explain..
i m using function modules for payroll result data corresponding to wage type '/460' and '4101'.
now i want this data to be in my final table i.e tabfinal
so that i can hav my final data in one internal table. how to achieve this....
‎2009 May 21 7:13 AM