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: 

usingread statement

Former Member
0 Kudos

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 .

7 REPLIES 7

Former Member
0 Kudos

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.

0 Kudos

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.

0 Kudos

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

abdulazeez12
Active Contributor
0 Kudos

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

varma_narayana
Active Contributor
0 Kudos

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>

former_member480923
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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.