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 call transaction

Former Member
0 Likes
667

Hi,

This is the first time I am going to work on BDC

Pls tell from the starting step by step(that is from recording).

Can anybody tell me how to upload customer data from a local file

and create customers using call transaction method?

Thanks

Mahendra

Hi,

This is the first time I am going to work on BDC

Pls tell from the starting step by step(that is from recording).

Can anybody tell me how to upload customer data from a local file

and create customers using call transaction method?

Thanks

Mahendra

6 REPLIES 6
Read only

Former Member
0 Likes
637

Check the Database tables of that Transaction, whether the correct number of records equal to your file were updated or not.

Process the Session in SM35 for the error records till all the records were completely uploaded into database.

see the BDC doc:

BDC:

Batch Data Communication (BDC) is the process of transferring data from one SAP System to another SAP system or from a non-SAP system to SAP System.

Features :

BDC is an automatic procedure.

This method is used to transfer large amount of data that is available in electronic medium.

BDC can be used primarily when installing the SAP system and when transferring data from a legacy system (external system).

BDC uses normal transaction codes to transfer data.

Types of BDC :

CLASSICAL BATCH INPUT (Session Method)

CALL TRANSACTION

BATCH INPUT METHOD:

This method is also called as ‘CLASSICAL METHOD’.

Features:

Asynchronous processing.

Synchronous Processing in database update.

Transfer data for more than one transaction.

Batch input processing log will be generated.

During processing, no transaction is started until the previous transaction has been written to the database.

CALL TRANSACTION METHOD :

This is another method to transfer data from the legacy system.

Features:

Synchronous processing. The system performs a database commit immediately before and after the CALL TRANSACTION USING statement.

Updating the database can be either synchronous or asynchronous. The program specifies the update type.

Transfer data for a single transaction.

Transfers data for a sequence of dialog screens.

No batch input processing log is generated.

For BDC:

http://myweb.dal.ca/hchinni/sap/bdc_home.htm

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&;

http://www.sap-img.com/abap/learning-bdc-programming.htm

http://www.sapdevelopment.co.uk/bdc/bdchome.htm

http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm

http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm

http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html

Check these link:

http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm

http://www.sap-img.com/abap/question-about-bdc-program.htm

http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/

http://www.planetsap.com/bdc_main_page.htm

Regards,

Santosh

Read only

Former Member
0 Likes
637

Refer to this sample code

REPORT ztest
NO STANDARD PAGE HEADING
LINE-SIZE 255
MESSAGE-ID ZRASH.

************************************************************************
* Internal Table Declarations *
************************************************************************
*--Internal Table for Data Uploading.
DATA : BEGIN OF IT_FFCUST OCCURS 0,
KUNNR(10),
BUKRS(4),
KTOKD(4),
ANRED(15),
NAME1(35),
SORTL(10),
STRAS(35),
ORT01(35),
PSTLZ(10),
LAND1(3),
SPRAS(2),
AKONT(10),
END OF IT_FFCUST.

*--Internal Table to Store Error Records.
DATA : BEGIN OF IT_ERRCUST OCCURS 0,
KUNNR(10),
EMSG(255),
END OF IT_ERRCUST.

*--Internal Table to Store Successful Records.
DATA : BEGIN OF IT_SUCCUST OCCURS 0,
KUNNR(10),
SMSG(255),
END OF IT_SUCCUST.

*--Internal Table for Storing the BDC data.
DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

*--Internal Table for storing the messages.
DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA : V_FLAG1(1) VALUE ' ',
"Flag used for opening session.
V_TLINES LIKE SY-TABIX,
"For storing total records processed.
V_ELINES LIKE SY-TABIX,
"For storing the no of error records.
V_SLINES LIKE SY-TABIX.
"For storing the no of success records.


************************************************************************
* Selection screen *
************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1.
PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,
V_SESNAM LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B1.

************************************************************************
* Start-of-selection *
************************************************************************

START-OF-SELECTION.
*-- Form to upload flatfile data into the internal table.
PERFORM FORM_UPLOADFF.

************************************************************************
* TOP-OF-PAGE *
************************************************************************
TOP-OF-PAGE.
WRITE:/ 'Details of the error and success records for the transaction'
.
ULINE.
SKIP.


************************************************************************
* End of Selection *
************************************************************************
END-OF-SELECTION.
*-- Form to Generate a BDC from the Uploaded Internal table
PERFORM FORM_BDCGENERATE.

*--To write the totals and the session name.
PERFORM FORM_WRITEOP.



*&---------------------------------------------------------------------*
*& Form form_uploadff
*&---------------------------------------------------------------------*
* Form to upload flatfile data into the internal table.
*----------------------------------------------------------------------*
FORM FORM_UPLOADFF .

*--Variable to change the type of the parameter file name.
DATA : LV_FILE TYPE STRING.

LV_FILE = V_FNAME.

*--Function to upload the flat file to the internal table.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = LV_FILE
* FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT_FFCUST
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.
*--Deleting the headings from the internal table.
DELETE IT_FFCUST INDEX 1.
*--Getting the total number of records uploaded.
DESCRIBE TABLE IT_FFCUST LINES V_TLINES.

ENDIF.


ENDFORM. " form_uploadff
*&---------------------------------------------------------------------*
*& Form Form_bdcgenerate
*&---------------------------------------------------------------------*
* Form to Generate a BDC from the Uploaded Internal table
*----------------------------------------------------------------------*
FORM FORM_BDCGENERATE .

*--Generating the BDC table for the fields of the internal table.
LOOP AT IT_FFCUST.
PERFORM POPULATEBDC USING :
'X' 'SAPMF02D' '0105',
' ' 'BDC_OKCODE' '/00' ,
' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,
' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,
' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,
'X' 'SAPMF02D' '0110' ,
' ' 'BDC_OKCODE' '/00',
' ' 'KNA1-ANRED' IT_FFCUST-ANRED,
' ' 'KNA1-NAME1' IT_FFCUST-NAME1,
' ' 'KNA1-SORTL' IT_FFCUST-SORTL,
' ' 'KNA1-STRAS' IT_FFCUST-STRAS,
' ' 'KNA1-ORT01' IT_FFCUST-ORT01,
' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,
' ' 'KNA1-LAND1' IT_FFCUST-LAND1,
' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,

'X' 'SAPMFO2D' '0120',
' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0125',
' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0130',
' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0340',
' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0360',
' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0210',
' ' 'KNB1-AKONT' IT_FFCUST-AKONT,
' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0215',
' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0220',
' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0230',
' ' 'BDC_OKCODE' '=UPDA'.
*--Calling the transaction 'fd01'.
CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'
MESSAGES INTO IT_CUSTMSG.
IF SY-SUBRC <> 0.
*--Populating the error records internal table.
IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.
APPEND IT_ERRCUST.
CLEAR IT_ERRCUST.
*--Opening a session if there is an error record.
IF V_FLAG1 = ' '.
PERFORM FORM_OPENSESSION.
V_FLAG1 = 'X'.
ENDIF.
*--Inserting the error records into already open session.
IF V_FLAG1 = 'X'.
PERFORM FORM_INSERT.
ENDIF.
*--Populating the Success records internal table.
ELSE.
IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.
APPEND IT_SUCCUST.
CLEAR IT_SUCCUST.
ENDIF.
*--Displaying the messages.
IF NOT IT_CUSTMSG[] IS INITIAL.
PERFORM FORM_FORMATMSG.
ENDIF.
*--Clearing the message and bdc tables.
CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].
ENDLOOP.

*--Getting the total no of error records.
DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.

*--Getting the total no of successful records.
DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.

*--Closing the session only if it is open.
IF V_FLAG1 = 'X'.
PERFORM FORM_CLOSESESS.
ENDIF.


ENDFORM. " Form_bdcgenerate


*&---------------------------------------------------------------------*
*& Form populatebdc
*&---------------------------------------------------------------------*
* FOrm to Populate the BDC table.
*----------------------------------------------------------------------*
FORM POPULATEBDC USING VALUE(P_0178)
VALUE(P_0179)
VALUE(P_0180).

IF P_0178 = 'X'.
IT_CUSTBDC-PROGRAM = P_0179.
IT_CUSTBDC-DYNPRO = P_0180.
IT_CUSTBDC-DYNBEGIN = 'X'.
ELSE.
IT_CUSTBDC-FNAM = P_0179.
IT_CUSTBDC-FVAL = P_0180.
ENDIF.

APPEND IT_CUSTBDC.
CLEAR IT_CUSTBDC.


ENDFORM. " populatebdc


*&---------------------------------------------------------------------*
*& Form FORM_OPENSESSION
*&---------------------------------------------------------------------*
* Form to Open a session.
*----------------------------------------------------------------------*
FORM FORM_OPENSESSION .

*--Variable to convert the given session name into reqd type.
DATA : LV_SESNAM(12).

LV_SESNAM = V_SESNAM.

*--Opening a session.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = LV_SESNAM
HOLDDATE = '20040805'
KEEP = 'X'
USER = SY-UNAME
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.
WRITE :/ 'Session not open'.
ENDIF.


ENDFORM. " FORM_OPENSESSION
*&---------------------------------------------------------------------*
*& Form FORM_INSERT
*&---------------------------------------------------------------------*
* fORM TO INSERT ERROR RECOED INTO A SESSION.
*----------------------------------------------------------------------*
FORM FORM_INSERT .

*--Inserting the record into session.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FD01'
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
* SIMUBATCH = ' '
* CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_CUSTBDC
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.
WRITE :/ 'Unable to insert the record'.
ENDIF.


ENDFORM. " FORM_INSERT
*&---------------------------------------------------------------------*
*& Form FORM_CLOSESESS
*&---------------------------------------------------------------------*
* Form to Close the Open Session.
*----------------------------------------------------------------------*
FORM FORM_CLOSESESS .


CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ENDIF.



ENDFORM. " FORM_CLOSESESS
*&---------------------------------------------------------------------*
*& Form FORM_FORMATMSG
*&---------------------------------------------------------------------*
* Form to format messages.
*----------------------------------------------------------------------*
FORM FORM_FORMATMSG .

*--Var to store the formatted msg.
DATA : LV_MSG(255).


CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = SY-MSGID
LANG = SY-LANGU
NO = SY-MSGNO
V1 = SY-MSGV1
V2 = SY-MSGV2
V3 = SY-MSGV3
V4 = SY-MSGV4
IMPORTING
MSG = LV_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.

WRITE :/ LV_MSG.

ENDIF.
ULINE.


ENDFORM. " FORM_FORMATMSG
*&---------------------------------------------------------------------*
*& Form form_writeop
*&---------------------------------------------------------------------*
* To write the totals and the session name.
*----------------------------------------------------------------------*
FORM FORM_WRITEOP .

WRITE :/ 'Total Records Uploaded :',V_TLINES,
/ 'No of Error Records :',V_ELINES,
/ 'No of Success Records :',V_SLINES,
/ 'Name of the Session :',V_SESNAM.
ULINE.

ENDFORM. " form_writeop

Read only

Former Member
0 Likes
637

hi,

goto SHDB->new recording->

give name ,tcode xd01->click start recording ->give values into mandotory fields and save->back->select ur recording click PROGRAm in the tool bar-.give name and select START FROM RECORDING->specify attribute ->save control leads to se38.->maintain internal table with the fields which u have inflat file.

after start-of-selection using FM gui_upload upload dat to internal table.

after ERFORM OPEN_GROUP.

use LOOP AT Itab.

after all performs.

syntax of call transaction.

endloop.

Check out this sample program

REPORT ztest_report

NO STANDARD PAGE HEADING

LINE-SIZE 255

MESSAGE-ID ZRASH.

************************************************************************

  • Internal Table Declarations *

************************************************************************

*--Internal Table for Data Uploading.

DATA : BEGIN OF IT_FFCUST OCCURS 0,

KUNNR(10),

BUKRS(4),

KTOKD(4),

ANRED(15),

NAME1(35),

SORTL(10),

STRAS(35),

ORT01(35),

PSTLZ(10),

LAND1(3),

SPRAS(2),

AKONT(10),

END OF IT_FFCUST.

*--Internal Table to Store Error Records.

DATA : BEGIN OF IT_ERRCUST OCCURS 0,

KUNNR(10),

EMSG(255),

END OF IT_ERRCUST.

*--Internal Table to Store Successful Records.

DATA : BEGIN OF IT_SUCCUST OCCURS 0,

KUNNR(10),

SMSG(255),

END OF IT_SUCCUST.

*--Internal Table for Storing the BDC data.

DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

*--Internal Table for storing the messages.

DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA : V_FLAG1(1) VALUE ' ',

"Flag used for opening session.

V_TLINES LIKE SY-TABIX,

"For storing total records processed.

V_ELINES LIKE SY-TABIX,

"For storing the no of error records.

V_SLINES LIKE SY-TABIX.

"For storing the no of success records.

************************************************************************

  • Selection screen *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1.

PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,

V_SESNAM LIKE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************

  • Start-of-selection *

************************************************************************

START-OF-SELECTION.

*-- Form to upload flatfile data into the internal table.

PERFORM FORM_UPLOADFF.

************************************************************************

  • TOP-OF-PAGE *

************************************************************************

TOP-OF-PAGE.

WRITE:/ 'Details of the error and success records for the transaction'

.

ULINE.

SKIP.

************************************************************************

  • End of Selection *

************************************************************************

END-OF-SELECTION.

*-- Form to Generate a BDC from the Uploaded Internal table

PERFORM FORM_BDCGENERATE.

*--To write the totals and the session name.

PERFORM FORM_WRITEOP.

&----


*& Form form_uploadff

&----


  • Form to upload flatfile data into the internal table.

----


FORM FORM_UPLOADFF .

*--Variable to change the type of the parameter file name.

DATA : LV_FILE TYPE STRING.

LV_FILE = V_FNAME.

*--Function to upload the flat file to the internal table.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = LV_FILE

  • FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = IT_FFCUST

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.

*--Deleting the headings from the internal table.

DELETE IT_FFCUST INDEX 1.

*--Getting the total number of records uploaded.

DESCRIBE TABLE IT_FFCUST LINES V_TLINES.

ENDIF.

ENDFORM. " form_uploadff

&----


*& Form Form_bdcgenerate

&----


  • Form to Generate a BDC from the Uploaded Internal table

----


FORM FORM_BDCGENERATE .

*--Generating the BDC table for the fields of the internal table.

LOOP AT IT_FFCUST.

PERFORM POPULATEBDC USING :

'X' 'SAPMF02D' '0105',

' ' 'BDC_OKCODE' '/00' ,

' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,

' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,

' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,

'X' 'SAPMF02D' '0110' ,

' ' 'BDC_OKCODE' '/00',

' ' 'KNA1-ANRED' IT_FFCUST-ANRED,

' ' 'KNA1-NAME1' IT_FFCUST-NAME1,

' ' 'KNA1-SORTL' IT_FFCUST-SORTL,

' ' 'KNA1-STRAS' IT_FFCUST-STRAS,

' ' 'KNA1-ORT01' IT_FFCUST-ORT01,

' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,

' ' 'KNA1-LAND1' IT_FFCUST-LAND1,

' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,

'X' 'SAPMFO2D' '0120',

' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0125',

' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0130',

' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0340',

' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0360',

' ' 'BDC_OKCODE' '=ENTR',

'X' 'SAPMF02D' '0210',

' ' 'KNB1-AKONT' IT_FFCUST-AKONT,

' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0215',

' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0220',

' ' 'BDC_OKCODE' '/00',

'X' 'SAPMF02D' '0230',

' ' 'BDC_OKCODE' '=UPDA'.

*--Calling the transaction 'fd01'.

CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'

MESSAGES INTO IT_CUSTMSG.

IF SY-SUBRC <> 0.

*--Populating the error records internal table.

IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.

APPEND IT_ERRCUST.

CLEAR IT_ERRCUST.

*--Opening a session if there is an error record.

IF V_FLAG1 = ' '.

PERFORM FORM_OPENSESSION.

V_FLAG1 = 'X'.

ENDIF.

*--Inserting the error records into already open session.

IF V_FLAG1 = 'X'.

PERFORM FORM_INSERT.

ENDIF.

*--Populating the Success records internal table.

ELSE.

IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.

APPEND IT_SUCCUST.

CLEAR IT_SUCCUST.

ENDIF.

*--Displaying the messages.

IF NOT IT_CUSTMSG[] IS INITIAL.

PERFORM FORM_FORMATMSG.

ENDIF.

*--Clearing the message and bdc tables.

CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].

ENDLOOP.

*--Getting the total no of error records.

DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.

*--Getting the total no of successful records.

DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.

*--Closing the session only if it is open.

IF V_FLAG1 = 'X'.

PERFORM FORM_CLOSESESS.

ENDIF.

ENDFORM. " Form_bdcgenerate

&----


*& Form populatebdc

&----


  • FOrm to Populate the BDC table.

----


FORM POPULATEBDC USING VALUE(P_0178)

VALUE(P_0179)

VALUE(P_0180).

IF P_0178 = 'X'.

IT_CUSTBDC-PROGRAM = P_0179.

IT_CUSTBDC-DYNPRO = P_0180.

IT_CUSTBDC-DYNBEGIN = 'X'.

ELSE.

IT_CUSTBDC-FNAM = P_0179.

IT_CUSTBDC-FVAL = P_0180.

ENDIF.

APPEND IT_CUSTBDC.

CLEAR IT_CUSTBDC.

ENDFORM. " populatebdc

&----


*& Form FORM_OPENSESSION

&----


  • Form to Open a session.

----


FORM FORM_OPENSESSION .

*--Variable to convert the given session name into reqd type.

DATA : LV_SESNAM(12).

LV_SESNAM = V_SESNAM.

*--Opening a session.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = LV_SESNAM

HOLDDATE = '20040805'

KEEP = 'X'

USER = SY-UNAME

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.

WRITE 😕 'Session not open'.

ENDIF.

ENDFORM. " FORM_OPENSESSION

&----


*& Form FORM_INSERT

&----


  • fORM TO INSERT ERROR RECOED INTO A SESSION.

----


FORM FORM_INSERT .

*--Inserting the record into session.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'FD01'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

TABLES

DYNPROTAB = IT_CUSTBDC

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.

WRITE 😕 'Unable to insert the record'.

ENDIF.

ENDFORM. " FORM_INSERT

&----


*& Form FORM_CLOSESESS

&----


  • Form to Close the Open Session.

----


FORM FORM_CLOSESESS .

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

ENDIF.

ENDFORM. " FORM_CLOSESESS

&----


*& Form FORM_FORMATMSG

&----


  • Form to format messages.

----


FORM FORM_FORMATMSG .

*--Var to store the formatted msg.

DATA : LV_MSG(255).

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = SY-MSGID

LANG = SY-LANGU

NO = SY-MSGNO

V1 = SY-MSGV1

V2 = SY-MSGV2

V3 = SY-MSGV3

V4 = SY-MSGV4

IMPORTING

MSG = LV_MSG

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

IF SY-SUBRC = 0.

WRITE 😕 LV_MSG.

ENDIF.

ULINE.

ENDFORM. " FORM_FORMATMSG

&----


*& Form form_writeop

&----


  • To write the totals and the session name.

----


FORM FORM_WRITEOP .

WRITE 😕 'Total Records Uploaded :',V_TLINES,

/ 'No of Error Records :',V_ELINES,

/ 'No of Success Records :',V_SLINES,

/ 'Name of the Session :',V_SESNAM.

ULINE.

ENDFORM. " form_writeop

http://www.sap-img.com/abap/learning-bdc-programming.htm

http://www.sap-img.com/abap/learning-bdc-programming.htm

Read only

Former Member
0 Likes
637

Hi mahendra

Give me your mail id i'll forward u a nice material on BDC which can be helpfull for beginers alot

Rewards If helpfull

Regards

Pavan

Read only

0 Likes
637

Thanks.

My mail id is [email protected]

U can send on this.