Application Development and Automation 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: 
Read only

BDC

Former Member
0 Likes
231

REPORT zcbdc_f02_n5

NO STANDARD PAGE HEADING LINE-SIZE 255.

DATA : BEGIN OF itab3 OCCURS 0,

bldat(010) TYPE c,

budat(010) TYPE c,

blart(002) TYPE c,

monat(002) TYPE c,

waers(003) TYPE c,

xblnr(016) TYPE c,

newbs(002) TYPE c,

newko(017) TYPE c,

wrbtr1(013) TYPE c,

bupla(004) TYPE c,

zuonr(018) TYPE c,

sgtxt(050) TYPE c,

newbs1(002) TYPE c,

newko1(017) TYPE c,

gsber1(006) TYPE c,

wrbtr2(013) TYPE c,

newbs2(002) TYPE c,

newko2(017) TYPE c,

gsber2(006) TYPE c,

wrbtr3(013) TYPE c,

newbs3(002) TYPE c,

newko3(017) TYPE c,

gsber3(006) TYPE c,

wrbtr4(013) TYPE c,

newbs4(002) TYPE c,

newko4(017) TYPE c,

gsber4(006) TYPE c,

wrbtr5(013) TYPE c,

newbs5(002) TYPE c,

newko5(017) TYPE c,

gsber5(006) TYPE c,

wrbtr6(013) TYPE c,

newbs6(002) TYPE c,

newko6(017) TYPE c,

gsber6(006) TYPE c,

name1(035) TYPE c,

name2(035) TYPE c,

name3(035) TYPE c,

ort01(035) TYPE c,

land1(003) TYPE c,

banks(003) TYPE c,

wrbtr7(013) TYPE c,

gsber7(006) TYPE c,

END OF itab3.

DATA : bdcdata LIKE bdcdata OCCURS 1 WITH HEADER LINE.

DATA : count(02) TYPE c,

count1(02) TYPE c,

text(013) TYPE c,

text1(013) TYPE c,

text3(013) TYPE c,

text4(013) TYPE c.

FIELD-SYMBOLS : <f1>,

<f2>,

<f3>,

<f4>.

START-OF-SELECTION.

PERFORM upload.

LOOP AT itab3.

REFRESH: bdcdata.

CLEAR : bdcdata.

CLEAR : count, count1.

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'

itab3-bldat.

PERFORM bdc_field USING 'BKPF-BLART'

itab3-blart.

PERFORM bdc_field USING 'BKPF-BUKRS'

'1800'.

PERFORM bdc_field USING 'BKPF-BUDAT'

itab3-budat.

PERFORM bdc_field USING 'BKPF-MONAT'

itab3-monat.

PERFORM bdc_field USING 'BKPF-WAERS'

itab3-waers.

PERFORM bdc_field USING 'BKPF-XBLNR'

itab3-xblnr.

PERFORM bdc_field USING 'FS006-DOCID'

'*'.

PERFORM bdc_field USING 'RF05A-NEWBS'

itab3-newbs.

PERFORM bdc_field USING 'RF05A-NEWKO'

itab3-newko.

IF itab3-newbs IS NOT INITIAL.

count = 1.

IF itab3-newbs1 EQ itab3-newbs AND itab3-newbs1 IS NOT INITIAL.

count = count + 1.

IF itab3-newbs2 EQ itab3-newbs1 AND itab3-newbs2 IS NOT

INITIAL.

count = count + 1.

IF itab3-newbs3 EQ itab3-newbs2 AND itab3-newbs3 IS NOT

INITIAL.

count = count + 1.

IF itab3-newbs4 EQ itab3-newbs3 AND itab3-newbs4 IS NOT

INITIAL.

count = count + 1.

IF itab3-newbs5 EQ itab3-newbs4 AND itab3-newbs5 IS NOT

INITIAL.

count = count + 1.

IF itab3-newbs6 EQ itab3-newbs5 AND itab3-newbs6 IS NOT

INITIAL.

count = count + 1.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

DO count TIMES.

count1 = count1 + 1.

PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF05A-NEWKO'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

CONCATENATE 'itab3-wrbtr' count1 INTO text.

ASSIGN (text) TO <f1>.

PERFORM bdc_field USING 'BSEG-WRBTR'

<f1>.

CLEAR text.

PERFORM bdc_field USING 'BSEG-BUPLA'

'1800'.

PERFORM bdc_field USING 'BSEG-ZUONR'

itab3-zuonr.

PERFORM bdc_field USING 'BSEG-SGTXT'

itab3-sgtxt.

CONCATENATE 'itab3-NEWBS' count1 INTO text3.

ASSIGN (text3) TO <f3>.

IF <f3> IS NOT INITIAL.

PERFORM bdc_field USING 'RF05A-NEWBS'

<f3>.

CLEAR text3.

ELSE.

MOVE itab3-newbs6 TO <f3>.

PERFORM bdc_field USING 'RF05A-NEWBS'

<f3>.

CLEAR text3.

ENDIF.

CONCATENATE 'itab3-NEWKO' count1 INTO text4.

ASSIGN (text4) TO <f4>.

IF <f4> IS NOT INITIAL.

PERFORM bdc_field USING 'RF05A-NEWKO'

<f4>.

CLEAR text4.

ELSE.

MOVE itab3-newko6 TO <f4>.

PERFORM bdc_field USING 'RF05A-NEWKO'

<f4>.

CLEAR text4.

ENDIF.

PERFORM bdc_field USING 'DKACB-FMORE'

'X'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.

PERFORM bdc_field USING 'BDC_CURSOR'

'COBL-GSBER'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTE'.

CONCATENATE 'itab3-gsber' count1 INTO text1.

ASSIGN (text1) TO <f2>.

IF <f2> IS NOT INITIAL.

PERFORM bdc_field USING 'COBL-GSBER'

<f2>.

CLEAR text1.

ELSE.

MOVE itab3-gsber6 TO <f2>.

PERFORM bdc_field USING 'COBL-GSBER'

<f2>.

ENDIF.

ENDDO.

PERFORM bdc_dynpro USING 'SAPLFCPD' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'BSEC-ORT01'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BSEC-NAME1'

itab3-name1.

PERFORM bdc_field USING 'BSEC-NAME2'

itab3-name2.

PERFORM bdc_field USING 'BSEC-NAME3'

itab3-name3.

PERFORM bdc_field USING 'BSEC-ORT01'

itab3-ort01.

PERFORM bdc_field USING 'BSEC-LAND1'

itab3-land1.

PERFORM bdc_field USING 'BSEC-BANKS'

itab3-banks.

PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.

PERFORM bdc_field USING 'BDC_CURSOR'

'BSEG-SGTXT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BSEG-WRBTR'

itab3-wrbtr7.

PERFORM bdc_field USING 'BSEG-MWSKZ'

'**'.

PERFORM bdc_field USING 'BSEG-BUPLA'

'1800'.

PERFORM bdc_field USING 'BSEG-GSBER'

itab3-gsber7.

PERFORM bdc_field USING 'BSEG-ZUONR'

itab3-zuonr.

PERFORM bdc_field USING 'BSEG-SGTXT'

itab3-sgtxt.

PERFORM bdc_dynpro USING 'SAPLFCPD' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'BSEC-ANRED'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BSEC-NAME1'

itab3-name1.

PERFORM bdc_field USING 'BSEC-NAME2'

itab3-name2.

PERFORM bdc_field USING 'BSEC-NAME3'

itab3-name3.

PERFORM bdc_field USING 'BSEC-ORT01'

itab3-ort01.

PERFORM bdc_field USING 'BSEC-LAND1'

itab3-land1.

PERFORM bdc_field USING 'BSEC-BANKS'

itab3-banks.

PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.

PERFORM bdc_field USING 'BDC_CURSOR'

'BSEG-WRBTR4'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=AB'.

PERFORM bdc_field USING 'BSEG-WRBTR'

itab3-wrbtr7.

PERFORM bdc_field USING 'BSEG-MWSKZ'

'**'.

PERFORM bdc_field USING 'BSEG-BUPLA'

'1800'.

PERFORM bdc_field USING 'BSEG-GSBER'

itab3-gsber7.

PERFORM bdc_field USING 'BSEG-ZUONR'

itab3-zuonr.

PERFORM bdc_field USING 'BSEG-SGTXT'

itab3-sgtxt.

PERFORM bdc_dynpro USING 'SAPMF05A' '0700'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF05A-NEWBS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

CALL TRANSACTION 'F-02' USING bdcdata MODE 'A'.

ENDLOOP.

&----


*& Form upload

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM upload .

CALL FUNCTION 'UPLOAD'

EXPORTING

  • CODEPAGE = ' '

filename = 'c:\'

filetype = 'DAT'

  • ITEM = ' '

  • FILEMASK_MASK = ' '

  • FILEMASK_TEXT = ' '

  • FILETYPE_NO_CHANGE = ' '

  • FILEMASK_ALL = ' '

  • FILETYPE_NO_SHOW = ' '

  • LINE_EXIT = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • SILENT = 'S'

  • IMPORTING

  • FILESIZE =

  • CANCEL =

  • ACT_FILENAME =

  • ACT_FILETYPE =

TABLES

data_tab = itab3

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • INVALID_TABLE_WIDTH = 2

  • INVALID_TYPE = 3

  • NO_BATCH = 4

  • UNKNOWN_ERROR = 5

  • GUI_REFUSE_FILETRANSFER = 6

  • OTHERS = 7

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " upload

*&----


*

*& Form bdc_dynpro

*&----


*

  • text

*----


*

  • -->P_0015 text

  • -->P_0016 text

*----


*

FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

CLEAR bdcdata.

ENDFORM. " bdc_dynpro

*&----


*

*& Form bdc_field

*&----


*

  • text

*----


*

  • -->P_0740 text

  • -->P_0741 text

*----


*

FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

CLEAR bdcdata.

ENDFORM. "bdc_field

This is the Bdc i developed for f-02 but for this program my flat file should be in one line (header and item).now i want header should appear once and based on the debit/ credit the line items must run .my flat file should be in multiple rows

1 REPLY 1
Read only

Former Member
0 Likes
197

use control break statement

on change <header value>

endon.

at end

endat.