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: 

HI GURUS

Former Member
0 Kudos

I VE WRITTEN A PROGRAMME FOR RETRIEVING DATA FROM 3 TABLES ,, KNA1 , VBAK N LIPS USING ALL ENTRIES ,, I AM NOT GETTING THE DATA FROM THE LAST TABLE ... I WILL SEND MY CODE ... PLEASE TELL ME WHERE I WENT WRONG N GIVE ME THE CORRECTED PROGRAMME .

DATA : BEGIN OF ITAB OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

END OF ITAB.

data : begin of itab1 occurs 1 ,

VBELN LIKE VBAK-VBELN, " sales document

AUART LIKE VBAK-AUART, " sales document type

KNUMV LIKE VBAK-KNUMV, " number of the document condition

ERDAT LIKE VBAK-ERDAT, " date on which record was created

kunnr like vbak-kunnr, " customer number ( sold to party )

end of itab1 .

data : begin of itab2 occurs 1 ,

VBELN LIKE LIPS-VBELN, " deliver no

LFIMG LIKE LIPS-LFIMG, " actual quantity delivered

end of itab2 .

SELECT KUNNR NAME1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE ITAB .

SELECT VBELN AUART KNUMV ERDAT KUNNR FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB1

FOR ALL ENTRIES IN ITAB

WHERE KUNNR = ITAB-KUNNR .

SELECT VBELN LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE ITAB2

FOR ALL ENTRIES IN ITAB1

WHERE VBELN = ITAB1-VBELN .

LOOP AT ITAB2 .

READ TABLE ITAB1 WITH KEY VBELN = ITAB2-VBELN .

READ TABLE ITAB WITH KEY KUNNR = ITAB1-KUNNR .

WRITE : / ITAB-KUNNR , ITAB-NAME1 , ITAB1-VBELN , ITAB1-AUART , ITAB1-KNUMV,90 ITAB1-ERDAT , ITAB2-LFIMG .

ENDLOOP .

THANK U IN ADVANCE ....

5 REPLIES 5

Former Member
0 Kudos

hi,

before the next select statment check whether prevoius internal table has the records or not and then select...

sy-subrc check is for select is also important....

when u read the table also check for sy-subrc and proceed

Regards,

priya

Former Member
0 Kudos

Hi Usha,

The most important this while you use "FOR ALL ENTRIES" is , you must check that the table is not INITIAL.

Ex:

&----


*& Report ZSB_TEST05

*&

&----


*&

*&

&----


REPORT zsb_test05.

DATA : BEGIN OF itab OCCURS 0,

kunnr LIKE kna1-kunnr,

name1 LIKE kna1-name1,

END OF itab.

DATA : BEGIN OF itab1 OCCURS 1 ,

vbeln LIKE vbak-vbeln, " sales document

auart LIKE vbak-auart, " sales document type

knumv LIKE vbak-knumv, " number of the document condition

erdat LIKE vbak-erdat, " date on which record was created

kunnr LIKE vbak-kunnr, " customer number ( sold to party )

END OF itab1 .

DATA : BEGIN OF itab2 OCCURS 1 ,

vbeln LIKE lips-vbeln, " deliver no

lfimg LIKE lips-lfimg, " actual quantity delivered

END OF itab2 .

SELECT kunnr name1

FROM kna1

INTO CORRESPONDING FIELDS OF TABLE itab .

CHECK sy-subrc EQ 0.

SELECT vbeln auart knumv erdat kunnr

FROM vbak

INTO CORRESPONDING FIELDS OF TABLE itab1

FOR ALL ENTRIES IN itab

WHERE kunnr = itab-kunnr .

CHECK sy-subrc EQ 0.

SELECT vbeln lfimg

FROM lips

INTO CORRESPONDING FIELDS OF TABLE itab2

FOR ALL ENTRIES IN itab1

WHERE vbeln = itab1-vbeln .

CHECK sy-subrc EQ 0.

LOOP AT itab2 .

READ TABLE itab1 WITH KEY vbeln = itab2-vbeln .

READ TABLE itab WITH KEY kunnr = itab1-kunnr .

WRITE : / itab-kunnr , itab-name1 , itab1-vbeln , itab1-auart , itab1-knumv,90 itab1-erdat , itab2-lfimg .

ENDLOOP .

-


But thats not the reason why you are not getting any data in the output.

The reason is there is no corresponding document in LIPS and VBAK table.

Please award points if helpful

Former Member
0 Kudos

Hi usha sap

may be u r LIPS table does'nt contains any suitable VBELN

records that exhist in VBAK check u r LIPS table first and then proceed.

Hope this may solve u r problem.

reward points if found helpful.

Thanks and regards,

Rajesh.

Former Member
0 Kudos

Hi Usha,

There is no relation b/w VBAK and LIPS.You have directly link with the 2 tables.First you get the relation b/w vbak & vbap by vbak-vbeln = vbap-vbeln

Then you get relation b/w vbap & lips by LIPS-VGBEL = VBAP-VBELN.

Now you can retrive the data.

Regards

Kiran Sure

0 Kudos

Hi ,

The last select should be as follows,

SELECT VBELN LFIMG FROM LIPS INTO CORRESPONDING FIELDS OF TABLE ITAB2

FOR ALL ENTRIES IN ITAB1

WHERE VGBEL = ITAB1-VBELN.

the relation is.

LIPS-VGBEL = VBAK-VBELN

thanks,

Ahasan