‎2007 Sep 26 2:04 PM
hello gurus..
plz try to solve this problem....i am sending u the code
TABLES: vbrp,lips,vbap,vbrk,kna1,knvv,konv,j_1imocust,vbkd.
PARAMETER TAXINVO TYPE vbrk-vbeln.
data: words(200) type c.
DATA :WORDS1(200) TYPE C.
data: word_amount type PC207-BETRG.
DATA: srn TYPE i,
total_qty TYPE p DECIMALS 2,
total_costvalue TYPE p DECIMALS 2.
DATA: lin TYPE i.
DATA : BEGIN OF itab OCCURS 0,
vbeln LIKE vbrk-vbeln,
vbelnrp LIKE vbrp-vbeln,
vgbelrp LIKE vbrp-vgbel,
vgposrp LIKE vbrp-vgpos,
vbelnlip LIKE lips-vbeln,
vgebllip LIKE lips-vgbel,
vgposlip LIKE lips-vgpos,
erdat LIKE lips-erdat,
vbelnap LIKE vbap-vbeln,
vgbelap LIKE vbap-vgbel,
vgposap LIKE vbap-vgpos,
posnr LIKE vbrp-posnr,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
pstlz LIKE kna1-pstlz,
adrnr LIKE kna1-adrnr,
kunag LIKE vbrk-kunag,
knumv LIKE vbrk-knumv,
vat LIKE konv-kawrt,
kunnr LIKE kna1-kunnr,
kdgrp LIKE knvv-kdgrp,
arktx LIKE vbrp-arktx,
matnr LIKE vbrp-matnr,
fkImg LIKE vbrp-fkimg,
kschl LIKE konv-kschl,
advance like konv-kwert,
package LIKE konv-kbetr,
insurance LIKE konv-kwert,
freight LIKE konv-kwert,
discount LIKE konv-kwert,
kwmeng LIKE vbap-kwmeng,
rate LIKE konv-kwert,
bstkd like vbkd-bstkd,
bstdk like vbkd-bstdk,
knumv LIKE vbak-knumv,
kbetr LIKE konv-kbetr,
kwert like konv-kwert,
value LIKE konv-kwert,
value1 LIKE konv-kwert,
value2 LIKE konv-kwert,
value3 LIKE konv-kwert,
value4 LIKE konv-kBETR,
value5 LIKE konv-kwert,
value6 LIKE konv-kwert,
value7 LIKE konv-kwert,
value8 LIKE konv-kwert,
value9 LIKE konv-kwert,
value10 LIKE konv-kwert,
value11 LIKE konv-kwert,
value12 LIKE konv-kwert,
value13 LIKE konv-kwert,
value14 LIKE konv-kwert,
value15 LIKE konv-kwert,
value16 LIKE konv-kwert,
value17 LIKE konv-kwert,
value18 LIKE konv-kwert,
value19 LIKE konv-kwert,
value20 LIKE konv-kwert,
value21 like konv-kwert,
VALUE22 LIKE KONV-KWERT,
cst LIKE konv-kawrt,
cess LIKE konv-kawrt,
kawrt LIKE konv-kawrt,
j_1ichid LIKE j_1imtchid-j_1ichid, "chapt id
j_1iexrn LIKE j_1imocust-j_1iexrn, "Excise Registration Number
j_1iexdi LIKE j_1imocust-j_1iexdi, "Excise Division
j_1iexco LIKE j_1imocust-j_1iexco, "Excise Commissionerate
j_1iexcd LIKE j_1imocust-j_1iexcd, "ECC Number
j_1ipanno LIKE j_1imocust-j_1ipanno,
j_1ilstno LIKE j_1imocust-j_1ilstno,
j_1icstno LIKE j_1imocust-j_1icstno,
words(200) type c,
words1(200) type c, " ADDED LATER
END OF itab.
data: itab1 like itab occurs 0 with header line.
*START-OF-SELECTION.
SELECT * FROM vbrk INTO CORRESPONDING FIELDS OF TABLE itab WHERE vbeln = TAXINVO.
LOOP AT itab .
SELECT * FROM vbrp WHERE vbeln = itab-vbeln.
SELECT * FROM lips WHERE vbeln = vbrp-vgbel AND posnr = vbrp-vgpos.
SELECT * FROM vbap WHERE vbeln = lips-vgbel AND posnr = lips-vgpos.
itab-vbelnrp = vbrp-vbeln.
itab-vgbelrp = vbrp-vgbel.
itab-vgbelrp = vbrp-vgpos.
itab-vbelnlip = lips-vbeln.
itab-vgebllip = lips-vgbel.
itab-erdat = lips-erdat.
itab-vgposlip = lips-vgpos.
itab-vbelnap = vbap-vbeln.
MODIFY itab TRANSPORTING vbelnrp vgbelrp vgbelrp vbelnlip vgebllip vgposlip vbelnap .
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDLOOP.
LOOP AT itab.
SELECT ort01 pstlz adrnr name1 FROM kna1 INTO CORRESPONDING FIELDS
OF itab WHERE kunnr = itab-kunag.
itab-name1 = itab-name1.
itab-ort01 = itab-ort01.
itab-pstlz = itab-pstlz.
itab-adrnr = itab-adrnr.
MODIFY itab TRANSPORTING ort01 pstlz adrnr name1.
ENDSELECT.
ENDLOOP.
LOOP AT itab.
SELECT bstdk bstkd FROM vbkd INTO CORRESPONDING FIELDS
OF itab1 WHERE vbeln = itab-vbelnap.
itab-vbeln = itab1-vbeln.
itab-bstkd = itab1-bstkd.
itab-bstdk = itab1-bstdk.
MODIFY itab TRANSPORTING bstkd bstdk.
ENDSELECT.
ENDLOOP.
LOOP AT itab.
srn = sy-index.
SELECT arktx fkimg matnr posnr FROM vbrp INTO CORRESPONDING FIELDS OF itab
WHERE vbeln = itab-vbelnrp.
itab-arktx = itab-arktx.
itab-fkImg = itab-fkImg.
itab-matnr = itab-matnr.
itab-posnr = itab-posnr.
MODIFY itab TRANSPORTING arktx fkImg matnr posnr .
ENDSELECT.
ENDLOOP.
in this select statement i am only getting one record that is the last record it is fetching ....
‎2007 Sep 26 2:11 PM
Which SELECT is returning only one entry - please specify. Also using SELECT ENDSELECT is not a good programing skill. You need to change logic to avoid usage of SELECT ENDSELECT. Try using FOR ALL ENTRIES or using JOINS.
‎2007 Sep 26 2:16 PM
Hi,
U didn't mentioned the Taget Area in the following Lines.
SELECT * FROM vbrp WHERE vbeln = itab-vbeln.
SELECT * FROM lips WHERE vbeln = vbrp-vgbel AND posnr = vbrp-vgpos.
SELECT * FROM vbap WHERE vbeln = lips-vgbel AND posnr = lips-vgpos.
<into statement missing>.
Then if u r using SELECT....FROM....INTO CORRESPONDING FIELDS OF... .then u should not use ENDSELECT.
Regards,
Padmam.
‎2007 Sep 26 2:19 PM
Hi,
There is lot of Syntax Errors in ur program.U first try to fix it and then if u have any doubts then u post the thread.
Regards,
Padmam.
‎2007 Sep 26 2:23 PM
Hi
write a single JOIN like below and see the performance:
first fetch data from VBRK and VBRP into ITAB
select avbeln afkdat bposnr bvgbel bvgpos baubel b~aupos....<write all required fields> into table itab from vbrk as a join vbrp as b
on avbeln = bvbeln where a~vbeln = taxinno.
if not itab[] is initial.
select avbeln bposnr bvgbel ckunnr dmatnr ebstdk f~name1
<write the required fields correctly>
into table itab1 from likp as a join lips as b
on avbeln = bvbeln join vbap as d
on bvgbel = dvbeln and bvgpos = dposnr join vbak as c
on dvbeln = cvbeln join vbkd as e
on cvbeln = evbeln join kna1 as f
on ckunnr = fkunnr
for all entries in itab
where a~vbeln = itab-vgbel and
b~posnr = itab-vgpos and
c~vbeln = itab-aubel and
d~posnr = itab-aupos.
endif.
loop at itab.
move-corresponding itab to i_final.
read table itab1 with key vbeln = itab-vgbel posnr = itab-vgpos.
move the data to i_final.
append i_final.
clear i_final.
endloop.
display the i_final data
this will be performance wise Ok
do and see
Regards
Anji
‎2007 Sep 26 2:29 PM
SELECT ort01 pstlz adrnr name1 FROM kna1 INTO CORRESPONDING FIELDS
OF itab WHERE kunnr = itab-kunag.
itab-name1 = itab-name1.
itab-ort01 = itab-ort01.
itab-pstlz = itab-pstlz.
itab-adrnr = itab-adrnr.
seems you do not understand the INTO CORRESPONDING, it does exactly the move which you list below.
Your selects must be select singles.
You should try to built up joins and the mass selects into hashed tables.
And do only one LOOP at itab, with reads and modify at the end.
Siegfried