09-26-2008 2:06 PM
Hi All,
I need to create a BDC for the transaction F-02. I got the recording done in SHDB.
I am quite new to work in BDC's - request you to help me -
Here I have to enter the Customer Account Number and Posting key in the first screen and its respective amount in the second screen - also the Customer a/c Number and the Posting key of the second line item.
If I loop my internal table - how to identify which a/c number and posting key has to be entered into the screen -
I need to complete this requirement quite soon - request you to help me..
Thanks
**********************************************
report ZBDC_REC
no standard page heading line-size 255.
include bdcrecx1.
start-of-selection.
perform open_group.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
'26.09.2008'.
perform bdc_field using 'BKPF-BLART'
'AB'.
perform bdc_field using 'BKPF-BUKRS'
'UNN'.
perform bdc_field using 'BKPF-BUDAT'
'26.09.2008'.
perform bdc_field using 'BKPF-MONAT'
'2'.
perform bdc_field using 'BKPF-WAERS'
'GBP'.
perform bdc_field using 'FS006-DOCID'
'*'.
perform bdc_field using 'RF05A-NEWBS'
'40'.
perform bdc_field using 'RF05A-NEWKO'
'250007'.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
'100'.
perform bdc_field using 'RF05A-NEWBS'
'18'.
perform bdc_field using 'RF05A-NEWKO'
'5318'.
perform bdc_field using 'DKACB-FMORE'
'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR'
'COBL-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-KOSTL'
'100553'.
perform bdc_field using 'COBL-AUFNR'
'506240'.
perform bdc_dynpro using 'SAPMF05A' '0301'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR'
'100'.
perform bdc_field using 'BSEG-ZFBDT'
'26.09.2008'.
perform bdc_transaction using 'F-02'.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_OKCODE'
'/EEND'.
perform bdc_field using 'BDC_CURSOR'
'BKPF-BLDAT'.
perform bdc_dynpro using 'SAPLSPO1' '0200'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_transaction using 'F-02'.
*************************
perform close_group.
Edited by: Jayavardhini A on Sep 26, 2008 3:06 PM
09-29-2008 11:49 AM
&----
*& Report ZBDC_F_02
*&
&----
*&Programmed by: Vamshi T
*& Reg: ECDK002345
&----
REPORT ZBDC_F_02.
Data: Begin of header occurs 0,
bldat(10), " bkpf-bldat
blart(2), " bkpf-blart
bukrs(4), " bkpf-bukrs
budat(10), " bkpf-budat
monat(2), " bkpf-monat
waers(3), " bkpf-wears
xblnr(30),
bktxt(60),
val1 type n,
end of header.
Data: Begin of item occurs 0,
newbs(2), " rf05a-newbs
newko(17), " rf05a-newko
wrbtr(13), " bseg-wrbtr
gsber(4), " cobl-gsber
sgtxt(50), " bseg-sgtxt
prctr(10), " cobl-prctr
kostl(10), " cobl-kostl
val2 type n,
end of item.
data: wa_header like header,
wa_item like item,
item1 like table of item with header line.
DATA: count type i, count1 type i, count2 type i.
DATA : w_file2 TYPE string,
w_file1 TYPE string.
PARAMETERS: filename LIKE rlgrap-filename.
PARAMETERS: filenam1 LIKE rlgrap-filename.
include zbdcrecx1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam1.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filenam1.
START-OF-SELECTION.
w_file2 = filename.
w_file1 = filenam1.
HEADER ************************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file2
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = header.
Item *******************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file1
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = item.
perform open_group.
loop at header into wa_header.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
wa_header-bldat.
perform bdc_field using 'BKPF-BLART'
wa_header-blart.
perform bdc_field using 'BKPF-BUKRS'
wa_header-bukrs.
perform bdc_field using 'BKPF-BUDAT'
wa_header-budat.
perform bdc_field using 'BKPF-MONAT'
wa_header-monat.
perform bdc_field using 'BKPF-WAERS'
wa_header-waers.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-BKTXT'
wa_header-bktxt.
clear item1[]. " please clear internal table here.
loop at item into wa_item where val2 = wa_header-val1.
append wa_item to item1.
clear wa_item.
count = count + 1.
endloop.
count1 = 1.
read table item1 into wa_item index count1.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
while count1 le count.
*read table item1 into wa_item index count1.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-wrbtr.
*perform bdc_field using 'BSEG-BUPLA'
'1000'.
*perform bdc_field using 'BSEG-VALUT'
'20.08.2008'.
perform bdc_field using 'BSEG-SGTXT'
wa_item-sgtxt.
count1 = count1 + 1.
read table item1 into wa_item index count1.
if sy-subrc eq 0.
wa_item = wa_item.
else.
clear wa_item.
endif.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
*if wa_item-kostl is not initial.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR'
'COBL-KOSTL'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-GSBER'
wa_item-gsber.
perform bdc_field using 'COBL-KOSTL'
wa_item-kostl.
*endif.
endwhile.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-BKTXT'
wa_header-bktxt.
perform bdc_transaction using 'F-02'.
CHCK THE CODE..ITS FOR HEADER N ITEM DATA...
for further queries on this ask me/....
clear wa_header.
endloop.
perform close_group.
09-26-2008 2:16 PM
Hi Jayavardhini,
I have worked on FB01. And it is observed tht FB01 and F-02 are the same. Try this BDC. Just check for the Screen numbers and Screen field names by going to the technical information.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWUM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
w_year = s_inprd-high+0(4).
w_month = s_inprd-high+4(2).
w_day = s_inprd-high+6(2).
CONCATENATE w_day
w_month
w_year
INTO w_condat
SEPARATED BY '.'.
PERFORM bdc_field USING 'BKPF-BLDAT'
w_condat.
PERFORM bdc_field USING 'BKPF-BUDAT'
w_condat.
PERFORM bdc_field USING 'BKPF-BLART'
'SA'.
PERFORM bdc_field USING 'BKPF-BUKRS'
'GROW'.
PERFORM bdc_field USING 'BKPF-WAERS'
'INR'.
PERFORM bdc_field USING 'RF05A-NEWBS'
'24'.
PERFORM bdc_field USING 'RF05A-NEWKO'
fs_details-lifnr.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
WRITE fs_details-betrg TO w_wrbtr.
PERFORM bdc_field USING 'BSEG-WRBTR'
w_wrbtr.
READ TABLE t_pa0001 INTO fs_pa0001
WITH KEY pernr = fs_details-pernr.
PERFORM bdc_field USING 'BSEG-GSBER'
fs_pa0001-gsber.
PERFORM bdc_field USING 'BSEG-SGTXT'
'Balance transfer from normal to special'(007).
PERFORM bdc_field USING 'RF05A-NEWBS'
'39'.
PERFORM bdc_field USING 'RF05A-NEWKO'
fs_details-lifnr.
PERFORM bdc_field USING 'RF05A-NEWUM'
fs_details-sglind.
PERFORM bdc_dynpro USING 'SAPMF05A' '0304'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
w_wrbtr.
READ TABLE t_pa0001 INTO fs_pa0001
WITH KEY pernr = fs_details-pernr.
PERFORM bdc_field USING 'BSEG-GSBER'
fs_pa0001-gsber.
PERFORM bdc_field USING 'RF05A-NEWBS'
'24'.
PERFORM bdc_field USING 'RF05A-NEWKO'
fs_details-lifnr.
PERFORM bdc_dynpro USING 'SAPMF05A' '0304'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'FB01' USING t_bdcdata
MODE 'A'
MESSAGES INTO t_messages.
Regards,
Swapna.
09-29-2008 11:44 AM
Swapna,
Can u please send the whole code so that I can verify where Iam going wrong.
Thanks for your reply.
Vardhini
09-29-2008 11:49 AM
&----
*& Report ZBDC_F_02
*&
&----
*&Programmed by: Vamshi T
*& Reg: ECDK002345
&----
REPORT ZBDC_F_02.
Data: Begin of header occurs 0,
bldat(10), " bkpf-bldat
blart(2), " bkpf-blart
bukrs(4), " bkpf-bukrs
budat(10), " bkpf-budat
monat(2), " bkpf-monat
waers(3), " bkpf-wears
xblnr(30),
bktxt(60),
val1 type n,
end of header.
Data: Begin of item occurs 0,
newbs(2), " rf05a-newbs
newko(17), " rf05a-newko
wrbtr(13), " bseg-wrbtr
gsber(4), " cobl-gsber
sgtxt(50), " bseg-sgtxt
prctr(10), " cobl-prctr
kostl(10), " cobl-kostl
val2 type n,
end of item.
data: wa_header like header,
wa_item like item,
item1 like table of item with header line.
DATA: count type i, count1 type i, count2 type i.
DATA : w_file2 TYPE string,
w_file1 TYPE string.
PARAMETERS: filename LIKE rlgrap-filename.
PARAMETERS: filenam1 LIKE rlgrap-filename.
include zbdcrecx1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam1.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filenam1.
START-OF-SELECTION.
w_file2 = filename.
w_file1 = filenam1.
HEADER ************************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file2
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = header.
Item *******************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file1
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = item.
perform open_group.
loop at header into wa_header.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
wa_header-bldat.
perform bdc_field using 'BKPF-BLART'
wa_header-blart.
perform bdc_field using 'BKPF-BUKRS'
wa_header-bukrs.
perform bdc_field using 'BKPF-BUDAT'
wa_header-budat.
perform bdc_field using 'BKPF-MONAT'
wa_header-monat.
perform bdc_field using 'BKPF-WAERS'
wa_header-waers.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-BKTXT'
wa_header-bktxt.
clear item1[]. " please clear internal table here.
loop at item into wa_item where val2 = wa_header-val1.
append wa_item to item1.
clear wa_item.
count = count + 1.
endloop.
count1 = 1.
read table item1 into wa_item index count1.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
while count1 le count.
*read table item1 into wa_item index count1.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-wrbtr.
*perform bdc_field using 'BSEG-BUPLA'
'1000'.
*perform bdc_field using 'BSEG-VALUT'
'20.08.2008'.
perform bdc_field using 'BSEG-SGTXT'
wa_item-sgtxt.
count1 = count1 + 1.
read table item1 into wa_item index count1.
if sy-subrc eq 0.
wa_item = wa_item.
else.
clear wa_item.
endif.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
*if wa_item-kostl is not initial.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR'
'COBL-KOSTL'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-GSBER'
wa_item-gsber.
perform bdc_field using 'COBL-KOSTL'
wa_item-kostl.
*endif.
endwhile.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-BKTXT'
wa_header-bktxt.
perform bdc_transaction using 'F-02'.
CHCK THE CODE..ITS FOR HEADER N ITEM DATA...
for further queries on this ask me/....
clear wa_header.
endloop.
perform close_group.
10-06-2008 12:30 PM
Hi Vamsi,
what is the value of the field 'VAL' in Header & Item Internal Table?
10-06-2008 1:11 PM
Hi Jayavardini,
The value of val in header vil b 1,2 ....
and for that particular header val2 for item...
ex.
header:
01.06.2008 KR 1000 01.06.2008 INR REF2 Op Bal of GL A/Cs 1
01.06.2008 KR 1000 01.06.2008 INR REF2 Op Bal of GL A/Cs 2
item:
line item 1:
40 73304000 500000.00 1001 Opening balance as on 2 1010013001 1
31 400001 100000.00 1001 Opening balance as on 2 1
31 400001 400000.00 1001 Opening balance as on 2 1
line item 2:
40 73304000 500000.00 1001 Opening balance as on 2 1010013001 2
31 400001 100000.00 1001 Opening balance as on 2 2
31 400001 400000.00 1001 Opening balance as on 2 2
Regards,
Vamshi
10-06-2008 3:27 PM
Hi Vamsi,
My issue is I dont have a flat file kind of thing,
I will be given only 25 customers and their Internal Orders, and the Cost center and the Accounting document will be a constant one for all the customers.
Now My work includes -
1) Create 25 selection-screen options for 25customers and their respective Internal Orders , I have to create a variant for this, and with this variant BDC has to work on its own.
Iam able to do this -
2) with each customer, I have to pick the remaining items like Amount, and based on the Debit/Credit Indicator I shud estimate my Positing key.
I have done with this part too -
3) Now I have got 2 internal tables - Header & Item, filled with appropriate Data.
Now I got strucked in this 'val' point.
Iam sending my code over here - can u please let me know how to proceed further
-
*&----
*& Report ZBDC
*&
&----
*&
*&
&----
REPORT ZBDC no standard page heading line-size 255.
*include bdcrecx1.
INCLUDE ZIBDC.
Tables: ZSCHOOL1,Zschool2.
Parameters: p_ARTS like RF05A-NEWKO,
p_ARTSIO like COBL-AUFNR,
p_design like RF05A-NEWKO,
p_DESIO like COBL-AUFNR.
DATA:len TYPE i,
text(30) type c.
Data: Begin of header occurs 0,
bldat Like bkpf-bldat,
blart Like bkpf-blart,
bukrs Like bkpf-bukrs,
budat Like bkpf-budat,
monat Like bkpf-monat,
waers Like bkpf-waers,
xblnr Like BSid-xblnr,
SGTXT like BSID-SGTXT,
wrbtr like BSID-wrbtr,
val1 type n,
end of header.
Data: Begin of item occurs 0,
Kunnr like Bseg-Kunnr,
newbs like rf05a-newbs,
newko like rf05a-newko,
SHKZG LIKE BSID-SHKZG,
wrbtr like bseg-wrbtr,
sgtxt like bseg-sgtxt,
aufnr like bseg-aufnr,
kostl like cobl-kostl,
Debit Like Bsid-wrbtr,
Credit Like Bsid-Wrbtr,
amount like bseg-wrbtr,
val2 type n,
end of item.
data: wa_header like header,
wa_item like item,
item1 like table of item with header line,
count type i,
count1 type i,
count2 type i.
Data: Begin of Data Occurs 0,
ADOC like RF05A-NEWKO,
AIO like COBL-AUFNR,
end of Data.
data: begin of itab occurs 0,
kunnr like BSID-Kunnr,
bldat Like bkpf-bldat,
blart Like bkpf-blart,
bukrs Like bkpf-bukrs,
budat Like bkpf-budat,
SHKZG LIKE BSID-SHKZG,
WRBTR LIKE BSID-WRBTR,
monat Like bkpf-monat,
waers Like bkpf-waers,
xblnr Like BSid-xblnr,
SGTXT like BSID-SGTXT,
Debit Like Bsid-wrbtr,
Credit Like Bsid-Wrbtr,
amount like bseg-wrbtr,
end of itab.
DATA: V_MODE TYPE C VALUE 'N',
V_UPDATE TYPE C VALUE 'S'.
DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
data: Begin of itab1 occurs 0,
KUNNR Like BSID-KUNNR,
AUFNR LIKE COBL-AUFNR,
end of itab1.
data: Begin of itab2 occurs 0,
KUNNR Like BSID-KUNNR,
BLDAT LIKE BSID-BLDAT,
SHKZG LIKE BSID-SHKZG,
WRBTR like BSID-WRBTR,
end of itab2.
data: Begin of itab3 occurs 0,
GLCODE LIKE RF05A-NEWKO,
KUNNR Like BSID-KUNNR,
BLDAT LIKE BSID-BLDAT,
SHKZG LIKE BSID-SHKZG,
WRBTR like BSID-WRBTR,
Pkey LIKe BSID-BSCHL,
end of itab3.
data: Days like T009B-BUTAG,
Month like T009B-BUMON,
Year like T009B-BDATJ,
CREDIT like BSID-WRBTR,
DEBIT LIKE BSID-WRBTR,
AMOUNT LIKE BSID-WRBTR.
at selection-screen.
START-OF-SELECTION.
CLEAR: text.
loop at itab1.
itab1-kunnr = P_ARTS+7(10).
itab1-AUFNR = p_ARTSIO.
APPEND itab1.
itab1-Kunnr = p_design+7(10).
itab1-aufnr = p_desIO.
APPEND itab1.
endloop.
Select BUKRS KUNNR BLART BLDAT SHKZG WRBTR MONAT WAERS SGTXT
into corresponding fields of table ITAB
FROM BSID
for all entries in ITAB1
where Kunnr = ITAB1-KUNNR
and BLART = 'RV'.
If sy-subrc EQ 0.
Data: Lin(99) Type n.
describe Table ITAB Lines lin.
Month = sy-datum+4(2).
Year = sy-datum+0(4).
Clear CREDIT.
CLEAR DEBIT.
CLEAR AMOUNt.
loop at ITAB.
Filling HEADER Data
If sy-subrc EQ 0.
HEADER-BUKRS = ITAB-BUKRS.
HEADER-BLART = ITAB-BLART.
HEADER-BLDAT = ITAB-BLDAT.
HEADER-MONAT = ITAB-MONAT.
HEADER-WAERS = ITAB-WAERS.
HEADER-SGTXT = ITAB-SGTXT.
ITEM-NEWKO = '00000000000250007'.
ITEM-SHKZG = ITAB-SHKZG.
ITEM-WRBTR = ITAB-WRBTR.
ITEM-KOSTL = '0000100553'.
ITEM-AUFNR = ITAB1-AUFNR.
IF item-SHKZG = 'S'.
ITEM-NEWBS = '50'.
item-CREDIT = itab-CREDIT + ITab-wrbtr.
elseif item-SHKZG = 'H'.
ITEM-NEWBS = '40'.
item-DEBIT = itab-DEBIT + ITab-WRBTR.
Endif.
Compute item-Amount = ( item-amount ) + ( item-debit - item-credit ).
AT last.
item-NEWKO = itab-Kunnr.
Item-Amount = item-Amount.
IF item-Amount CO '-'.
Item-NEWBS = '18'.
else.
Item-NEWBs = '08'.
endif.
Endat.
APPEND HEADER.
APPEND ITEM.
Clear: Debit, Credit.
endif.
endloop.
ENDIF.
Loop at HEADER into wa_header.
REFRESH BDCDATA.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
wa_HEADER-BLDAT.
perform bdc_field using 'BKPF-BLART'
WA_HEADER-BLART.
perform bdc_field using 'BKPF-BUKRS'
WA_HEADER-BUKRS.
perform bdc_field using 'BKPF-BUDAT'
WA_HEADER-BUDAT.
perform bdc_field using 'BKPF-MONAT'
WA_HEADER-MONAT.
perform bdc_field using 'BKPF-WAERS'
wa_header-waers.
perform bdc_field using 'FS006-DOCID'
'*'.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-BKTXT'
wa_header-SGtxt.
clear item1[]. " please clear internal table here.
loop at item into wa_item where val2 = wa_header-val1.
append wa_item to item1.
clear wa_item.
count = count + 1.
endloop.
count1 = 1.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
while count1 le count.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-wrbtr.
perform bdc_field using 'BSEG-SGTXT'
wa_item-sgtxt.
count1 = count1 + 1.
read table item1 into wa_item index count1.
if sy-subrc eq 0.
wa_item = wa_item.
else.
clear wa_item.
endif.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
perform bdc_field using 'DKACB-FMORE'
'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR'
'COBL-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-KOSTL'
'100553'.
perform bdc_field using 'COBL-AUFNR'
wa_item-AUFNR.
endwhile.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWBS'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BKPF-XBLNR'
wa_header-xblnr.
perform bdc_field using 'BKPF-SGTXT'
wa_header-SGtxt.
PERFORM INSERT_TRANSACTION USING 'F-02'.
clear wa_header.
*endat.
endloop.
CLOSE DATASET dir.
----
Start new screen *
*----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
-
Thanks,
Vardhini
10-22-2008 12:25 PM
Vamsi,
I have a doubt on your Test Data.
As your Header file consists BLDAT and BUDAT but not Item file.
But BLDAT and BUDAT will differ with each and every lineitem right ??
How come you are going with only one date??
please clear the issue
Thanks