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: 

BDC for F-02

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

&----


*& 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.

7 REPLIES 7

Former Member
0 Kudos

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.

Former Member
0 Kudos

Swapna,

Can u please send the whole code so that I can verify where Iam going wrong.

Thanks for your reply.

Vardhini

Former Member
0 Kudos

&----


*& 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.

0 Kudos

Hi Vamsi,

what is the value of the field 'VAL' in Header & Item Internal Table?

Former Member
0 Kudos

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

0 Kudos

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

0 Kudos

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