10-10-2007 8:11 AM
hi all,
i have a problem using read table statement can anybody help me on this issue,
i am using READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP ( KSCHL = 'JIPS' OR KSCHL = 'JIP5' ) BINARY SEARCH.
here APPENDKOMV is my internal table but how can i pass it with key checking kschl should be equal to jips or jip5 .
10-10-2007 8:12 AM
Hi,
You can not use OR AND in the <b>read statement</b>.
Instead you can use <b>loop and endloop</b> statement.
Use this way.
loop at APPENDKOMV where KNUMV = IT_HEADER-KNUMV and
KPOSN = IT_ITEM-EBELP and
( KSCHL = 'JIPS' OR KSCHL = 'JIP5' ).
do what ever you want here
endloop.
10-10-2007 8:14 AM
LOOP AT it_ITEM.
WA_TABIX = SY-TABIX.
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP KSCHL = 'JIPS' OR KSCHL = 'JIP5' BINARY SEARCH.
IF SY-SUBRC = 0.
IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.
AT LAST.
SUM.
VAT = IT_ITEM-VAT.
CONDENSE:VAT.
ENDAT.
ENDLOOP.
THIS IS MY CODE I WANT TO USE FOR BOTH KSCHL READ STATEMENT.
10-10-2007 8:25 AM
Hi Abinash,
Try using this.
LOOP AT it_ITEM.
WA_TABIX = SY-TABIX.
<b>READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP BINARY SEARCH.
IF KSCHL = 'JIPS' OR KSCHL = 'JIP5'.</b>IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.
AT LAST.
SUM.
VAT = IT_ITEM-VAT.
CONDENSE:VAT.
ENDAT.
ENDLOOP.
Reward if Useful.
Regards,
Chitra
10-10-2007 8:15 AM
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV
KPOSN = IT_ITEM-EBELP
KSCHL = 'JIPS' .
<do your processing here>.
if sy-subrc fails.
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV
KPOSN = IT_ITEM-EBELP
KSCHL = 'JIP5' .
<do processing here>
Hope it may be useful..
Cheers
10-10-2007 8:15 AM
Hi Abhinash..
READ TABLE statement can read only a single record of ITAB at a time. So it will not allow the OR Operation .
In that case we have to use the same statement 2 times as below.
Try this way....
READ TABLE APPENDKOMV WITH KEY
KNUMV = IT_HEADER-KNUMV
KPOSN = IT_ITEM-EBELP
KSCHL = 'JIPS' BINARY SEARCH.
if sy-subrc = 0.
<<process>>
endif.
READ TABLE APPENDKOMV WITH KEY
KNUMV = IT_HEADER-KNUMV
KPOSN = IT_ITEM-EBELP
KSCHL = 'JIP5' BINARY SEARCH.
if sy-subrc = 0.
<<process>>
endif.
<b>reward if Helpful.</b>
10-10-2007 8:16 AM
Change ur code as follows
LOOP AT APPENDKOMV WHERE KNUMV = IT_HEADER-KNUMV
AND KPOSN = IT_ITEM-EBELP
AND ( KSCHL = 'JIPS' OR
KSCHL = 'JIP5' ) .
EXIT.
ENDLOOP.
IF SY-SUBRC = 0.
....
ENDIF.
Hope That Helps
Anirban M.
10-10-2007 8:32 AM
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP KSCHL = 'JIPS' BINARY SEARCH.
IF SY-SUBRC = 0.
IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP KSCHL = 'JIP5' BINARY SEARCH.
IF SY-SUBRC = 0.
IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP KSCHL = 'JIPC' BINARY SEARCH.
IF SY-SUBRC = 0.
IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.
READ TABLE APPENDKOMV WITH KEY KNUMV = IT_HEADER-KNUMV KPOSN = IT_ITEM-EBELP KSCHL = 'JIPL' BINARY SEARCH.
IF SY-SUBRC = 0.
IT_ITEM-VAT = APPENDKOMV-KWERT.
MODIFY IT_ITEM INDEX WA_TABIX TRANSPORTING VAT.
ENDIF.