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

standard BDC program

Former Member
0 Likes
1,301

Can anybody tell me what are the standard BDC program provided by sap for t code like mm01, va01, xd01 etc ?

3 REPLIES 3
Read only

former_member609120
Contributor
0 Likes
759

Go to TCode SHDB..do the recording for the transaction you want..save the recording..then select it and click display program..you can then use this program

Read only

Former Member
0 Likes
759

Check these threads..U can find sample program.

here with i am sending code in two ways using session method

i have selected 2 views

1.basic data 1

2.basic data 2

flat file structure.

ukmatrl58 ea matrlno58

ukmatrl59 ea matrlno59

ukmatrl59 ea matrlno59

codes:

1. by using include RSBDCX1

2.without using include rsbdcx1.

report ZGEMS123

no standard page heading line-size 255.

include zbdcrecx147.

data : c_file type string.

data : begin of itab occurs 0,

matnr(18),

meins(3),

maktx(40),

end of itab.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE

.

start-of-selection.

move p_file to c_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = c_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

DAT_MODE = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

CHECK_BOM = ' '

VIRUS_SCAN_PROFILE =

NO_AUTH_CHECK = ' '

IMPORTING

FILELENGTH =

HEADER =

TABLES

DATA_TAB = itab

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.

perform open_group.

loop at itab.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

itab-matnr.

perform bdc_field using 'RMMG1-MBRSH'

'C'.

perform bdc_field using 'RMMG1-MTART'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_field using 'BDC_CURSOR'

'T006A-MSEHT'.

perform bdc_field using 'MARA-MEINS'

itab-meins.

perform bdc_field using 'MARA-MTPOS_MARA'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform bdc_transaction using 'MM01'.

endloop.

perform close_group.

write : /'success'.

W/O USING INCLUDE

&----


*& Report ZGEMS1234

*&

&----


*&

*&

&----


REPORT ZGEMS1234 no standard page heading line-size 137.

internal table to obtain data from flat file

data : begin of itab occurs 0,

matnr(18),

meins(3),

maktx(40),

end of itab.

Bdc table

data : I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

data : c_file type string.

to access file name

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK B1.

to provide f4 help to file name

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE

.

start-of-selection.

move p_file to c_file.

*uploading data from flat file

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = c_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

DAT_MODE = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

CHECK_BOM = ' '

VIRUS_SCAN_PROFILE =

NO_AUTH_CHECK = ' '

IMPORTING

FILELENGTH =

HEADER =

TABLES

DATA_TAB = itab

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.

perform open_group.

loop at itab.

CLEAR I_BDCDATA.

REFRESH I_BDCDATA.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

itab-matnr.

perform bdc_field using 'RMMG1-MBRSH'

'C'.

perform bdc_field using 'RMMG1-MTART'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_field using 'BDC_CURSOR'

'T006A-MSEHT'.

perform bdc_field using 'MARA-MEINS'

itab-meins.

perform bdc_field using 'MARA-MTPOS_MARA'

'VOLL'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'MAKT-MAKTX'.

perform bdc_field using 'MAKT-MAKTX'

itab-maktx.

perform bdc_dynpro using 'SAPLSPO1' '0300'.

perform bdc_field using 'BDC_OKCODE'

'=YES'.

perform BDC_INSERT.

endloop.

perform close_group.

write : /'success'.

&----


*& Form open_group

&----


text

-


--> p1 text

<-- p2 text

-


FORM open_group .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

DEST = FILLER8

GROUP = 'UMAKANTH'

HOLDDATE = FILLER8

KEEP = 'X'

USER = SY-UNAME

RECORD = FILLER1

PROG = SY-CPROG

IMPORTING

QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11

.

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. " open_group

&----


*& Form BDC_INSERT

&----


text

-


--> p1 text

<-- p2 text

-


FORM BDC_INSERT .

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

POST_LOCAL = NOVBLOCAL

PRINTING = NOPRINT

SIMUBATCH = ' '

CTUPARAMS = ' '

TABLES

DYNPROTAB = I_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 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. " BDC_INSERT

&----


*& Form close_group

&----


text

-


--> p1 text

<-- p2 text

-


FORM close_group .

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3

.

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. " close_group

&----


*& Form bdc_dynpro

&----


text

-


-->P_0169 text

-->P_0170 text

-


FORM bdc_dynpro USING P_PGM P_SCR.

I_BDCDATA-PROGRAM = P_PGM.

I_BDCDATA-DYNPRO = P_SCR.

I_BDCDATA-DYNBEGIN = 'X'.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " bdc_dynpro

&----


*& Form bdc_field

&----


text

-


-->P_0174 text

-->P_0175 text

-


FORM bdc_field USING P_FNAM P_FVAL.

I_BDCDATA-FNAM = P_FNAM.

I_BDCDATA-FVAL = P_FVAL.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " bdc_field

BDC for VA01

I prefer to load the Sales Orders by a BAPI thro LSMW using following object:

codeBusiness object BUS2032 Sales order

Method CREATEFROMDAT2 Sales order: Create Sales Order

Message type SALESORDER_CREATEFROMDAT2 Sales order: Create Sales Order

Basic type SALESORDER_CREATEFROMDAT2 Sales order: Create Sales Order[/code]

BDC for XD01

hope this code will help you.

ABAP BDC SAMPLE CODE XD01

-


Table/Structure declarations. *

-


TABLES : KNA1. "Customer master

-


Constants declarations. *

-


CONSTANTS : C_MODE VALUE 'A',

C_UPDATE VALUE 'S',

C_X VALUE 'X',

C_SESS TYPE APQI-GROUPID VALUE 'ZCUSTOMER', "Session Name

C_XD01 LIKE TSTC-TCODE VALUE 'XD01'.

-


Variable declarations. *

-


DATA : V_FNAME(15) VALUE SPACE, " Name of file to be created

V_FAILREC TYPE I, " No of failed records

V_MSG(255), " Message Text

V_ERRREC TYPE I, " No of failed records

V_LINES TYPE I, " No of records

V_BANKS(15), " Table column BANKS

V_BANKL(15), " Table column BANKL

V_BANKN(15), " Table column BANKN

V_TIDX(2) TYPE N. " Table row index

-


FLAG DECLARATIONS

-


DATA : FG_DATA_EXIST VALUE 'X', " Check for data

FG_SESSION_OPEN VALUE ' '. " Check for Session Open

-


MACRO DEFINITIONS

-


Macro for BANKS

DEFINE BANKS.

CLEAR V_BANKS.

CONCATENATE 'KNBK-BANKS(' &1 ')' INTO V_BANKS.

CONDENSE V_BANKS.

END-OF-DEFINITION.

Macro for BANKL

DEFINE BANKL.

CLEAR V_BANKL.

CONCATENATE 'KNBK-BANKL(' &1 ')' INTO V_BANKL.

CONDENSE V_BANKL.

END-OF-DEFINITION.

Macro for BANKN

DEFINE BANKN.

CLEAR V_BANKN.

CONCATENATE 'KNBK-BANKN(' &1 ')' INTO V_BANKN.

CONDENSE V_BANKN.

END-OF-DEFINITION.

-


Structures / Internal table declarations *

-


Structure to hold BDC data

TYPES : BEGIN OF T_BDCTABLE.

INCLUDE STRUCTURE BDCDATA.

TYPES END OF T_BDCTABLE.

Structure to trap BDC messages

TYPES : BEGIN OF T_MSG.

INCLUDE STRUCTURE BDCMSGCOLL.

TYPES : END OF T_MSG.

Structure to trap ERROR messages

TYPES : BEGIN OF T_ERR_MSG,

MESSAGE(255),

END OF T_ERR_MSG.

*--Internal table to store flat file data

DATA : BEGIN OF IT_KNA1 OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

KTOKD LIKE T077D-KTOKD,

NAME1 LIKE KNA1-NAME1,

SORTL LIKE KNA1-SORTL,

ORT01 LIKE KNA1-ORT01,

PSTLZ LIKE KNA1-PSTLZ,

LAND1 LIKE KNA1-LAND1,

SPRAS LIKE KNA1-SPRAS,

LZONE LIKE KNA1-LZONE,

END OF IT_KNA1.

*--Internal table to store bank details

DATA : BEGIN OF IT_BANK OCCURS 0,

BANKS LIKE KNBK-BANKS,

BANKL LIKE KNBK-BANKL,

BANKN LIKE KNBK-BANKN,

END OF IT_BANK.

Internal table to hold BDC data

DATA: IT_BDCDATA TYPE STANDARD TABLE OF T_BDCTABLE WITH HEADER LINE,

Internal Table to store ALL messages

IT_MSG TYPE STANDARD TABLE OF T_MSG WITH HEADER LINE,

Internal Table to store error messages

IT_ERR_MSG TYPE STANDARD TABLE OF T_ERR_MSG WITH HEADER LINE.

-


Selection Screen. *

-


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FLNAME(15) OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : R_LIST RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN COMMENT 5(20) TEXT-003.

PARAMETERS : R_SESS RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN COMMENT 30(20) TEXT-004.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B2.

-


Event:Initialization *

-


INITIALIZATION.

-


AT Selection Screen. *

-


AT SELECTION-SCREEN.

-


Event: Start-of-Selection *

-


START-OF-SELECTION.

V_FNAME = P_FLNAME.

PERFORM GET_DATA.

PERFORM GET_BANKDATA.

PERFORM GENERATE_DATASET.

-


Event: End-of-Selection *

-


END-OF-SELECTION.

IF FG_DATA_EXIST = ' '.

MESSAGE I010 WITH TEXT-009.

EXIT.

ENDIF.

PERFORM GENERATE_BDCDATA.

PERFORM DISPLAY_ERR_RECS.

-


Event: top-of-page

-


TOP-OF-PAGE.

//////////////////////////////////////////////////////////////////////

*

FORM DEFINITIONS *

*

*//////////////////////////////////////////////////////////////////////

&----


*& Form get_data

&----


Subroutine to get the data from mard

-


--> p1 text

<-- p2 text

-


FORM GET_DATA.

CALL FUNCTION 'UPLOAD'

EXPORTING

CODEPAGE = ' '

FILENAME = 'C:\XD01.TXT'

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 = IT_KNA1

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.

IF IT_KNA1[] IS INITIAL.

FG_DATA_EXIST = ' '.

ENDIF.

ENDFORM. " get_data

&----


*& Form GENERATE_DATASET

&----


text

-


--> p1 text

<-- p2 text

-


FORM GENERATE_DATASET.

MESSAGE I010 WITH 'OPENING FILE IN APPLICATION SERVER'.

**--Creating a data set in application server

OPEN DATASET V_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

**---Transfering data from internal table to dataset

MESSAGE I010 WITH 'TRANSFERING DATA FROM INETERAL TABLE TO THE FILE'.

LOOP AT IT_KNA1.

TRANSFER IT_KNA1 TO V_FNAME.

ENDLOOP.

**--Closing the dataset

MESSAGE I010 WITH 'CLOSING THE FILE'.

CLOSE DATASET V_FNAME.

ENDFORM. " GENERATE_DATASET

&----


*& Form BDC_DYNPRO

&----


text

-


-->P_0467 text

-->P_0468 text

-


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR IT_BDCDATA.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

ENDFORM.

&----


*& Form BDC_FIELD

&----


text

-


-->P_0472 text

-->P_0473 text

-


FORM BDC_FIELD USING FNAM FVAL.

IF NOT FVAL IS INITIAL.

CLEAR IT_BDCDATA.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

ENDIF.

ENDFORM.

&----


*& Form GENERATE_BDCDATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM GENERATE_BDCDATA.

REFRESH IT_KNA1.

Opening dataset for reading

OPEN DATASET V_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.

Reading the file from application server

DO.

CLEAR: IT_KNA1,IT_BDCDATA.

REFRESH IT_BDCDATA.

READ DATASET V_FNAME INTO IT_KNA1.

IF SY-SUBRC <> 0.

EXIT.

ELSE.

Populate BDC Data for Initial Screen

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0100',

BDC_FIELD USING 'BDC_CURSOR' 'RF02D-KUNNR',

BDC_FIELD USING 'BDC_OKCODE' '/00',

BDC_FIELD USING 'RF02D-KUNNR' IT_KNA1-KUNNR,

BDC_FIELD USING 'RF02D-KTOKD' IT_KNA1-KTOKD.

Populate BDC Data for Second Screen

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0110',

BDC_FIELD USING 'BDC_CURSOR' 'KNA1-NAME1',

BDC_FIELD USING 'BDC_OKCODE' '/00',

BDC_FIELD USING 'KNA1-NAME1' IT_KNA1-NAME1,

BDC_FIELD USING 'KNA1-SORTL' IT_KNA1-SORTL,

BDC_FIELD USING 'KNA1-ORT01' IT_KNA1-ORT01,

BDC_FIELD USING 'KNA1-PSTLZ' IT_KNA1-PSTLZ,

BDC_FIELD USING 'KNA1-LAND1' IT_KNA1-LAND1,

BDC_FIELD USING 'KNA1-SPRAS' IT_KNA1-SPRAS.

Populate BDC Data for Third Screen

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0120',

BDC_FIELD USING 'BDC_CURSOR' 'KNA1-LZONE',

BDC_FIELD USING 'BDC_OKCODE' '/00',

BDC_FIELD USING 'KNA1-LZONE' IT_KNA1-LZONE.

Populate BDC Data for Fourth Screen

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0125',

BDC_FIELD USING 'BDC_CURSOR' 'KNA1-NIELS',

BDC_FIELD USING 'BDC_OKCODE' '/00'.

Populate BDC Data for Table control for bank details.

V_TIDX = '01'.

LOOP AT IT_BANK.

BANKS V_TIDX.

BANKL V_TIDX.

BANKN V_TIDX.

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0130',

BDC_FIELD USING 'BDC_CURSOR' V_BANKN,

BDC_FIELD USING 'BDC_OKCODE' '=ENTR',

BDC_FIELD USING V_BANKS IT_BANK-BANKS,

BDC_FIELD USING V_BANKL IT_BANK-BANKL,

BDC_FIELD USING V_BANKN IT_BANK-BANKN.

V_TIDX = V_TIDX + 1.

ENDLOOP.

PERFORM : BDC_DYNPRO USING 'SAPMF02D' '0130',

BDC_FIELD USING 'BDC_CURSOR' V_BANKS,

BDC_FIELD USING 'BDC_OKCODE' '=UPDA'.

CALL TRANSACTION C_XD01 USING IT_BDCDATA

MODE C_MODE

UPDATE C_UPDATE

MESSAGES INTO IT_MSG.

IF SY-SUBRC 0.

*--In case of error list display

IF R_LIST = C_X.

V_ERRREC = V_ERRREC + 1.

PERFORM FORMAT_MESSAGE.

IT_ERR_MSG-MESSAGE = V_MSG.

APPEND IT_ERR_MSG.

CLEAR : V_MSG,IT_ERR_MSG.

ENDIF.

*--In case of session log

IF R_SESS = C_X.

In case of transaction fails.

IF FG_SESSION_OPEN = ' '.

FG_SESSION_OPEN = C_X.

PERFORM BDC_OPEN_GROUP.

ENDIF. " IF FG_SESSION_OPEN = ' '.

Insert BDC Data..

PERFORM BDC_INSERT_DATA.

ENDIF. " IF R_SESS = C_X.

ENDIF. " IF SY-SUBRC 0.

ENDIF. " IF SY-SUBRC 0.

ENDDO.

Closing the dataset

CLOSE DATASET V_FNAME.

Close the session if opened

IF FG_SESSION_OPEN = C_X.

PERFORM BDC_CLOSE_GROUP.

CALL TRANSACTION 'SM35'.

ENDIF.

ENDFORM. " GENERATE_BDCDATA

&----


*& Form BDC_OPEN_GROUP

&----


text

-


--> p1 text

<-- p2 text

-


FORM BDC_OPEN_GROUP.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

DEST = FILLER8

GROUP = C_SESS

HOLDDATE = FILLER8

KEEP = C_X

USER = SY-UNAME

RECORD = FILLER1

IMPORTING

QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11

.

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. " BDC_OPEN_GROUP

&----


*& Form BDC_INSERT_DATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM BDC_INSERT_DATA.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = C_XD01

POST_LOCAL = NOVBLOCAL

PRINTING = NOPRINT

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 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. " BDC_INSERT_DATA

&----


*& Form BDC_CLOSE_GROUP

&----


text

-


--> p1 text

<-- p2 text

-


FORM BDC_CLOSE_GROUP.

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

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. " BDC_CLOSE_GROUP

&----


*& Form FORMAT_MESSAGE

&----


text

-


--> p1 text

<-- p2 text

-


FORM FORMAT_MESSAGE.

CLEAR V_LINES.

DESCRIBE TABLE IT_MSG LINES V_LINES.

READ TABLE IT_MSG INDEX V_LINES.

CLEAR V_MSG.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = IT_MSG-MSGID

LANG = IT_MSG-MSGSPRA

NO = IT_MSG-MSGNR

V1 = IT_MSG-MSGV1

V2 = IT_MSG-MSGV2

V3 = IT_MSG-MSGV3

V4 = IT_MSG-MSGV4

IMPORTING

MSG = V_MSG

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

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. " FORMAT_MESSAGE

&----


*& Form DISPLAY_ERR_RECS

&----


text

-


--> p1 text

<-- p2 text

-


FORM DISPLAY_ERR_RECS.

LOOP AT IT_ERR_MSG.

WRITE: / IT_ERR_MSG-MESSAGE.

ENDLOOP.

ENDFORM. " DISPLAY_ERR_RECS

&----


*& Form GET_BANKDATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM GET_BANKDATA.

IT_BANK-BANKS = 'AD'.

IT_BANK-BANKL = '1000'.

IT_BANK-BANKN = 'S.B A/C'.

APPEND IT_BANK.

IT_BANK-BANKS = 'AD'.

IT_BANK-BANKL = 'CITY'.

IT_BANK-BANKN = 'CURR. A/C'.

APPEND IT_BANK.

IT_BANK-BANKS = 'AD'.

IT_BANK-BANKL = 'H001'.

IT_BANK-BANKN = 'S.B A/C'.

APPEND IT_BANK.

reward if help.

Read only

Former Member
0 Likes
759

hi,

refer to the thread.

RMMMBIM0 for mm01.

for va01

http://sap.niraj.tripod.com/id21.html

regards,

sreelakshmi