Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
Showing results for 
Search instead for 
Did you mean: 

Simple question on Interfaces/Data Transfer

Former Member
0 Kudos

Please can someone clarify me on this:

What is the difference between BDC, Interfaces(guiupload,gui download), conversion program?

How about IDOCs and ALEs? What is the difference?

Thanks and please dont copy paste, but answer in your own words..

Will reward points.

Thanks again


Former Member
0 Kudos

Or may I ask like this:

Are the following different techniques for data migration/conversion in SAP?




Direct Input.

Thanks again

Former Member
0 Kudos


Conversions - This type of transfer refers to a one-time transfer from a legacy system to the SAP system. In this case, the “legacy” system is the old system that is being replaced by the SAP system.

For example, the old system being replaced has data for 2,000 vendors that must be transferred to the SAP system.

Interfaces - This type of transfer refers to an ongoing transfer from a complimentary system to the SAP system. In this case, the “complimentary” system is a system that will run along side the SAP system.

For example, customer orders may be taken in another system. For the SAP system to reflect accurate information, these orders must be transferred to the SAP system every night.

BDC can be both interfaces or conversions depending upon the functionality above.

Interfaces are needed when we need data from other than SAP envoronment and vise versa.

Suppose aclient may send his business data through Excel sheet which are to be loaded in his SAP Tables.Then we need to use interfaces.

There are two Categogies.

1.From Presentation Layer to your ABAP Program(and then into Database table)

Presentation layer means from your sytem (from C, drives)

2.From application Server to your ABAP Program(and then into Database table)

Application Server means the server for your Sap System.

For the first case you need to use:From Presentation Layer to your ABAP Program and vise versa)

GUI_UPLOAD to upload data,

GUI_DOWNLOAD to download data

For the Second case(From application Server to your ABAP Program and vise versa)

A.OPEN DATA SET FILE NAME ON APPL.SERVER FOR INPUT ENCODING BY DEFAULT. use tranfer command to send data to application server



- It is one of the BDC techniques for uploading legacy data into SAP

- The data is transferring from the internal table to database table

through sessions.

- Data along with its action is stored in session.

- When the program has finished generating the session, you can run

the session to execute the transaction.

- Unless session is processed, the data is not transferred to

database tables.

- The following Function Modules are used in the session method.

1. BDC_OPEN_GROUP (Used to create the session)

Import Parameters :

USER - User Name

CLIENT - Client

GROUP - Name of the session

HOLD - The date when you want to process the session

KEEP - ‘X’ – retain session even after processing it

' ' - Delete the session after processing.

2. BDC_INSERT (Data is transferred to session)

Import Parameters :

TCODE - Transaction code


3. BDC_CLOSE_GROUP (Used to close a session)

- Processing Steps

1. Generate the batch input session using function module


2. The proceed as follows for each transaction that the session


a. In the BDCDATA structure, enter the value for all screens

and fields that must be processed in the transaction.

b. Use BDC_INSERT to transfer the transaction and the BDCDATA

structure to the session.

3. Close the batch input session with BDC_CLOSE_GROUP.

4. Start to process the generated session in T.Code SM35.



1. It is compatible for small amount of data only.

2. It process the data Synchronously. i.e., The data is updated

at the time of execution.

3. It updates data both Synchronously and Asynchronously. When

we use Synchronous mode, it always verify all the data updated

successfully in the database.

When we use Asynchronous mode, the system can not wait till

all the data updated in the database.

4. It can handle only one application at a time.

5. It does not have Log file, we need to design logfile explicitly

using BDCMSGCOLL stucture.

Syntax :



Parameter 1 : Transaction Code

Parameter 2 : It is name of BDCDATA table.

Parameter 3 : Specifying Mode in which you execute transaction.

A - All screen mode. All the screen of transaction

are displayed.

N - No screen mode. No screen is displayed when you

execute the transaction.

E - Error screen. Only those screens are displayed

where you have error record.

Parameter 4 : Specifying Update type by which data base table is


S - It is for Synchronous update in which if you

change data for one table then all the relacted

tables gets updated. And then sy-subrc is returned

i.e., sy-subrc is returned for once and all.

A - It is for Asynchronous update, when you change

data of one table, the sy-subrc is returned. And

then updation of other affected tables takes place

If system fails to update other tables still

sy-subrc returned is 0.

Parameter 5 : When you update database table, operation is either

successful or unsuccessful or operation is successful

with some warning. These messages are stored in

internal table which you specify along with MESSAGE

statement. This internal table should be declared like

BDCMSGCOLL structure.

Steps for CALL TRANSACTION Method :

1. Interanal table for the data (structure similler to local file)


3. Use UPLOAD/WS_UPLOAD/GUI_UPLOAD or DATASETS for upload data from

local file to internal table (i.e. ITAB).

4. LOOP at Itab.

Populate BDCTAB table.



Refresh BDCTAB.


IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed. Therefore an IDoc data exchange is always an

asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.

While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.

IDoc is a intermediate document to exchange data between two SAP Systems.

*IDocs are structured ASCII files (or a virtual equivalent).

*Electronic Interchange Document

*They are the file format used by SAP R/3 to exchange data with foreign systems.

*Data Is transmitted in ASCII format, i.e. human readable form

*IDocs exchange messages

*IDocs are used like classical interface files

IDOC types are templates for specific message types depending on what is the business document, you want to exchange.

<b>Reward points for useful Answers</b>



Former Member
0 Kudos

I can say simple words :

suppose if you are using some other third party software then you need to transfer data from SAP R/3 to other system or other system to SAP R/3 then you need to use ALE/IDOC'S/EDI Methods.

if you want to upload / download data to SAP R/3 ( From SAP R/3 ) then we use File transfer methods ( BDC -Call Transaction,Session ,Direct Input ,LSMW).

Conversion program - BDC

Interface program - ALE/IDOC/EDI/RFC

BDC Flexible for one time upload ( Master data ),if you want to upload the data regularly then we schedule background ,in that case you should not use gui_upload/gui_download,you have to use open data set.

I Hope you got it ..