2007 Mar 30 10:40 AM
Hi all
DATA: BEGIN OF I_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
END OF I_VBAK.
DATA : BEGIN OF I_KNA1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF I_KNA1.
DATA : BEGIN OF IT_FINAL OCCURS 0,
KUNNR TYPE VBAK-KUNNR,
NAME1 TYPE KNA1-NAME1,
MATNR TYPE VBAP-MATNR,
KWMENG TYPE VBAP-KWMENG,
MAKTX TYPE MAKT-MAKTX,
VBELN TYPE VBRP-VBELN,
FKIMG TYPE VBRP-FKIMG,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF IT_FINAL.
DATA: BEGIN OF WA,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF WA.
*DATA itab LIKE Standard TABLE OF wa
*WITH non-UNIQUE KEY vbeln.
DATA : ITAB LIKE STANDARD TABLE OF WA WITH HEADER LINE.
DATA WA1 LIKE STANDARD TABLE OF WA WITH HEADER LINE.
SELECT VBELN KUNNR
FROM VBAK INTO TABLE I_VBAK.
SELECT KUNNR NAME1
FROM KNA1 INTO TABLE I_KNA1
FOR ALL ENTRIES IN I_VBAK
WHERE KUNNR = I_VBAK-KUNNR.
SELECT AVBELN AKUNNR CVGBEL BPOSNR DVGPOS EVBELN
INTO TABLE ITAB
FROM ( ( ( ( VBAK AS A
INNER JOIN VBAP AS B ON AVBELN = BVBELN )
INNER JOIN LIPS AS C ON CVGBEL = BVBELN AND CVGPOS = BPOSNR )
INNER JOIN VBRP AS D ON DVGBEL = CVBELN AND DVGPOS = CPOSNR )
INNER JOIN VBRK AS E ON EVBELN = DVBELN ) .
*if i_vbak-vbeln = wa-vbeln.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
*write:/ wa-vbeln, wa-posnr, wa-vgbel,wa-vgpos,wa-vbeln1,wa-kunnr.
ENDLOOP.
*endif.
LOOP AT I_KNA1 .
READ TABLE I_VBAK WITH KEY KUNNR = I_KNA1-KUNNR.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
write:/ it_final-name1.
ENDLOOP.
*loop at it_final.
WRITE:/ IT_FINAL-VBELN, IT_FINAL-POSNR, IT_FINAL-VGBEL,IT_FINAL-VGPOS,
IT_FINAL-VBELN1,IT_FINAL-KUNNR,IT_FINAL-NAME1.
endloop.
I am geting one one record output. How i will get all records.
if i am using <b>loop at it_final</b> then it is not display any data..
Please help me out....
2007 Mar 30 10:42 AM
HI,
Append statement missing after "loop at Itab"
Please try this modifications.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
<B> READ TABLE I_VBAK WITH KEY VBELN = ITAB-VBELN.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
READ TABLE I_KNA1 WITH KEY KUNNR = I_VBAK-KUNNR
IT_FINAL-NAME1 = I_KNA1-NAME1.
APPEND IT_FINAL.
CLEAR IT_FINAL. </B>
ENDLOOP.
*endif.
Thanks,
Rashmi.
Message was edited by:
Rashmi Joshi
Message was edited by:
Rashmi Joshi
2007 Mar 30 10:42 AM
HI,
Append statement missing after "loop at Itab"
Please try this modifications.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
<B> READ TABLE I_VBAK WITH KEY VBELN = ITAB-VBELN.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
READ TABLE I_KNA1 WITH KEY KUNNR = I_VBAK-KUNNR
IT_FINAL-NAME1 = I_KNA1-NAME1.
APPEND IT_FINAL.
CLEAR IT_FINAL. </B>
ENDLOOP.
*endif.
Thanks,
Rashmi.
Message was edited by:
Rashmi Joshi
Message was edited by:
Rashmi Joshi
2007 Mar 30 10:43 AM
hi Panda
do this way
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
<b>append it_final.</b>
*write:/ wa-vbeln, wa-posnr, wa-vgbel,wa-vgpos,wa-vbeln1,wa-kunnr.
ENDLOOP.
LOOP AT I_KNA1 .
READ TABLE I_VBAK WITH KEY KUNNR = I_KNA1-KUNNR.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
<b>modify it_final index sy-tabix transporting kunnr name1.</b>
write:/ it_final-name1.
ENDLOOP
<b>loop at it_final.</b>
WRITE:/ IT_FINAL-VBELN, IT_FINAL-POSNR, IT_FINAL-VGBEL,IT_FINAL-VGPOS,
IT_FINAL-VBELN1,IT_FINAL-KUNNR,IT_FINAL-NAME1.
<b> endloop.</b>
Message was edited by:
Santosh Kumar Patha
2007 Mar 30 10:46 AM
Hi santhosh
if i am using loop at It_final
then it is not disply any record.....
2007 Mar 30 10:45 AM
Hi,
U have to write the modify statement....
LOOP AT I_KNA1 .
READ TABLE I_VBAK WITH KEY KUNNR = I_KNA1-KUNNR.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
modify it_final index sy-tabix transporting kunnr name1.
write:/ it_final-name1.
ENDLOOP.
Regards,
nagaraj
2007 Mar 30 10:47 AM
not coded append it_final in ut prog.
Change as below.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
READ TABLE I_KNA1 WITH KEY KUNNR = I_KNA1-KUNNR.
IF SY-SUBRC = 0.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
ENDIF.
append it_final. "add this statement.
CLEAR IT_FINAL.
ENDLOOP.
*endif.
You can remove the following statements.
*LOOP AT I_KNA1 .
*READ TABLE I_VBAK WITH KEY KUNNR = I_KNA1-KUNNR.
*IT_FINAL-KUNNR = I_KNA1-KUNNR.
*IT_FINAL-NAME1 = I_KNA1-NAME1.
*ENDLOOP.
loop at it_final.
WRITE:/ IT_FINAL-VBELN, IT_FINAL-POSNR, IT_FINAL-VGBEL,IT_FINAL-VGPOS,
IT_FINAL-VBELN1,IT_FINAL-KUNNR,IT_FINAL-NAME1.
endloop.
2007 Mar 30 10:47 AM
Write...
Append it_final.
Just before the endloop of itab.
Regards,
Phani.
2007 Mar 30 10:49 AM
Hi
try to debug your program and check whether it_final contains any data.
Also you try to define a structure with same type as it_final and the use
loop at it_final into is_final.
write: / is_final-vbel, is_final-posnr...
endloop.
2007 Mar 30 11:06 AM
Hi...
I have modified ur code..and getting results..
paste this code..
&----
*& Report ZYH642_DIALOG_2
*&
&----
*&
*&
&----
REPORT ZYH642_DIALOG_2.
*tables: spfli.
*
*data:
t_tab like standard table of spfli.
*
*select * from spfli into table t_tab.
DATA: BEGIN OF I_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
END OF I_VBAK.
DATA : BEGIN OF I_KNA1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF I_KNA1.
DATA : BEGIN OF IT_FINAL OCCURS 0,
KUNNR TYPE VBAK-KUNNR,
NAME1 TYPE KNA1-NAME1,
MATNR TYPE VBAP-MATNR,
KWMENG TYPE VBAP-KWMENG,
MAKTX TYPE MAKT-MAKTX,
VBELN TYPE VBRP-VBELN,
FKIMG TYPE VBRP-FKIMG,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF IT_FINAL.
DATA: BEGIN OF WA,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF WA.
*DATA itab LIKE Standard TABLE OF wa
*WITH non-UNIQUE KEY vbeln.
DATA : ITAB LIKE STANDARD TABLE OF WA WITH HEADER LINE.
DATA WA1 LIKE STANDARD TABLE OF WA WITH HEADER LINE.
SELECT VBELN KUNNR
FROM VBAK INTO TABLE I_VBAK.
SELECT KUNNR NAME1
FROM KNA1 INTO TABLE I_KNA1
FOR ALL ENTRIES IN I_VBAK
WHERE KUNNR = I_VBAK-KUNNR.
SELECT AVBELN AKUNNR CVGBEL BPOSNR DVGPOS EVBELN
INTO TABLE ITAB
FROM ( ( ( ( VBAK AS A
INNER JOIN VBAP AS B ON AVBELN = BVBELN )
INNER JOIN LIPS AS C ON CVGBEL = BVBELN AND CVGPOS = BPOSNR )
INNER JOIN VBRP AS D ON DVGBEL = CVBELN AND DVGPOS = CPOSNR )
INNER JOIN VBRK AS E ON EVBELN = DVBELN ) .
*if i_vbak-vbeln = wa-vbeln.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
APPEND IT_FINAL.
*write:/ wa-vbeln, wa-posnr, wa-vgbel,wa-vgpos,wa-vbeln1,wa-kunnr.
ENDLOOP.
*endif.
DATA:
W_INDEX TYPE I.
LOOP AT I_KNA1 .
W_INDEX = SY-TABIX.
READ TABLE I_VBAK WITH KEY KUNNR = I_KNA1-KUNNR.
IF SY-SUBRC EQ 0.
IT_FINAL-KUNNR = I_KNA1-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
MODIFY IT_FINAL INDEX W_INDEX FROM IT_FINAL TRANSPORTING
KUNNR NAME1.
ENDIF.
write:/ it_final-name1.
ENDLOOP.
loop at it_final.
WRITE:/ IT_FINAL-VBELN, IT_FINAL-POSNR, IT_FINAL-VGBEL,IT_FINAL-VGPOS,
IT_FINAL-VBELN1,IT_FINAL-KUNNR,IT_FINAL-NAME1.
endloop.
2007 Mar 30 11:12 AM
Hi..,
<b>Small modification in your code.. check here... its giving all the records, with expected output...The modified code is in Bold letters!!</b>
DATA: BEGIN OF I_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
END OF I_VBAK.
DATA : BEGIN OF I_KNA1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF I_KNA1.
DATA : BEGIN OF IT_FINAL OCCURS 0,
KUNNR TYPE VBAK-KUNNR,
NAME1 TYPE KNA1-NAME1,
MATNR TYPE VBAP-MATNR,
KWMENG TYPE VBAP-KWMENG,
MAKTX TYPE MAKT-MAKTX,
VBELN TYPE VBRP-VBELN,
FKIMG TYPE VBRP-FKIMG,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF IT_FINAL.
DATA: BEGIN OF WA,
VBELN TYPE VBAK-VBELN,
KUNNR TYPE VBAK-KUNNR,
VGBEL TYPE LIPS-VGBEL,
POSNR TYPE VBAP-POSNR,
VGPOS TYPE VBRP-VGPOS,
VBELN1 TYPE VBRK-VBELN,
END OF WA.
*DATA itab LIKE Standard TABLE OF wa
*WITH non-UNIQUE KEY vbeln.
DATA : ITAB LIKE STANDARD TABLE OF WA WITH HEADER LINE.
DATA WA1 LIKE STANDARD TABLE OF WA WITH HEADER LINE.
SELECT VBELN KUNNR
FROM VBAK INTO TABLE I_VBAK.
SELECT KUNNR NAME1
FROM KNA1 INTO TABLE I_KNA1
FOR ALL ENTRIES IN I_VBAK
WHERE KUNNR = I_VBAK-KUNNR.
SELECT AVBELN AKUNNR CVGBEL BPOSNR DVGPOS EVBELN
INTO TABLE ITAB
FROM ( ( ( ( VBAK AS A
INNER JOIN VBAP AS B ON AVBELN = BVBELN )
INNER JOIN LIPS AS C ON CVGBEL = BVBELN AND CVGPOS = BPOSNR )
INNER JOIN VBRP AS D ON DVGBEL = CVBELN AND DVGPOS = CPOSNR )
INNER JOIN VBRK AS E ON EVBELN = DVBELN ) .
*if i_vbak-vbeln = wa-vbeln.
LOOP AT ITAB .
IT_FINAL-VBELN = ITAB-VBELN.
IT_FINAL-KUNNR = ITAB-KUNNR.
IT_FINAL-POSNR = ITAB-POSNR.
IT_FINAL-VGBEL = ITAB-VGBEL.
IT_FINAL-VGPOS = ITAB-VGPOS.
IT_FINAL-VBELN1 = ITAB-VBELN1.
<b>APPEND IT_FINAL.</b> <u>"<----changed</u>
*write:/ wa-vbeln, wa-posnr, wa-vgbel,wa-vgpos,wa-vbeln1,wa-kunnr.
ENDLOOP.
clear it_final.
<b>LOOP AT IT_FINAL.
READ TABLE I_KNA1 WITH KEY KUNNR = IT_FINAL-KUNNR.
IT_FINAL-NAME1 = I_KNA1-NAME1.
MODIFY IT_FINAL TRANSPORTING NAME1.
ENDLOOP.</b> <u>"<----changed</u>
loop at it_final.
WRITE:/ IT_FINAL-VBELN, IT_FINAL-POSNR, IT_FINAL-VGBEL,IT_FINAL-VGPOS,
IT_FINAL-VBELN1,IT_FINAL-KUNNR,IT_FINAL-NAME1.
endloop.
<b>JUST COPY AND EXECUTE THIS CODE</b>..
this will solve your problem..
regards,
sai ramesh
Message was edited by:
Sai ramesh
2007 Mar 30 11:52 AM
Plz do remember to close the thread ,,,, when ur problem is solved !!
reward all the helpful answers !!
regards,
sai ramesh
2007 Mar 30 11:53 AM
&----
*& Report ZSDN
*&
&----
*&
*&
&----
REPORT zsdn.
DATA: BEGIN OF i_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
kunnr LIKE vbak-kunnr,
END OF i_vbak.
DATA : BEGIN OF i_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF i_kna1.
DATA : BEGIN OF it_final OCCURS 0,
kunnr LIKE vbak-kunnr,
name1 LIKE kna1-name1,
matnr LIKE vbap-matnr,
kwmeng LIKE vbap-kwmeng,
maktx LIKE makt-maktx,
vbeln LIKE vbrp-vbeln,
fkimg LIKE vbrp-fkimg,
vgbel LIKE lips-vgbel,
posnr LIKE vbap-posnr,
vgpos LIKE vbrp-vgpos,
vbeln1 LIKE vbrk-vbeln,
END OF it_final.
DATA: BEGIN OF wa,
vbeln LIKE vbak-vbeln,
kunnr LIKE vbak-kunnr,
vgbel LIKE lips-vgbel,
posnr LIKE vbap-posnr,
vgpos LIKE vbrp-vgpos,
vbeln1 LIKE vbrk-vbeln,
END OF wa.
*DATA itab LIKE Standard TABLE OF wa
*WITH non-UNIQUE KEY vbeln.
DATA : itab LIKE STANDARD TABLE OF wa WITH HEADER LINE.
DATA wa1 LIKE STANDARD TABLE OF wa WITH HEADER LINE.
SELECT vbeln kunnr
FROM vbak INTO TABLE i_vbak.
SELECT kunnr name1
FROM kna1 INTO TABLE i_kna1
FOR ALL ENTRIES IN i_vbak
WHERE kunnr = i_vbak-kunnr.
SELECT avbeln akunnr cvgbel bposnr dvgpos evbeln
INTO TABLE itab
FROM ( ( ( ( vbak AS a
INNER JOIN vbap AS b ON avbeln = bvbeln )
INNER JOIN lips AS c ON cvgbel = bvbeln AND cvgpos = bposnr )
INNER JOIN vbrp AS d ON dvgbel = cvbeln AND dvgpos = cposnr )
INNER JOIN vbrk AS e ON evbeln = dvbeln ) .
*if i_vbak-vbeln = wa-vbeln.
LOOP AT itab .
it_final-vbeln = itab-vbeln.
it_final-posnr = itab-posnr.
it_final-vgbel = itab-vgbel.
it_final-vgpos = itab-vgpos.
it_final-vbeln1 = itab-vbeln1.
APPEND it_final.
*write:/ wa-vbeln, wa-posnr, wa-vgbel,wa-vgpos,wa-vbeln1,wa-kunnr.
ENDLOOP.
*endif.
LOOP AT i_kna1 .
READ TABLE i_vbak WITH KEY kunnr = i_kna1-kunnr.
it_final-kunnr = i_kna1-kunnr.
it_final-name1 = i_kna1-name1.
APPEND it_final.
write:/ it_final-name1.
ENDLOOP.
LOOP AT it_final.
WRITE:/ it_final-vbeln, it_final-posnr, it_final-vgbel,it_final-vgpos,
it_final-vbeln1,it_final-kunnr,it_final-name1.
ENDLOOP.
this is solved program.
<b> reward if useful </b>
regards.
santhosh reddy
Message was edited by:
santhosh reddy