‎2011 Aug 20 7:53 AM
Hi Expert,
I have one report which display employee transfer details In that report i have added two new fields i.e Action type and Reason for Action.My requirement is in the selection screen i have given date.What ever date i have given in the selection screen it should fetch the data of employee transfer I have written the code but in the output the field which i have added
two fied i.e Action type and Reason for action data is not comming for this two fields.
Below is my code .
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.
Regards,
Mdaddu.
‎2011 Aug 20 10:04 AM
Hi
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.In above code if u r moving data in table i_transfers then you ahve to append that table
like below code
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append i_transfers .
clear i_transfers .
endloop.regards
Deepak.
‎2011 Aug 20 10:04 AM
Hi
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.In above code if u r moving data in table i_transfers then you ahve to append that table
like below code
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append i_transfers .
clear i_transfers .
endloop.regards
Deepak.
‎2011 Aug 20 10:43 AM
Hi Depak,
I have append as per your suggestion still data is not appearing for that two fields.
Can you suggest me what i have to do in the code.
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append i_transfers.
clear i_transfers.
endloop.
Regards,
Mdaddu.
‎2011 Aug 20 10:49 AM
Hi ,
Tell me ur final internal table which u are using for display .
Because table you are using is different for display and u r modifying different table .
regards
Deepak.
Edited by: Deepak Dhamat on Aug 20, 2011 11:51 AM
‎2011 Aug 20 11:00 AM
Hi Deepak,
My final internal table is I_TRANSFERS.
The below is my total code.
LOOP AT I_TRANSFERS.
V_SERIAL_NO = V_SERIAL_NO + 1.
I_TRANSFERS-SRNO = V_SERIAL_NO.
SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-WERKSTXT
WHERE PERSA = I_TRANSFERS-WERKS.
SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-OLD_WERKSTXT
WHERE PERSA = I_TRANSFERS-OLD_WERKS.
SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-BTRTLTXT
WHERE BTRTL = I_TRANSFERS-BTRTL.
SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-OLD_BTRTLTXT
WHERE BTRTL = I_TRANSFERS-OLD_BTRTL.
SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-KOSTLTXT
WHERE KOSTL = I_TRANSFERS-KOSTL
AND SPRAS = 'EN'.
ENDSELECT.
SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-OLD_KOSTLTXT
WHERE KOSTL = I_TRANSFERS-OLD_KOSTL
AND SPRAS = 'EN'.
SELECT SINGLE PLSTX FROM T528T INTO I_TRANSFERS-PLSTX
WHERE PLANS = I_TRANSFERS-PLANS
AND ENDDA = '99991231'.
ENDSELECT.
SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-OLD_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-OLD_ORGUNIT.
SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-NEW_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-NEW_ORGUNIT.
" Description for payment method
IF I_TRANSFERS-ZLSCH EQ 'C' OR I_TRANSFERS-ZLSCH EQ ' '.
I_TRANSFERS-ZLSCH = 'Cash Payment'.
ELSEIF I_TRANSFERS-ZLSCH EQ 'T'.
I_TRANSFERS-ZLSCH = 'Bank Transfers'.
ENDIF.
IF I_TRANSFERS-OLD_ZLSCH EQ 'C' OR I_TRANSFERS-OLD_ZLSCH EQ ' '.
I_TRANSFERS-OLD_ZLSCH = 'Cash Payment'.
ELSEIF I_TRANSFERS-OLD_ZLSCH EQ 'T'.
I_TRANSFERS-OLD_ZLSCH = 'Bank Transfers'.
ENDIF.
SELECT SINGLE NATIO50 FROM T005T INTO I_TRANSFERS-NATIO
WHERE LAND1 = I_TRANSFERS-NATIO
AND SPRAS = 'E'.
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append i_transfers.
clear i_transfers.
endloop.
MODIFY I_TRANSFERS.
ENDLOOP.
Regards,
Mdaddu
‎2011 Aug 20 11:06 AM
Hi ,
Do this change .
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
i_transfers-massg = p0000-massg.
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
endloop.
MODIFY I_TRANSFERS transporting mgtxt .
endloop.
regards
Deepak.
‎2011 Aug 20 11:08 AM
Hi ,
always after using Select Single do check SY-SUBRC .
regards
Deepak.
‎2011 Aug 20 11:17 AM
Hi Deepak,
Still my output is not comming for that two i.e Action type and Reason for Acion.
Can you please suggest me what i have to insert in the code.
Regards,
Mdaddu.
‎2011 Aug 20 11:24 AM
Hi ,
1) First check whether you are passing correct values to get those Action type and Reason for Acion using select single
2) Check whether you are getting sy-subrc = 0 and values from table
3) if you are getting values then check it gets modified to i_transfer table
4) There might be one problem i.e you are using loop at table poooo i.e how many entries are there in that table what is purpose of that table .
Because when you are looping you might have get result in mgtxt but as there may be lot of records and last record in loop might not have value in mgtxt .
if might be modifying blank in i_transfers .
YOUR STEP BY STEP DEBUGGING WILL HELP- YOU
regards
Deepak.
‎2011 Aug 20 11:36 AM
Hi Deepak,
As per you suggestion in the 4th point i am looping to table p0000 in that table data is comming for all fields except Action type and Reason for Action field.I have check in the debugging mode when it comes to my select statement it is showing sy-subrc = 4. But i have check in the backend system data is present for that employee.
Regard,
mdaddu
‎2011 Aug 20 11:41 AM
hi ,
please go to table t530t
pass values : massn = 02
massg = p0000-massg i.e actual value of that field
sprsl = 'E' .
and check whether u are getting value or not .
regards
Deepak.
‎2011 Aug 20 11:51 AM
Deepak,
I have check in the table value is there.
Regards,
Mdaddu
‎2011 Aug 20 12:00 PM
Hi ,
Please check are you getting sy-subrc = 0 for all entries of table p0000 .
Instead of using loop you can
tables : t530t .
sort poooo by pernr massn .
read table poooo with key pernr = i_transfers-pernr
massn = '02' .
if sy-subrc = 0 .
select single * from t530t
where massn = '02'
AND massg = i_transfers-massg
AND sprsl = 'E'.
if sy-subrc = 0.
i_transfers-mgtxt = t530t-mgtxt.
endif.
modify i_transfers transporting mgtxt .
endloop.
I think now this should solve your problem .
Regards
Deepak.
‎2011 Aug 20 12:32 PM
Hi Deepak,
I have added the code like this below still outptut is not comming.
LOOP AT I_TRANSFERS.
V_SERIAL_NO = V_SERIAL_NO + 1.
I_TRANSFERS-SRNO = V_SERIAL_NO.
SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-WERKSTXT
WHERE PERSA = I_TRANSFERS-WERKS.
SELECT SINGLE NAME1 FROM T500P INTO I_TRANSFERS-OLD_WERKSTXT
WHERE PERSA = I_TRANSFERS-OLD_WERKS.
SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-BTRTLTXT
WHERE BTRTL = I_TRANSFERS-BTRTL.
SELECT SINGLE BTEXT FROM T001P INTO I_TRANSFERS-OLD_BTRTLTXT
WHERE BTRTL = I_TRANSFERS-OLD_BTRTL.
SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-KOSTLTXT
WHERE KOSTL = I_TRANSFERS-KOSTL
AND SPRAS = 'EN'.
ENDSELECT.
SELECT SINGLE LTEXT FROM CSKT INTO I_TRANSFERS-OLD_KOSTLTXT
WHERE KOSTL = I_TRANSFERS-OLD_KOSTL
AND SPRAS = 'EN'.
SELECT SINGLE PLSTX FROM T528T INTO I_TRANSFERS-PLSTX
WHERE PLANS = I_TRANSFERS-PLANS
AND ENDDA = '99991231'.
ENDSELECT.
SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-OLD_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-OLD_ORGUNIT.
SELECT SINGLE ORGTX FROM T527X INTO I_TRANSFERS-NEW_ORGUNITTXT WHERE ORGEH = I_TRANSFERS-NEW_ORGUNIT.
" Description for payment method
IF I_TRANSFERS-ZLSCH EQ 'C' OR I_TRANSFERS-ZLSCH EQ ' '.
I_TRANSFERS-ZLSCH = 'Cash Payment'.
ELSEIF I_TRANSFERS-ZLSCH EQ 'T'.
I_TRANSFERS-ZLSCH = 'Bank Transfers'.
ENDIF.
IF I_TRANSFERS-OLD_ZLSCH EQ 'C' OR I_TRANSFERS-OLD_ZLSCH EQ ' '.
I_TRANSFERS-OLD_ZLSCH = 'Cash Payment'.
ELSEIF I_TRANSFERS-OLD_ZLSCH EQ 'T'.
I_TRANSFERS-OLD_ZLSCH = 'Bank Transfers'.
ENDIF.
SELECT SINGLE NATIO50 FROM T005T INTO I_TRANSFERS-NATIO
WHERE LAND1 = I_TRANSFERS-NATIO
AND SPRAS = 'E'.
sort p0000 by pernr massn.
Read table p0000 with key pernr = i_transfers-pernr
massn = '02'.
if sy-subrc = '0'.
loop at p0000 where pernr = i_transfers-pernr and massn eq '02'.
*
i_transfers-massg = p0000-massg.
*
select single * from t530t into ls_t530t where massn eq '02' AND massg = i_transfers-massg AND sprsl = 'E'.
*
if sy-subrc = 0.
i_transfers-mgtxt = ls_t530t-mgtxt.
endif.
append i_transfers.
clear i_transfers.
endloop.
MODIFY I_TRANSFERS transporting mgtxt.
endif.
ENDLOOP.
Regards,
Mdaddu
‎2011 Aug 20 12:37 PM
Hi ,
are u getting sy-subrc = 0 after Read table p0000 statement if yes then check for select single
i think dear you have to Debug properly step by step .
regards
deepak.
‎2011 Aug 20 12:45 PM
Deepak,
In read table p0000 i am getting sy-subrc = 0 when it come to select single statement it is fail sy-subrc = 4 it is showing.
Regards,
Mdaddu.
‎2011 Aug 20 12:51 PM
Deepak,
when reading table p0000 the sy-subrc = 0 and when reading select single statement ...............sy-subrc = 4.
Regards,
Mdaddu