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: 

correct the code

Former Member
0 Kudos

hi, my requirement all the data in t_adrc,t_bkpf,t_bseg,t_vaddress and t_vendor into final internal table

t_data.

SELECT SINGLE adrnr FROM t001 INTO t001-adrnr

WHERE bukrs EQ po_bukrs.

SELECT street

str_suppl2

city1

region

post_code1

FROM adrc

INTO TABLE t_adrc

WHERE addrnumber EQ t001-adrnr.

SELECT belnr

bldat

xblnr

usnam

FROM bkpf

INTO TABLE t_bkpf

WHERE belnr IN so_belnr AND

budat IN so_budat AND

blart IN so_blart.

SELECT belnr

zuonr

sgtxt

lifnr

hkont

prctr

kostl

dmbtr

FROM bseg

INTO TABLE t_bseg

FOR ALL ENTRIES IN t_bkpf

WHERE ( lifnr IN so_lifnr or

lifnr eq ' ' ) and

belnr EQ t_bkpf-belnr.

SELECT SINGLE adrnr FROM lfa1 INTO lfa1-adrnr

WHERE lifnr IN so_lifnr.

SELECT street

str_suppl2

FROM adrc

INTO table t_vaddress

WHERE addrnumber EQ lfa1-adrnr.

SELECT lfa1~name1

lfa1~ort01

lfa1~regio

lfa1~pstlz

knvk~namev

knvk~name1

INTO TABLE t_vendor FROM knvk INNER JOIN lfa1 ON

lfa1lifnr = knvklifnr

WHERE lfa1~lifnr IN so_lifnr and

lfa1~adrnr eq adrc-addrnumber.

t_data-street = t_adrc-street.

t_data-street3 = t_adrc-str_suppl2.

t_data-city = t_adrc-city1.

t_data-region = t_adrc-region.

t_data-post_code1 = t_adrc-post_code1.

t_data-bldat = t_bkpf-bldat.

t_data-belnr = t_bkpf-belnr.

t_data-xblnr = t_bkpf-xblnr.

t_data-usnam = t_bkpf-usnam.

t_data-zuonr = t_bseg-zuonr.

t_data-sgtxt = t_bseg-sgtxt.

t_data-vendorfname = t_vendor-namev.

t_data-vendorname1 = t_vendor-name2.

t_data-vendorname = t_vendor-name1.

t_data-vendorstreet = t_vaddress-street.

t_data-vendorstreet3 = t_vaddress-str_suppl2.

t_data-ort01 = t_vendor-ort01.

t_data-regio = t_vendor-regio.

t_data-pstlz = t_vendor-pstlz.

t_data-lifnr = t_bseg-lifnr.

t_data-hkont = t_bseg-hkont.

t_data-prctr = t_bseg-prctr.

t_data-kostl = t_bseg-kostl.

t_data-dmbtr = t_bseg-dmbtr.

2 REPLIES 2

Former Member
0 Kudos

hi,

do this way ...


loop at t_bseg.
  read table t_bkpf with key <Conditions>.
  if sy-subrc = 0.
   move-corresponding t_bkpf to t_data.
   move-corresponding t_bseg to t_data.
  endif.

* llarly read t_adrc, t_vaddress, t_vendor and the finally append
append t_data.
clear  t_data.
endloop. 

Former Member
0 Kudos

HI,

U need to change the two select statements while fetching the vendor address.............

SELECT lifnr adrnr FROM lfa1 INTO table t_adrnr

WHERE lifnr IN so_lifnr.

SELECT adrnr

street

str_suppl2

FROM adrc

INTO table t_vaddress

for all entries in t_adrnr

WHERE addrnumber EQ t_adrnr-adrnr.

loop at t_bkpf.

read table t_adrc index 1.

t_data-street = t_adrc-street.

t_data-street3 = t_adrc-str_suppl2.

t_data-city = t_adrc-city1.

t_data-region = t_adrc-region.

t_data-post_code1 = t_adrc-post_code1.

t_data-bldat = t_bkpf-bldat.

t_data-belnr = t_bkpf-belnr.

t_data-xblnr = t_bkpf-xblnr.

t_data-usnam = t_bkpf-usnam.

loop at t_bseg where belnr eq t_bkpf-belnr.

t_data-zuonr = t_bseg-zuonr.

t_data-sgtxt = t_bseg-sgtxt.

read table t_vendor with key lifnr = t_bseg-lifnr.

if sy-subrc eq 0.

t_data-vendorfname = t_vendor-namev.

t_data-vendorname1 = t_vendor-name2.

t_data-vendorname = t_vendor-name1.

t_data-ort01 = t_vendor-ort01.

t_data-regio = t_vendor-regio.

t_data-pstlz = t_vendor-pstlz.

endif.

read table t_adrnr with key lifr = t_bseg-lifnr.

if sy-subrc eq 0.

read table t_vaddress with key adrnr = t_adrnr-adrnr.

if sy-subrc eq 0.

t_data-vendorstreet = t_vaddress-street.

t_data-vendorstreet3 = t_vaddress-str_suppl2.

endif.

endif.

t_data-lifnr = t_bseg-lifnr.

t_data-hkont = t_bseg-hkont.

t_data-prctr = t_bseg-prctr.

t_data-kostl = t_bseg-kostl.

t_data-dmbtr = t_bseg-dmbtr.

append t_data.

endloop.

endloop.