Application Development and Automation 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: 
Read only

directly checking database values logic

Former Member
0 Likes
525

Hi Experts,

I have a following query in a loop.

LOOP AT it_ekpo.

CLEAR: wrk_invmenge.

SELECT * FROM ekbe

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp

  • and budat in bldat_i

AND vgabe = '2'. " for inv based entries

IF ekbe-shkzg = 'H'.

ekbe-menge = ekbe-menge * ( -1 ).

ENDIF.

wrk_invmenge = wrk_invmenge + ekbe-menge.

ENDSELECT.

Now , I want to put this select query like this

if not it_ekpo is initial.

SELECT * FROM ekbe into table it_ekbe

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp

AND vgabe = '2'. " for inv based entries

endif.

Now , I am reading this internal table it_ekbe and I am not sure how acheive to following condition .

IF ekbe-shkzg = 'H'.

ekbe-menge = ekbe-menge * ( -1 ).

ENDIF.

wrk_invmenge = wrk_invmenge + ekbe-menge.

ENDSELECT.

3 REPLIES 3
Read only

Former Member
0 Likes
508

HI,

SELECT * FROM ekbe into table it_ekbe 
     FOR ALL ENTRIES IN it_ekpo
WHERE ebeln = it_ekpo-ebeln
AND ebelp = it_ekpo-ebelp
AND vgabe = '2'. " for inv based entries 

LOOP at it_ekpo.

READ TABLE it_ekbe with key ebeln = it_ekpo-ebeln
                                              ebelp = it_ekpo-ebelp.
                             
IF SY_SUBRC EQ 0.
IF it_ekbe-shkzg = 'H'.
ekbe-menge = ekbe-menge * ( -1 ).
ENDIF.
ENDIF.

ENDLOOP.

Read only

0 Likes
508

Hi ,

i guess this is little wrong,, Instead the logic is as below

SELECT * FROM ekbe into table it_ekbe

FOR ALL ENTRIES IN it_ekpo

WHERE ebeln = it_ekpo-ebeln

AND ebelp = it_ekpo-ebelp

AND vgabe = '2'. " for inv based entries

LOOP at it_ekpo.

loop at it_ekbe where ebeln = it_ekpo-ebeln

ebelp = it_ekpo-ebelp.

IF it_ekbe-shkzg = 'H'.

ekbe-menge = ekbe-menge * ( -1 ).

ENDIF.

wrk_invmenge = wrk_invmenge + ekbe-menge.

Endloop.

clear variables.

ENDLOOP.

Hope this helps you

Raj

Read only

Former Member
0 Likes
508

Moved to correct forum.

Rob