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
511

sir

i want to upload the cin details in customer mater using bdc program so please sir give bdc coding related to cin details

ritu

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
484

Hi ritu,

U just have to call 3 fun mod.

For ex.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'ZPURCHASE'

KEEP = 'X'

USER = SY-UNAME.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ZPURCH'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

If u do this, ur data will be uploaded.

Please reward points if useful.

4 REPLIES 4
Read only

Former Member
0 Likes
485

Hi ritu,

U just have to call 3 fun mod.

For ex.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'ZPURCHASE'

KEEP = 'X'

USER = SY-UNAME.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ZPURCH'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

If u do this, ur data will be uploaded.

Please reward points if useful.

Read only

Former Member
0 Likes
484

&----


*& Report Z_XK01_BDC1 *

*& *

&----


*& *

*& *

&----


REPORT z_xk01_bdc1 LINE-SIZE 255 . .

TYPES : BEGIN OF t_disp ,

vendorno(9),

compcc(13),

purchorg(14),

accgroup(15),

title(7),

name(5),

country(8),

ordcurr(14),

END OF t_disp.

TYPES : BEGIN OF t_err,

msgtyp LIKE bdcmsgcoll-msgtyp,

l_mstring(250),

END OF t_err.

DATA: i_disp TYPE STANDARD TABLE OF t_disp,

wa_disp TYPE t_disp,

i_err TYPE STANDARD TABLE OF t_err,

wa_err TYPE t_err.

----


  • data definition

----


  • Batchinputdata of single transaction

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

  • messages of call transaction

DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

  • error session opened (' ' or 'X')

DATA: e_group_opened.

  • message texts

TABLES: t100.

PARAMETER : p_file1 LIKE ibipparms-path,

p_cmode LIKE ctu_params-dismode DEFAULT 'N'.

"A: show all dynpros

"E: show dynpro on error only

"N: do not display dynpro

*selction screen.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

IMPORTING

file_name = p_file1.

AT SELECTION-SCREEN ON p_file1.

IF p_file1 IS INITIAL .

MESSAGE 'FILE IS NOT FOUND' TYPE 'E'.

ENDIF.

START-OF-SELECTION.

PERFORM f_disp_file1.

END-OF-SELECTION.

PERFORM f_disp_errs.

&----


*& Form F_DISP_FILE1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_disp_file1 .

DATA: l_filename1 TYPE string.

MOVE p_file1 TO l_filename1.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = l_filename1

filetype = 'ASC'

has_field_separator = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

data_tab = i_disp

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

*? prepare BDC data

DELETE i_disp INDEX 1.

LOOP AT i_disp INTO wa_disp .

PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RF02K-LIFNR'

wa_disp-vendorno.

  • 'ztest_1'.

PERFORM bdc_field USING 'RF02K-BUKRS'

wa_disp-compcc.

  • '0001'.

PERFORM bdc_field USING 'RF02K-EKORG'

wa_disp-purchorg.

  • '0001'.

PERFORM bdc_field USING 'RF02K-KTOKK'

wa_disp-accgroup.

  • '0001'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-SPRAS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_field USING 'LFA1-ANRED'

  • wa_disp-title.

'Mr.'.

PERFORM bdc_field USING 'LFA1-NAME1'

wa_disp-name.

  • 'test name'.

PERFORM bdc_field USING 'LFA1-SORTL'

'TEST NAME'.

PERFORM bdc_field USING 'LFA1-LAND1'

wa_disp-country.

  • 'in'.

PERFORM bdc_field USING 'LFA1-SPRAS'

'en'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-AKONT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-ZTERM'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB5-MAHNA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=VW'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFM1-WAERS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPDA'.

PERFORM bdc_field USING 'LFM1-WAERS'

wa_disp-ordcurr.

  • 'inr'.

PERFORM bdc_transaction USING 'XK01'.

  • WRITE:/ WA_DISP-VendorNo,

  • WA_DISP-COMPCC,

  • WA_DISP-PURCHORG,

  • WA_DISP-ACCGROUP,

  • WA_DISP-title,

  • WA_DISP-name,

  • WA_DISP-country,

  • WA_DISP-ORDCURR.

clear: WA_disp.

Refresh bdcdata.

ENDLOOP.

ENDFORM. " F_DISP_FILE1

----


  • 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

&----


*& Form bdc_transaction

&----


  • text

----


  • -->P_0322 text

----


FORM bdc_transaction USING tcode.

DATA: l_mstring(480),

l_subrc LIKE sy-subrc.

REFRESH messtab.

CALL TRANSACTION tcode USING bdcdata

MODE p_cmode

UPDATE 'L'

MESSAGES INTO messtab.

l_subrc = sy-subrc.

  • IF SMALLLOG <> 'X'.

  • WRITE: / 'CALL_TRANSACTION',

  • TCODE,

  • 'returncode:'(I05),

  • L_SUBRC,

  • 'RECORD:',

  • SY-INDEX.

LOOP AT messtab.

SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra

AND arbgb = messtab-msgid

AND msgnr = messtab-msgnr.

IF sy-subrc = 0.

l_mstring = t100-text.

IF l_mstring CS '&1'.

REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.

REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.

REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.

REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.

ELSE.

REPLACE '&' WITH messtab-msgv1 INTO l_mstring.

REPLACE '&' WITH messtab-msgv2 INTO l_mstring.

REPLACE '&' WITH messtab-msgv3 INTO l_mstring.

REPLACE '&' WITH messtab-msgv4 INTO l_mstring.

ENDIF.

CONDENSE l_mstring.

  • WRITE: / messtab-msgtyp, l_mstring(250).

*? Send this errors to err internal table

wa_err-msgtyp = messtab-msgtyp.

wa_err-l_mstring = l_mstring.

APPEND wa_err TO i_err.

ELSE.

  • WRITE: / messtab.

ENDIF.

CLEAR: messtab, wa_err.

ENDLOOP.

SKIP.

  • ENDIF.

ENDFORM. " bdc_transaction

&----


*& Form f_disp_errs

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_disp_errs .

SORT i_err BY msgtyp.

LOOP AT i_err INTO wa_err.

AT FIRST.

WRITE : / text-002.

uline.

ENDAT.

AT NEW msgtyp.

IF wa_err-msgtyp = 'S'.

WRITE : / text-003.

uline.

ELSEIF wa_err-msgtyp = 'E'.

WRITE : / text-001.

uline.

ENDIF.

ENDAT.

WRITE : / wa_err-msgtyp, wa_err-l_mstring.

clear wa_err.

ENDLOOP.

ENDFORM. " f_disp_errs

Read only

Former Member
0 Likes
484

hai...

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'ZPURCHASE'

KEEP = 'X'

USER = SY-UNAME.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ZPURCH'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

do in this models ...

Read only

Former Member
0 Likes
484

Hi

i am sending you an example code folow these steps thats all

this is the total flow and explanation of each step

Example #1 - Change Vendor (Call Transaction Method)

To illustrate the “CALL TRANSACTION” methods, we will use the example to change vendors coming from a sequential file.

.

Transaction Recorder (SHDB)

Before you work with the Batch Input methods, you should know the purpose of the tool

Transaction Recorder.

Use:

You can use the transaction recorder to record a series of transactions and their screens.

Features:

You can use the recording to create

Data transfer programs that use batch input or CALL TRANSACTION

Batch input sessions

Test data

Function modules.

Note: It doesn’t record F1, F4 and Scrollbar movements

Upload Flat file from Presentation Server to SAP R/3

CALL FUNCTION ‘GUI_UPLOAD'

EXPORTING

CODEPAGE = ‘IBM'

FILENAME = P_UFILE

FILETYPE = 'DAT'

TABLES

DATA_TAB = INT_TAB

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10 .

IF SY-SUBRC NE 0.

MESSAGE E999(FR) WITH 'ERROR IN FILE UPLOAD'.

ENDIF.

Upload file from application server to SAP R/3

Open the the application server file

OPEN DATASET <dsn> FOR INPUT <mode>

Read the data from application server file

READ DATASET <dsn> INTO <wa>

And then close the application server file

CLOSE DATASET <dsn>

Definition- Declaring BDC Table

DATA: BDC_TAB LIKE STANDARD TABLE OF

BDCDATA INITIAL SIZE 6

WITH HEADER LINE .

1

1

1

\/

The internal table used to collect the transaction’s information must be declared “LIKE BDCDATA”.

Filling BDC Table – Method #1

FORM FILL_BDC_TAB.

REFRESH BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-PROGRAM = ‘SAPMF02K’.

BDC_TAB-DYNPRO = ‘01016’.

BDC_TAB-DYNBEGIN = ‘X’.

APPEND BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-FNAM = ‘RF02K-LIFNR’.

BDC_TAB-FVAL = ‘TEST1’.

APPEND BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-FNAM = ‘RF02K-D0010’.

BDC_TAB-FVAL = ‘X’.

APPEND BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-PROGRAM = ‘SAPMF02K’.

BDC_TAB-DYNPRO = ‘0110’.

BDC_TAB-DYNBEGIN = ‘X’.

APPEND BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-FNAM = ‘LFA1-STRAS’.

BDC_TAB-FVAL = ‘123 Main St.’.

APPEND BDC_TAB.

CLEAR BDC_TAB.

BDC_TAB-FNAM = ‘BDC_OKCODE’.

BDC_TAB-FVAL = ‘/11’.

APPEND BDC_TAB.

ENDFORM.

Filling BDC Table – Method #2

FORM FILL_BDC_TAB.

REFRESH BDC_TAB.

PERFORM POPULATE_BDC_TAB

USING:

‘1’ ‘SAPMF02K’ ‘0106’,

‘ ‘ ‘RF02K-LIFNR’ ‘TEST1’,

‘ ‘ ‘RF02K-D0010’ ‘X’,

‘1’ ‘SAPMF02K’ ‘0110’,

‘ ‘ ‘LFA1-STRAS’, ‘123 Main St.’,

‘ ‘ ‘BDC_OKCODE’, ‘/11’.

ENDFORM.

FORM POPULATE_BDC_TAB USING FLAG VAR1 VAR2.

CLEAR BDC_TAB.

IF FLAG = ‘1’.

BDC_TAB-PROGRAM = VAR1.

BDC_TAB-DYNPRO = VAR2..

BDC_TAB-DYNBEGIN = ‘X’.

ELSE.

BDC_TAB-FNAM = VAR1.

BDC_TAB-FVAL = VAR2.

ENDIF.

APPEND BDC_TAB.

ENDFORM.

This two subroutine method to fill the BDC table is preferable because the “POPULATE_BDC_TABLE” subroutine is reusable throughout all batch input programs.

********************************start********************************

REPORT Y180DM10.

step1

DATA: BDC_TAB LIKE STANDARD TABLE OF

BDCDATA INITIAL SIZE 6 WITH HEADER LINE.

INFILE(20) VALUE ‘/tmp/bc180_file4’.

step2

DATA: BEGIN OF INREC.

VENDNUM LIKE LFA1-LIFNR.

STREET LIKE LFA1-STRAS.

END OF INREC.

PARAMETERS: DISPMODE DEFAULT ‘A’,

UPDAMODE DEFAULT ‘S’.

START-OF-SELECTION.

step3

OPEN DATASET INFILE

FOR INPUT IN TEXT MODE.

DO

step4.

READ DATASET INFILE INTO INREC.

step5

IF SY-SUBRC < > 0. EXIT. ENDIF.

step6

PERFORM FILL_BDC_TAB.

step7

CALL TRANSACTION ‘FK02’

USING BDC_TAB

MODE DISPMODE

UPDATE UPDAMODE.

step8

IF SY-SUBRC < > 0.

WRITE: /‘ERROR’.

ENDIF.

ENDDO.

step9

CLOSE DATASET INFILE.

FORM FILL_BDC_TAB.

REFRESH BDC_TAB.

PERFORM POPULATE_BDC_TAB

USING:

‘1’ ‘SAPMF02K’ ‘0106’,

‘ ‘ ‘RF02K-LIFNR’ ‘INREC-VENDNUM’,

‘ ‘ ‘RF02K-D0010’ ‘X’,

‘1’ ‘SAPMF02K’ ‘0110’,

‘ ‘ ‘LFA1-STRAS’, ‘INREC-STREET’,

‘ ‘ ‘BDC_OKCODE’, ‘/11’.

ENDFORM.

FORM POPULATE_BDC_TAB USING FLAG VAR1 VAR2.

CLEAR BDC_TAB.

IF FLAG = ‘1’.

BDC_TAB-PROGRAM = VAR1.

BDC_TAB-DYNPRO = VAR2..

BDC_TAB-DYNBEGIN = ‘X’.

ELSE.

BDC_TAB-FNAM = VAR1.

BDC_TAB-FVAL = VAR2.

ENDIF.

APPEND BDC_TAB.

ENDFORM.

***************************end***********************************

Synchronous

DO.

………

PERFORM FILL_BDC_TAB.

CALL TRANSACTION ‘FK02’

USING BDC_TAB

MODE ‘N’

UPDATE ‘S’.

IF SY-SUBRC < > 0.

WRITE: /‘ERROR’.

ENDIF.

ENDDO.

With synchronous updating, we can check SY-SUBRC to determine the success of the transaction and the actual update to the database.

Asynchronous

DO.

………

PERFORM FILL_BDC_TAB.

CALL TRANSACTION ‘FK02’

USING BDC_TAB

MODE ‘N’

UPDATE ‘A’.

IF SY-SUBRC < > 0.

WRITE: /‘ERROR’.

ENDIF.

ENDDO.

With asynchronous updating, we can check SY-SUBRC to determine the success of the transaction only, not the actual update to the database.

Error Handling

1 Write an error report.

1

ERROR---- Send the record(s) in error to an error file.

1

1Create a batch input session with the record(s) in error.

To store error messages ( CALL TRANSACTION )

data: begin of Tab_Mess occurs 0.

include structure bdcmsgcoll.

data : end of Tab_Mess,

CALL TRANSACTION ‘FK02’ USING BDC_TAB MODE ‘N’ UPDATE ‘S’

MESSAGES INTO TAB_MESS.

IF SY-SUBRC NE 0.

WRITE: / Tab_MESS-TCODE, Tab_MESS-DYNUMB, Tab_MESS-MSGTYP ,

Tab_MESS-MSGID.

ENDIF.

reward if usefull