BDC Interview Questions What is BDC and why do we use BDC ? BDC
( Batch Data Communication ) also known as batch input is a
technique by which large volumes of data can be transferred from
Non Sap or Legacy systems to SAP systems.
Example:A Legacy system that is to be replaced by SAP has say
1000 Customers , 2000 vendors and 3000 materials. All this data
needs to be transferred to SAP . In such cases , We can use
BDC.
If the old system is replaced by SAP, such a transfer is
calledConversion.If the old system runs along with SAP, in that
case the transfer is called anInterface.
The two methods for BDC are: Session Method Call TRANSACTION
Method CALL DIALOG (Outdated)
ABAP interview questions on BDC:Important:Question 1:What is the
difference between Call Transaction Method and the Session method
?
Session MethodCall Transaction
Session method is generally used when the data volume is
huge.Call transaction method is used when the data volume is
low.
Session method is slow as compared to Call transaction.Call
Transaction method is relatively faster than Session method.
SAP Database is updated when you process the sessions. You need
to process the sessions separately via SM35.SAP Database is updated
during the execution of the batch input program.
Errors are automatically handled during the processing of the
batch input session.Errors should be handled in the batch input
program.
Important:Question 2:How do you do BDC for a table control?With
other things as usual, there is a special trick that you have to
use while doing BDC for table control.You need to use theBDCOKCODE
'=P+'.Its the BCD_OKCODE for Page down that can be used for
scrolling down in table control.
Important:Question3:Is there any method apart from BDC for data
upload to SAP?Apart from BDC and LSMW, you can use BAPIs to upload
data into SAP.BAPIs should be preferred over BDCs, because they
process data faster than BDC.A BAPI is faster since it updates
Database "directly". Whereas BDC callstransaction and goes through
the whole screen sequence as any user would do.
BAPIBDC
BAPI is faster than BDC.BDC is relatively slower than BAPI.
BAPI directly updates database.BDC goes through all the screens
as a normal user would do and hence it is slower.
No such processing options are available in BAPI.Background and
Foreground processing options are available for BDC.
BAPI would generally used for small data uploads.BDCs would be
preferred for large volumes of data upload since background
processing option is available.
For processing errors, the Return Parameters for BAPI should be
used.This parameter returns exception messages or success messages
to the calling program.Errors can be processed in SM35 for session
method and in the batch input program for Call Transaction
method.
Question 4: How do you process errors in Call Transaction method
?
Let's have a look at the syntax for CALL TRANSACTION
method.Sample code:DATA: BEGIN OF G_T_MESSTAB OCCURS 0. INCLUDE
STRUCTURE BDCMSGCOLL.DATA: END OF G_T_MESSTAB.
CALL TRANSACTION 'MB11' USING G_T_BDCDATA MODE 'E' UPDATE 'S'
MESSAGES INTO G_T_MESSTAB.
All the error messages will be trapped inside
G_T_MESSTAB.Question 5: What is the use of program RSBDCSUB?There
are two ways to process the BDC sessions:1) Go to SM35 --->
Choose session ---> hit process. Now See Question no. 10.2) Use
program RSBDCSUB. RSBDCSUB schedules the session to be processed in
background.
Let's take an example to understand this.
The sessions are created at one point of time and processed at
other point of time and this may create a problem:For example:a BDC
program creates a session for updating 1500 customers in SAP.
However , before this session is processed via SM35 , a user
inserts 100 customers in the system manually. In this case , the
session will have at least 100 errors when the session is processed
from SM35.
One way to avoid this is to use the program "RSBDCSUB" in the
batch input program itself so that the session is processed as soon
as it is created. RSBDCSUB schedules the session to be processed in
background.
Question 6: What is the structure of the BDC table?
The BDCDATA consists of the following fields: PROGRAM [CHAR 40]
- Online program name. DYNPRO [NUMC 4] - Screen number. DYNBEGIN
[CHAR 1] - Flag to indicate the start of a new screen. FNAM [CHAR
132] - Field name of a screen field to be filled with data. FVAL
[CHAR 132] - The actual value to be filled into the specified
screen field.
Sample Screenshot:
BDCDATA table structure
Question 7: What is the difference between BDC_OKCODE and
BDC_CURSOR?BDC_OKCODE:is used for storing commands during the
recording. like '/00' is the command for 'ENTER'
Key.BDC_CURSOR:contains the cursor position. it contians the field
in which cursor will be.
Example code:perform bdc_field using 'BDC_CURSOR'
'PROJ-PSPID'.perform bdc_field using 'BDC_OKCODE' '=BU'.
Question 8: What are the 3 methods that we use in sequence in a
Batch input session method ?
1) BDC_OPEN_GROUP for opening the Batch Input Session2)
BDC_INSERT for inserting the transactional data into SAP3)
BDC_CLOSE_GROUP for closing the Batch Input Session
If there are n records , the BDC_INSERT method should be called
n times.BDC_OPEN_GROUP and BDC_CLOSE_GROUP are called only
once.
General Information about a session is stored in table
APQI.Transaction data for a session is stored in table APQD.
Question 9: What is your approach for writing a BDC program?
Identify the Tcode and do the recording in SHDB to populate the
BDCDATA.
Once the recording is done , one can Transfer it to the Batch
input program.
In the batch Input program , The transactional data is read from
the file to an internal table.
Then one can loop over the transactional data in the internal
table and start uploading the data in SAP either by CALL
TRANSACTION method or by creating sessions through the batch input
program.
Question 10: How do you process errors in Session method ?You
can go to Transaction SM35 , Choose the session name and click on
Process.
Question 11:What are the different modes of processing batch
input sessions?
The three modes are:
Foreground
Display Errors Only
Background
Question 12:What is the difference between Synchronous and
Asynchronous Update ? In Synchronous update , the database is
updated before the next transaction is taken for processing in a
batch input.In Asynchronous update , the system doesn't wait for
updating the databasebefore the next transaction is taken for
processing in a batch input.
Question 13:What is the transaction for Recording BDC ?
The Tcode is SHDB.
Question 14:How do you read files from theApplication
server?
You can use the commands:OPEN DATASET ---> opens the
file(dataset) either in read /write mode.READ DATASET ---> Read
the fileCLOSE DATASET ---> Close the dataset once the date has
been read .
Question 15:How do you read files from the presentation
server?You can use the Function Modules :GUI_UPLOAD --> To read
data from file into an internal tableGUI_DOWNLOAD --> To write
data from internal table to a file on presentation server
If you found thepost helpful , consider hitting the Google plus
button------>
Thanks and all the best for your interview :).