SAP ABAP Interview Questions and Answers

If you have 10000 records in your file, which method you use in BDC? Ans Call transaction is faster then session method. But usually we use session method in real time...because we can transfer large amount of data from internal table to database and if any errors in a session, then process will not complete until session get correct. What are different modes of Call Transaction method and explain them?
Ans There are three modes of Call Transaction method:

What is the typical structure of an ABAP program?
Ans HEADER, BODY, FOOTER.

What are field symbols and field groups? Have you used "component idx of structure" clause with field groups?
Ans Field Symbols – They are placeholder or symbolic names for the other fields. They do not physically reserve space for a field, but point to its contents. It can point to any data objects.

Field-symbols

Field Groups – Field groups does not reserve storage space but contains pointers to existing fields.

An extract dataset consists of a sequence of records. These records may have different structures. All records with the same structure form a record type. You must define each record type of an extract dataset as a field group, using the FIELD-GROUPS statement.

Field-groups
What should be the approach for writing a BDC program?
Ans STEP 1: CONVERTING THE LEGACY SYSTEM DATA TO A FLAT FILE
to internal table CALLED "CONVERSION".

STEP 2: TRANSFERING THE FLAT FILE INTO SAP SYSTEM CALLED
"SAP DATA TRANSFER".

STEP 3: DEPENDING UPON THE BDC TYPE

i) Call transaction (Write the program explicitly)
ii) Create sessions (sessions are created and processed. If success, data will transfer).

What is a batch input session?
Ans BATCH INPUT SESSION is an intermediate step between internal table and database table. Data along with the action is stored in session i.e. data for screen fields, to which screen it is passed, program name behind it, and how next screen is processed.

What is the alternative to batch input session?
Ans Call Transaction Method & Call Dialog
A situation: An ABAP program creates a batch input session. We need to submit the
program and the batch session in background. How to do it?
Ans Go to SM36 and create background job by giving job name, job class and job steps
(JOB SCHEDULING)

What is the difference between a pool table and a transparent table and how they are
stored at the database level?
Ans Pool Table -

1) Many to One Relationship.
2) Table in the Dictionary has the different name, different number of fields, and the fields have the different name as in the R3 Table definition.
3) It can hold only pooled tables.

Transparent Table –
1) One to One relationship.
2) Table in the Dictionary has the same name, same number of fields, and the fields have the same name as in the R3 Table definition.
3) It can hold Application data.
128) What are the problems in processing batch input sessions? How is batch input process
different from processing on line?
Ans Two Problems: -

1) If the user forgets to opt for keep session then the session will be automatically removed from the session queue (log remains). However, if session is processed we may delete it manually.
2) If session processing fails, data will not be transferred to SAP database table.

Is Session Method, Asynchronous or Synchronous?
Ans Synchronous

What are the different types of data dictionary objects?
Ans Different types of data dictionary objects:

How many types of tables exist and what are they in data dictionary?
Ans 4 Types of Tables:

1. Transparent tables - Exists with the same structure both in dictionary as well as in database exactly with the same data and fields. Both Open SQL and Native SQL can be used. 2. Pool tables 3. Cluster tables - These are logical tables that are arranged as records of transparent tables. One cannot use Native SQL on these tables (only Open SQL). They are not manageable directly using database system tools. 4. Internal tables

What is the step-by-step process to create a table in data dictionary?
Ans Steps to create a table:

Step 1: creating domains (data type, field length, Range).
Step 2: creating data elements (properties and type for a table field).
Step 3: creating tables (SE11).
Can a transparent table exist in data dictionary but not in the database physically?
Ans No, Transparent table do exist with the same structure both in the dictionary as well as in the database, exactly with the same data and fields.

In SAP Scripts, how will u link FORM with the Event Driven?
Ans In PAI, define function code and write code for the same.
Can you create a table with fields not referring to data elements?
Ans YES. e.g.:- ITAB LIKE SPFLI.
Here we are refering to a data object (SPFLI) not data element.

Is it compulsory to use all the events in Reports?

What is the difference between sum and collect?
Ans Sum: You can only use this statement within a LOOP. If you use SUM in an AT - ENDAT block, the system calculates totals for the numeric fields of all lines in the current line group and writes them to the corresponding fields in the work area. If you use the SUM statement outside an AT - ENDAT block (single entry processing), the system calculates totals for the numeric fields of all lines of the internal table in each loop pass and writes them to the corresponding fields of the work area. It therefore only makes sense to use the SUM statement in AT...ENDAT blocks.
If the table contains a nested table, you cannot use the SUM statement. Neither can you use it if you are using a field symbol instead of a work area in the LOOP statement.
Collect:

What are session method and call transaction method and explain about them?
Ans Session method – Use the BDC_OPEN_GROUP to create a session. Once we have created a session, then we can insert the batch input data into it with BDC_INSERT. Use the BDC_INSERT to add a transaction to a batch input session. We specify the transaction that is to be started in the call to BDC_INSERT. We must provide a BDCDATA structure that contains all the data required to process the transaction completely. Use the BDC_CLOSE_GROUP to close a session after we have inserted all of our batch input data into it. Once a session is closed, it can be processed.

Call Transaction -
In this method, we use CALL TRANSACTION USING to run an SAP transaction. External data does not have to be deposited in a session for later processing. Instead, the entire batch input process takes place inline in our program.