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_member2382
Active Participant
0 Likes
638

Hi All,

I wud like to know, how to decide which method to use in BDC...Either Batch input or Call tran..

Regards,

Parvez..

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
597

Find below some of the differences between Call Transaction & Batch Input.

Call transaction:

1.Synchronous Processing

2.You can update the database both synchronously and asynchrounously.

3.Transfer of data for individual transaction

4.No batch input session is created.

<b>5.Faster than other batch input techniques.

6.No automatic error log and restart capability is available here.

7.Not recommended for bulk data transfer

</b>

Session.

1.Asynchronous Processing

2.Synchronous database updates

3.Transfer of data for multiple transaction

4.Batch input sesssion is created here.

5.Automatic error handling and efficient restart capability incase of error transaction.

6.SAP's standard approach for data transfer

<b>7.Highly recommended for Bulk data transfer.

8.Execution is slower than CALL TRANSACTION.</b>

Regards,

santosh

3 REPLIES 3
Read only

Former Member
0 Likes
598

Find below some of the differences between Call Transaction & Batch Input.

Call transaction:

1.Synchronous Processing

2.You can update the database both synchronously and asynchrounously.

3.Transfer of data for individual transaction

4.No batch input session is created.

<b>5.Faster than other batch input techniques.

6.No automatic error log and restart capability is available here.

7.Not recommended for bulk data transfer

</b>

Session.

1.Asynchronous Processing

2.Synchronous database updates

3.Transfer of data for multiple transaction

4.Batch input sesssion is created here.

5.Automatic error handling and efficient restart capability incase of error transaction.

6.SAP's standard approach for data transfer

<b>7.Highly recommended for Bulk data transfer.

8.Execution is slower than CALL TRANSACTION.</b>

Regards,

santosh

Read only

Former Member
0 Likes
597

Hi Parvez,

<b>If u have few records u can go for call transaction but if u have large no of records then go for session method

</b>

Read only

Former Member
0 Likes
597

Hai Parvez

Go through the following Document

BDC SESSION

CALL TRANSACTION

CALL DIALOG

What is BDC or batch input

The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.

BDC functions:

E BDC_OPEN_GROUP : Opens a session group

E BDC_CLOSE_GROUP : Closes a session

E BDC_INSERT : Insert a BDC scenario in the session

E The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.

It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.

The object itself is maintanable through the transaction SE24.

BDC methods:

Method

Description

Parameters

OPEN_SESSION

Opens a session

SUBRC (Return Code ? 0 OK)

SESSIONNAME (Session to be created)

CLOSE_SESSION

Closes a session

None

RESET_BDCDATA

Resets the BDC Internal Table...

None. Normally, for internal purposec

BDC_DYNPRO

Handles a new screen

PROGNAME (Name of the program)

DYNPRONR (Screen Number)

BDC_FIELD

Puts a value on the screen

FIELDNAME (Name of the field)

FIELDVALUE (Value to be passed)

CONSTRUCTOR

Constructor - Initializes NO_DATA

NODATA (No data character). The constructor is called automatically when the object is created.

RUN_SESSION

Launches a session with RSBDCBTC

None

CALL_TRANSACTION

Calls a transaction with the current BDC Data

MODE (Display Mode)

UPDATE (Update Mode)

TCODE (Transaction to be called)

BDC_INSERT

Inserts the BDC scenario in the session

TCODE (Transaction to be called)

BDC techniques used in programs:

1) Building a BDC table and calling a transaction,

2) Building a session and a set of BDC scenarios and keeping the session available in SM35,

3) Building a session and lauching the transaction right after closing the session.

-


BDC using Call Transaction

BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP

program. The process involves building an Internal BDC table containing the screen information needed to

execute the required transaction and then passing this to the Call transaction command (See code example).

The full procedure for creating a BDC program is as follows:

-


What is the difference between batch input and call transaction in BDC?

Session method.

1) synchronous processing.

2) can tranfer large amount of data.

3) processing is slower.

4) error log is created

5) data is not updated until session is processed.

Call transaction.

1) asynchronous processing

2) can transfer small amount of data

3) processing is faster.

4) errors need to be handled explicitly

5) data is updated automatically

-


BATINPUT/DIRECT INPUT

-


A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.

GO THROUGH THIS LINK

http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm

The LSM Workbench is an SAP R/3 based tool that supports the one-time or periodic transfer of data from non-SAP systems ("legacy systems") to SAP systems.

The LSM Workbench helps you to organize your data migration project and guides you through the process by using a clear sequence of steps.

The most common conversion rules are predefined. Reusable conversion rules assure consistent data conversion for different data objects.

LSMW vs DX Workbench

The LSM Workbench covers the following steps:

Read the legacy data from one or several files (e.g. spreadsheet tables, sequential files).

Convert the data from source format to target format.

Import the data using standard interfaces (Batch Input, Direct Input, BAPI, IDoc).

Experiences made in successful implementation projects have shown that using the LSM Workbench significantly contributes to accelerating data migration.

SAP provides this tool along with documentation to customers and partners free of charge.

Users of the LSM Workbench receive the usual support via SAP Net - R/3 Frontend (component BC-SRV-DX-LSM).

Releases:

Version 1.7.2 of the LSM Workbench ("LSMW 1.7.2") available

Attention : LSMW 1.7.2 requires an SAP R/3 system with SAP R/3 4.0 or SAP R/3 4.5.

Version 1.8.0 of the LSM Workbench (1.21mb) ("LSMW 1.8.0") available

Attention : LSMW 1.8.0 requires an SAP R/3 system with SAP R/3 4.6.

Version 3.0 of the LSM Workbench (1.89mb) ("LSMW 3.0") available for Web Application Server 6.10

Attention : LSMW 3.0 requires a SAP WAS 6.10. Functionality of version 1.7.2 and 3.0 are identical !

Version 4.0 of the LSM Workbench ("LSMW 4.0") integrated in Web Application Server 6.20

Attention : LSMW 4.0 is an integrated part of SAP WAS 6.20.

Sample Example using Call transaction & Session Method

report Z_CALLTRANS_VENDOR_01

no standard page heading line-size 255.

      • Generated data section with specific formatting - DO NOT CHANGE ***

data: begin of it_lfa1 occurs 0,

KTOKK like lfa1-ktokk,

NAME1 like lfa1-name1,

SORTL like lfa1-sortl,

LAND1 like lfa1-land1,

end of it_lfa1.

      • End generated data section ***

data : it_bdc like bdcdata occurs 0 with header line.

*DATA: IT_MESSAGES TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.

*DATA: LV_MESSAGE(255).

data : it_messages like bdcmsgcoll occurs 0 with header line.

data : V_message(255).

data : V_flag.

data : V_datum1 type sy-datum.

data : begin of it_mesg occurs 0,

message(100),

end of it_mesg.

*V_datum1 = sy-datum-1.

parameters : P_Sess like APQI-GROUPID.

start-of-selection.

perform Get_data.

*perform open_group.

loop at it_lfa1.

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-KTOKK'

it_lfa1-KTOKK.

perform bdc_dynpro using 'SAPMF02K' '0110'.

perform bdc_field using 'BDC_CURSOR'

'LFA1-LAND1'.

perform bdc_field using 'BDC_OKCODE'

'=UPDA'.

perform bdc_field using 'LFA1-NAME1'

it_lfa1-name1.

perform bdc_field using 'LFA1-SORTL'

it_lfa1-sortl.

perform bdc_field using 'LFA1-LAND1'

it_lfa1-land1.

call transaction 'XK01' using it_bdc

mode 'N'

update 'S'

messages into it_messages.

if sy-subrc <> 0.

if V_flag <> 'X'.

perform open_group.

V_flag = 'X'.

endif.

perform bdc_transaction. "using 'XK01'.

endif.

perform format_messages.

refresh : it_bdc,it_messages.

.

endloop.

if V_flag = 'X'.

perform close_group.

endif.

&----


*& Form Get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM Get_data .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\srinu_vendor.txt'

FILETYPE = 'DAT'

TABLES

DATA_TAB = it_lfa1

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

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0061 text

  • -->P_0062 text

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR it_BDC.

it_BDC-PROGRAM = PROGRAM.

it_BDC-DYNPRO = DYNPRO.

it_BDC-DYNBEGIN = 'X'.

APPEND it_BDC.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

CLEAR it_BDC.

it_BDC-FNAM = FNAM.

it_BDC-FVAL = FVAL.

APPEND it_BDC.

ENDFORM.

&----


*& Form format_messages

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM format_messages .

loop at it_messages.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = it_messages-MSGID

LANG = 'EN'

NO = it_messages-MSGNR

V1 = it_messages-MSGV1

V2 = it_messages-MSGV2

V3 = it_messages-MSGV3

V4 = it_messages-MSGV4

IMPORTING

MSG = V_message

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.

write : / V_message.

clear : V_message.

endloop.

ENDFORM. " format_messages

&----


*& Form open_group

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM open_group .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = P_Sess

  • HOLDDATE = V_datum1

KEEP = 'X'

USER = SY-UNAME

.

IF SY-SUBRC = 0.

write : / 'Session Creating wit Name : ',P_Sess.

ENDIF.

ENDFORM. " open_group

&----


*& Form close_group

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM close_group .

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDFORM. " close_group

&----


*& Form bdc_transaction

&----


  • text

----


  • -->P_0132 text

----


FORM bdc_transaction. "USING VALUE(P_0132).

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'XK01'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

TABLES

DYNPROTAB = it_bdc

  • 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_transaction

Regards

Sreeni