You are on page 1of 98

FQ

HP

1. How to design selection-screen?


Ans. Selection-screen begin of block b with frame.
Parameters: p_all RADIOBUTTON GROUP G,
P_in RADIOBUTTON GROUP G,
P_de RADIOBUTTON GROUP G.
Selection-screen end of block b.

2. Call transaction syntax in bdc?


Ans. Call transaction <tcode> using BDCDATA UPDATE A/S(A=ASYNCHORONOUS
,S=SYNCHORONOUS) MODE A/N/E(ALL DISPLAY,NO DISPLAY,ERROR DISPLAY)
MESSAGE INTO BDCMSGCOLL(STRUCTURE FOR MESSAGES)

Ans 2. Call transaction 'XK01' using it_bdcdata mode 'E'.

3. Difference b/w read and select statement?


Ans. Select single: for this stmt u have specify all primary keys. It is used to get data from
database table.
Read: it is used in internal table to get a particular data.
4. Which transaction you’re using in bdc?
Call transaction or batch input method

5. Difference b/w internal table and work area?


Internal table: it is used to hold the multiple records and it is a temporary storage location
in application server. i.e. The data inside an internal table was not saved anywhere in SAP.
Internal tables are dynamic memory storage locations and hence need not to provide the size.

The scope of an internal table is inside a program only.

Syn: DATA <int tab> LIKE TABLE OF <DB table>.

WORKAREA: It is used to hold once record at a time and also it is used to increase
performance of the data processing.

Syn: DATA <WA> like line of <int tab>


Q. how to edit text in script? And how to migrate scripts into smart forms?

First Go to smart forms T-Code


Goto utilities->Migrate form
There Give the name of the Script that has to be migrated
Ans 2.
Here are two way through which you can convert sapscript into smartforms.

1. This is basically a function module, called FB_MIGRATE_FORM.


You can start this function module by hand (via SE37), or create a small ABAP which migrates
all SAPscript forms automatically.
2. You can also do this one-by-one in transaction SMARTFORMS, under
Utilities -> Migrate SAPscript form.
You could also write a small batch program calling transaction SMARTFORMS and running the
migration tool.

Note: While converting sapscript into smartforms, only layout has passed. But you have do all
logic coding in your smartforms.

6. What are indexes?


Ans. The primary index contains the key fields of the table and a pointer to the non-key
fields of the table. The primary index is created automatically when the table is created in the
database.
You can also create further indexes on a table. These are called secondary indexes. upto 9
secondary indexes can be created.This is necessary if the table is frequently accessed in a way
that does not take advantage of the sorting of the primary index for the access.

7. What are pooled and cluster table?


Ans. pooled tables:
-- These r small tables having 100 records in each of them! But, these tables were used
for storing the system data!
-- In these tables there will be no keys! These tables r having many - to - one
relationship!
-- These tables r having different names which doesn’t match with database tables.

Cluster tables:
--These are very large tables so many records in each of them! But, these tables were
used for storing the system data!
--In these tables at least one primary key will be present to find the record! These tables
r having many - to - one relationship!
--These tables were used by basis people to calculate the system performance!
8. Difference between select single and select upto 1 row in sap abap?
Ans. According to SAP Performance course the SELECT UP TO 1 ROWS is faster than SELECT
SINGLE because you are not using all the primary key fields.
Select single is a construct designed to read database records with primary key. In the
absence of the primary key, it might end up doing a sequential search.
Whereas the select up to 1 row may assume that there is no primary key supplied and will try
to find most suitable index.
The best way to find out is through Sql trace or runtime analysis.
Use "select up to 1 rows" only if you are sure that all the records returned will have the same
value for the field(s) you are interested in. If not, you will be reading only the first record which
matches the criteria, but may be the second or the third record has the value you are looking
for.
The System test result showed that the variant Single * takes less time than Up to 1 rows as
there is an additional level for COUNT STOP KEY for SELECT ENDSELECT UP TO 1 ROWS.

The 'SELECT SINGLE' statement selects the first row in the database that it finds that fulfils the
'WHERE' clause. If this results in multiple records then only the first one will be returned and
therefore may not be unique.

Mainly: to read data from the 'SELECT .... UP TO 1 ROWS' statement is subtly different. The
database selects all of the relevant records that are defined by the WHERE clause, applies any
aggregate, ordering or grouping functions to them and then returns the first record of the result
set.

ex code

Difference Between select single * and select upto n rows,

Select Single * Select upto n rows


1. It will fetch only one record from the 1. It will fetch all the records with which the where
data base in which it satisfies the where condition satisfies and displays the first record among
condition. the selected records.
2. It has high performance compare to 2. Lower in performance, because this statement will
select upto n rows. look all the related key field values in a given table.
3. Syntax: select single * from lfa1 into 3. Syntax: select * from lfa1 upto 1 rows into table
table l_wa_lfa1. l_t_lfa1..

9. bapi and badi?

Ans. BAPI - These are published programs which is used to upload data into SAP system.
BAPI is Business Application Programming Interface and has the role as communication platform
for developing applications, e.g. booking material documents from flat files, see more in trx
BAPI.

BAPI - Business Application - commonly a function module that is normally RFC enabled as well
and acts as a method of a business object. For example, Sales Order as the business object with
a method of create - the BAPI is BAPI_SALESORDER_CREATEFROMDAT2.

BAdI is Business Add-In, and it should take the place from the user- exits (trx: SE18, SE19)

BADI - This is a program enhancement technique. SAP provides BADI openings in the standard
programs. You need to search for the suitable BADI as your requirement and then do the coding
and plug in the program.

A BADI is a Business Add-in - one of SAP's methods of implementing a user-exit or change to


standard SAP code. BADI's are ABAP object based changes instead of the more common
subroutines/function modules.

To implement BADI,

Follow the below steps to find out what all BADI's are called when you press any button in any
transaction.

1) Goto se24 (Display class cl_exithandler)

2) Double click on the method GET_INSTANCE.

3) Put a break point at Line no.25 (CASE sy-subrc).

Now

4) Execute SAP standard transaction

5) Press the required button for which you need to write an exit logic, the execution will stop at
the break point.

6) Check the values of variable 'exit_name', it will give you the BADI name called at that time.

7) This way you will find all the BADIs called on click of any button in any transaction. .
 performance tuning ?

Please find below the ABAP Code Performance tuning tips.

1. Run Extended syntax checks with character literals checkbox switched on & Code Inspector to
rectify all relevant errors and warning (e.g. Use the results of the above checks to remove all
variables/constants etc that are declared but are not used)

2. Internal Table is defined with “TYPE STANDARD TABLE OF” & Work-Areas is used instead of
header lines

3. In SELECT statement, only the required fields are selected in the same order as they reside on
the database table/structure/view

4. "SELECT *" should not be used in any case.

5. Usage of JOIN is limited to a maximum of 2 i.e. not more than 3 database tables are joined at
one time

6. CHECK that the internal table used in FOR ALL ENTRIES is NOT empty as this will retrieve all
entries from the table

7. SORT inside LOOP is not advisable and should not be used.

8. Sort internal table by fields in the correct order, which are used in a READ TABLE statement
using BINARY SEARCH. If the order of sorting is invalid the BINARY SEARCH will never work.

9. Transaction SE30 (ABAP Runtime Analysis) must be checked to measure/compare program


performance/runtime if program has multiple inefficient databases selects or complicated
internal table operations

10. Use transaction ST05 (SQL Trace) to see what indices your database accesses are using.
Check these indices against your “where” clause to assure they are significant. Check other
indices for this table and where you have to change your “where” clause to use it. Create new
indices if necessary, but do not forget to check the impact by consulting onsite coordinator.

10. BAPI Extension?

Ans.

Hi
It's the same but the structure are different of course.

Here you can find the structures BAPI_TE_<TABLE NAME> and BAPI_TE_<TABLE NAME>X.

For example for Z-field in MARA:


BAPI_TE_MARA and BAPI_TE_MARAX.

So if you add new field in MARA and you want to transfer its value by this BAPI, you have to add
it in the BAPI structures too.

So you should have:

- MARA-ZFIELD
- BAPI_TE_MARA-ZFIELD
- BAPI_TE_MARAX-ZFIELD.

But while BAPI_TE_MARA-ZFIELD is like MARA-ZFIELD, BAPI_TE_MARAX-ZFIELD has to be a flag


(so long only one char).

So if you've to transfer the new fields by BAPI you've to fill the extensions structure in this way:

TABLES: BAPI_TE_MARA, BAPI_TE_MVKE, ......

DATA: EXTENSIONIN LIKE TABLE OF BAPIPAREX.


DATA: EXTENSIONINX LIKE TABLE OF BAPIPAREXX

 New fields of MARA


BAPI_TE_MARA-ZFIELD1 = .....
BAPI_TE_MARA-ZFIELD2 = .....
BAPI_TE_MARA-ZFIELD3 = .....
............................
BAPIPAREX-STRUCTURE = 'BAPI_TE_MARA'.
BAPIPAREX+30 = BAPI_TE_MARA.

APPEND BAPIPAREX TO EXTENSIONIN.

BAPI_TE_MARAX-ZFIELD1 = 'X'.
BAPI_TE_MARAX-ZFIELD2 = 'X'.
BAPI_TE_MARAX-ZFIELD3 = 'X'.
............................
BAPIPAREXX-STRUCTURE = 'BAPI_TE_MARAX'.
BAPIPAREXX+30 = BAPI_TE_MARAX.

APPEND BAPIPAREXX TO EXTENSIONINX.


 New fields of MVKE
BAPI_TE_MVKE-ZFIELD1 = .....
BAPI_TE_MVKE-ZFIELD2 = .....
BAPI_TE_MVKE-ZFIELD3 = .....
............................
BAPIPAREX-STRUCTURE = 'BAPI_TE_MVKE'.
BAPIPAREX+30 = BAPI_TE_MVKE.

APPEND BAPIPAREX TO EXTENSIONIN.

BAPI_TE_MVKEX-ZFIELD1 = 'X'.
BAPI_TE_MVKEX-ZFIELD2 = 'X'.
BAPI_TE_MVKEX-ZFIELD3 = 'X'.
............................
BAPIPAREXX-STRUCTURE = 'BAPI_TE_MVKEX'.
BAPIPAREXX+30 = BAPI_TE_MVKEX.

APPEND BAPIPAREXX TO EXTENSIONINX.

and so... (for all material tables you've enhnced)

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'


..............
TABLES
..............
EXTENSIONIN = EXTENSIONIN
EXTENSIONINX = EXTENSIONINX.

When this BAPI works, it runs a piece of code like this to transfer the data from extension
structure to database table:

LOOP AT EXTENSIONIN.
CASE EXTENSIONIN-STRUCTURE.
WHEN 'BAPI_TE_MARA'.
MOVE EXTENSIONIN+30 TO BAPI_TE_MARA.
WHEN 'BAPI_TE_MVKE'.
MOVE EXTENSIONIN+30 TO BAPI_TE_MVKE.
WHEN ........
....................................
ENDCASE.
ENDLOOP.
LOOP AT EXTENSIONINX.
CASE EXTENSIONIN-STRUCTURE.
WHEN 'BAPI_TE_MARAX'.
MOVE EXTENSIONIN+30 TO BAPI_TE_MARAX.
WHEN 'BAPI_TE_MVKEX'.
MOVE EXTENSIONIN+30 TO BAPI_TE_MVKEX.
WHEN ........
....................................
ENDCASE.
ENDLOOP.

After check the field where the flag is setted and move the value to database (i.e. MARA,
MVKE ,.....)

Max.

12. Debug scripts?


Ans. One way to start the script debugger is:

Se71->utilities->activate debugger.

This may be a time-consuming process. Instead, open a session and execute the program
RSTXDBUG. Even if you follow the above menu path to activate the script, it will internally
execute the program RSTXDBUG. So you are saving some time in going through all of the above
processes.

Another advantage of using this program: when a developer works in the support environment
and the client requests to makes some changes to a form, but doesn't know which form, he can
just show the form output and request for changes.

Example: Transaction Code HRBEN0001. This contains a confirmation form, benefits form and
others.

In this scenario, just open the other session and run the program RSTXDBUG program, click a
push button on the transaction code and if a form is associated with that button it is
automatically opened in debug mode. Once the form is in debug mode you can find the form
name then open one more session and make the changes to the form while debugging it.

13. Different types of windows in SMARTFORMS?


Main window:
In a main window you display text and data, which can cover several pages (flow text). As
soon as a main window is completely filled with text and data, the system continues displaying
the text in the main window of the next page. It automatically triggers the page break.
Secondary Window:
In a secondary window you display text and data in a predetermined output area. There
is no flow text display with page break. If you position a secondary window with the same name
on several pages, the system displays the contents of this secondary window on each page.
Copy window:
You use the copies window to define an output area for the print output, whose content you
want to appear either only on the copy or only on the original. This allows you to flag copies as
copies when the form is printed.

Final window:
You may want to display or query values on the first page that are determined only during
processing. For example, you may want to name the grand total in the letter text of
an invoice. However, this amount is determined only after listing all individual items. Or you may
want to query on the first page within a condition the total number of pages, which the system
calculates only after processing all pages.
In such a case, you use the final window: Processing first skips all windows of this type in the
tree and works its way to the end of the tree. Only after the actual processing is finished, the
final windows are processed in the order in which they appear in the tree (from top to
Bottom). Now any information is available that is known only at the end of the form processing.

14. What is function module?

Ans. Function modules are procedures that are defined in function groups (special ABAP
programs with type F) and can be called from any ABAP program. Function groups act as
containers for function modules that logically belong together. You create function groups and
function modules in the ABAP Workbench using the Function Builder.

Function modules allow you to encapsulate and reuse global functions in the R/3 System. They
are stored in a central library. The R/3 System contains a wide range of predefined function
modules that you can call from any ABAP program. Function modules also play an important
role in database updates and in remote communications between R/3 Systems or between an
R/3 System and a non-SAP system.

Unlike subroutines, you do not define function modules in the source code of your program.
Instead, you use the Function Builder. The actual ABAP interface definition remains hidden from
the programmer. You can define the input parameters of a function module as optional. You can
also assign default values to them. Function modules also support exception handling. This
allows you to catch certain errors while the function module is running. You can test function
modules without having to include them in a program using the Function Builder.

The Function Builder also has a release process for function modules. This ensures that
incompatible changes cannot be made to any function modules that have already been
released. This applies particularly to the interface. Programs that use a released function
module will not cease to work if the function module is changed.
15. BAPIS AND RFC’S?

Technically, not much at all. They are both remote enabled functions that can be accessed from
outside of SAP (to be more technically correct, from outside of the ABAP stack).

From a usage/functional perspective however, BAPIs are a little bit more special from RFCs.

Bapis:
- are designed as the methods of business objects in the business object repository (accessable
using transaction BAPI or SWO1)
- have non-technical parameter names (the technical field names in SAP are mapped)
- have a fixed interface and functionality across all SAP releases (this is probably the key point as
it means you can develop integrations with them which do not need to be changed when you
upgrade)

Generally, if you are trying to find a function for a particular requirement you should look for a
BAPI first, then for a RFC function which has a released status (check the function attributes in
SE37), and then just a normal RFC last.

The benefit of an RFC function with released status means that it also has a fixed interface
which will not change with new SAP releases.

Hope that helps.

16. MOVE and MOVE-CORRESPONDING stmts?


Ans. MOVE-CORRESPONDING
Syntax
MOVE-CORRESPONDING struc1 TO struc2.
Effect
Structures must be specified for struc1 and struc2. All components with the same name are
searched for in struc1 and struc2 and the content of components in struc1 is assigned to the
components with the same name in struc2. All other components are not affected.
Nested structures are fully expanded. The names of the components are compared to the
lowest common level. For each comp component pair with the same name, the
MOVE struc1-comp TO struc2-comp.
statement is executed, and - if necessary - the corresponding conversions are performed.

MOVE:
Move the content of an internal table/variable to another internal table/variable
Syn: MOVE T_TEST-FIELD1 TO T_TEST2-FIELD1.
ACCENTURE

1. how to display footer in last page in forms?

Ex: there is 4 pages we want to display footer in 4th page

there is 3 pages we want to display footer in 3rd page

there is 1 page we want to display footer in 1st page

2. What is table controls in BDC?

Ans. When working with BDC for Table Control you require work around to get next page of table
control. You need to use the BDC OKCODE ‘=P+’.BCD_OKCODE is for Page down that can be used for
scrolling down in table control. so you can fill data in to table grid.

Ans 2. BDC table control is an area on the screen in which you can display data in tabular form. You
process it using a loop. Table controls are comparable to step loop tables. While a table control consists
of a single definition row, step loop blocks may extend over more than one row. Table controls are more
flexible than step loops, and are intended to replace them.

When you need to handle a scenario like in sales order, it may contain more than one material, if you
have more than one material we have to use table control, it will have number of columns and number
of rows.
Table controls allow you to enter, display, and modify tabular data easily on the screen

3. There is a chance to do multiple transactions in call transaction?

Ans. Yes, but at a time it is not possible. After completion of first transaction

4. What is protect and end protect in scripts?

Ans. You can specify either in the style or in the layout set that a particular paragraph should not be split
in two by a page break. If the page protect attribute is set then the complete paragraph is always
output on a single page. This property applies only to that particular paragraph. SAP Script provides the
PROTECT... ENDPROTECT command pair to allow you to define the areas to be protected against a page
break on an individual basis. Thus the PROTECT/ENDPROTECT commands may be regarded as a kind of
conditional NEW-PAGE command, the condition being whether or not the lines enclosed between the
two commands fit in the space remaining in the current main window.

5. change pointer technique in ale/idocs?

6. what is message type and idoc type?

7.how to find suitable badi for u r requirement?


8. how to use select-option without ranges?

9.what is external subroutine?

10.how to use tables in function modules?

11. how to display alv output in 3 blocks using normal alv reports( like header part , middle part,
footer part)?

12. What are events in alvs?

13. 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 contains the field in which cursor will be.

Example code:
Perform bdc_field using 'BDC_CURSOR'
'PROJ-PSPID'.
Perform bdc_field using 'BDC_OKCODE'
'=BU'.

Accneture(client):

1. How can u show the difference in ur tech spec from others?


2. How can you take care of performance of a abap program?
3. pre-requisit for for all entries? what happened if above internal table was not filled?
4. Which parameter in a function module will u prefer to export tables?
5. What is IN UPDATE TASK?
Ans. Update task mode in function module
We can call a function module in Update task mode by using “IN UPDATE TASK"
statement. It allows you to call a function module but it will not be executed/called until an
update task is initiated by the 'COMMIT WORK' statement in the report.
This means that the program logic after calling the FM will immediately continue with
the next line of ABAP code and the function module will wait for the commit work statement
and after that it will be executed/called.
Example:
CALL FUNCTION 'ZAU_FUNCTION' IN UPDATE TASK
EXPORTING
P_UNAME = sy-uname.
Loop at it_mara to wa_mara.
"Program continues without executing the function.
endloop.
commit work. "Commits all work to database and also starts all FM's running in update task

Why it’s used ?


Suppose you need to call / perform some actions only after database updation and not before
that.

6. How can u find out a Badi?


7. Process to find out a user exit?
8. Tell me the Badi name u had used?
9. Any one of the Bapi name u had used?
10. How can we transalate language of sf standard text?

11. How can we create update fm?


Ans. Creating Update Function Modules

To create a function module, you first need to start the Function Builder. Choose Tools

® ABAP Workbench, Function Builder. For more information about creating function modules,
refer to the ABAP Workbench Tools documentation.

To be able to call a function module in an update work process, you must flag it in the Function
Builder. When you create the function module, set the Process Type attribute to one of the
following values:

 Update with immediate start:


Set this option for high priority ("V1") functions that run in a shared (SAP LUW). These
functions can be restarted by the update task in case of errors.
 Update w. imm. start, no restart:
Set this option for high priority ("V1") functions that run in a shared (SAP LUW). These
functions may not be restarted by the update task.
 Update with delayed start
Set this option for low priority ("V2") functions that run in their own update
transactions. These functions can be restarted by the update task in case of errors .
To display the attributes screen in the Function Builder, choose Goto → Administration.

Defining the Interface

Function modules that run in the update task have a limited interface:

 Result parameters or exceptions are not allowed since update-task function modules
cannot report on their results.
 You must specify input parameters and tables with reference fields or reference
structures defined in the ABAP Dictionary.

12. Instead of using commit and rollback why u r using IN UPDATE TASK?
13. Some tables of customer master?
14. Which module u are working?
15. Have u worked on pricing in sd?
16. Have u write any formulas?
17. Have u worked on currency conversions?
18. vbpa Table description?
19. Have u worked on IDOCS?
20. Have u knowledge on Adobe forms?
21. Have u worked on enhancements frame work?
22. ALV FM'S?

Wipro

1. Difference b/w scripts and Smartforms?


Ans.
1) Script is Client Dependent whereas SMARTFORM is client Independent.
2) We can't cave script without Main window but SMARTFORM we can.
3) After executing SMARTFORM it generates a function module Script doesn't.
4) We can set background Image to SMARTFORM but not in Script
5) We can add color in SMARTFORM but not in Script.
6) In Script we can maintains up to 99 main windows but in SMARTFORM can maintain only one
Main window.
We cannot create sap script without main window.
But we can create smart form without main window.

2. Difference b/w classical and interactive reports?

3. Difference b/w user-exit and customer exit?


Ans. 1.USER EXITS are FORMS and are called by SAP standard programs using PERFORMS
(subroutines).
CUSTOMER EXITS are FUNCTIONS so they are called using CALLFUNCTION (function modules)
2. Inside the form (user exit) you can read and change almost any global data from host program.
Inside a function (customer exit) you can only access your import/export/changing/tables parameters.
3. User exits are more flexible because you have more information to use in your code but on the other
hand, it is very easy to manipulate erroneously global data and lead the standard program to a dump or
even to make database inconsistent.
Customer exits are more restrictive but you are sure any change you can make to any parameters will
never lead to inconsistency.
4. User-exit doesn’t have any classification.
In customer-exit we have function-module exit, screen exit, menu exit.
5. User exits are basically designed For SD module.
Customer exits are available for MM, SD, FI, HR¦..Basically designed for all modules.

4. Tell me about roles and responsibilities of your project?


5. Events in reports?
Ans. LOAD OF PROGRAM
INITIALIZATION
AT-SELECTION SCREEN ON
AT-SELECTION SCREEN
START-OF-SELECTION
TOP-OF-PAGE
END OF SELECTION
END OF PAGE

Q. Difference b/w RFC’s and BAPI’s ?


Bapi can't handle exceptions, the calling program has to handle it whereas RFC fm can handle it.

Every BAPI is a RFc whereas every RFC is not a BAPI.

Rfc enabled are basically for sap systems whereas BAPI are for non sap systems like i want to
access data via java or vb.

Ans 2. -- BAPI are RFC enabled function modules.


-- The difference between RFC and BAPI are business objects. You create business objects and
those are then registered in your BOR (Business Object Repository) which can be accessed outside the
SAP system by using some other applications (Non-SAP) such as VB or JAVA. In this case u only specifies
the business object and its method from external system in BAPI there is no direct system call.
-- While RFC are direct system call Some BAPIs provide basic functions and can be used for most
SAP business object types. These BAPIs should be implemented the same for all business object types.
Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs.
Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
6. Difference b/w BDC and Bapi?
Ans.

 BDC stands for Batch Data Communication; Through BDC you are going to update
screens.
 BAPI stands for Business Application Programming Interface. Through bapi you are going
to update Data Base Tables directly.

Whenever screen of a particular transaction changes, you need to redo the work in case of
BDC.

Whereas in case of BAPI SAP will take care as it will update the Database Tables Directly.

BAPI is directly updated the database instead BDC run through the screen flow.
So BAPI can't handle all the flow logic checking and enhancement put by programmer to
facilitate the user requirement.

BAPI is a higher end usage for transferring the data from SAP to non-SAP and vice-versa. for
ex: if we are using VB application, where in that we want to connect to SAP and retrieve the
data, and then change and update the data in SAP for that purpose we can use that.

There is one more advantage using BAPI instead of BDC. When we go for up gradation, there
might be possibility to change the screen elements for transactions depending on the
requirement.

 In that case, our BDC program may or may not work (depending on the screen changes they
have made).

BAPI is used only when it is available for the particular transaction like Delivery Sales order. But
BDC can be used for any transactions which have screen and fields.

7. How to handle errors in call transaction method in bdc?


Ans. Errors while updating the database using call transaction technique are trapped using a
structure bdcmsgcall, whose field msgtyp become ‘e’ when an error record is encountered.
Those records are formatted using format_message function call in the desired format and
stored in an internal table for listing of all error records in one shot.

----------------------------------------
1. Diff b/w call transaction and session methods?
Ans. Here the differences between session and call transaction

Call transaction:
1) Synchronous process
2) Asynchronous /synchronous update
3) Single transaction only handled
4) Small amount of data uploaded.
5) Explicit error handling (Means all the error records move to internal table and validate)
6) Time requirement is low.

Session method:
1) Asynchronous process.
2) Synchronous update.
3) Multiple transactions can be handled (Means u can upload the data at a time for more than
one t-code).
4) Huge amount of data can be uploaded.
5) Implicit error handling (Means for errors SM35)
6) Execute the session on a specific date. (By using hold date parameter)
7) Time requirement is more

2. Events in alv reports?


These are the main events that are used in an ALV report.
1. USER_COMMAND
2. TOP_OF_PAGE
3. PF_STATUS_SET
4. TOP_OF_LIST
5. END_OF_PAGE
6. END_OF_LIST
7. SUBTOTAL_TEXT

3. Purpose of start-of-selection and end-of-selection and when they are triggered?


Ans.
START-OF-SELECTION: this will trigger after leaving the selection-screen and before extracting
data.
Purpose: it is used to extracting the data
END-OF-SELECTION: this is used to process the data and display the data. This will trigger after
extracting the data before processing the data.
4. Where we can write the at line selection screen event (how it works)?
5. How to display color for particular field in ALV?
EMPHASIZE is the command to provide the colors in ALV report.
Syn: CXYZ
C for getting color
X color number
Y intensity of color
Z foreground/background (1-back ground, 0- foreground)

6. How to find BADI’S?

Ans. Scenario: Need to find the name of the BADI available in a transaction

1. Go to Transaction SE24
2. Enter the Object Type CL_EXITHANDLER and click on Display.

3. Double Click on method "GET_INSTANCE".

4. Put a Break-point on

Call method cl_exithandler=>get_class_name_by_interface

5. Run any Transaction for which you need enhancements.


6. The execution will stop at the break point. Check the values of variable 'exit_name', it
will give you the BADI name called at that time.

This way you will find all the BADIs called on click of any button in any transaction.

Ans 2. There are several ways to find BADIs in the program.

1. Set a break-point in method ‘CL_EXITHANDLER=>GET_INSTANCE’. Because old BAID


technology will always call this method to get the BADI instance.

2. Search string ‘CL_EXITHANDLER=>GET_INSTANCE’ in the program. This drawback of this


method is that the program may call another program in the runtime. In this case, you will be
able to find the BADI in another program.

3. You can also go the t-code SPRO, you can also find plenty of BADIs in the related area.

4. You can also find the BADI call using ST05. Below are the steps:
 Go to ST05, then choose ‘table buffer trace’ and activate the trace.
 Run the t-code from where you want to find the BADI.

 Deactive the trace and then display trace.

 Using selection criteria object ‘V_EXT_IMP’ and ‘V_EXT_ACT’ and then you can get
called BADI list.

This analyzing technique is based on the fact that all BAdIs are registrated in SAP database
tables. So for each BAdI call these database tables will be accessed. The BAdI database tables
are SXS_INTER, SXC_EXIT, SXC_CLASS and SXC_ATTR. These tables are always accessed by the
views V_EXT_IMP and V_EXT_ACT. So these two ABAP views (T: SE11) will be the basis for the
trace.

Ans 3.

FIND A BADI
these steps should enable you to find any BADI related to any transaction in a matter of
minutes.
1) Go to the transaction SE37 to find your function module.
2) Locate the function SXV_GET_CLIF_BY_NAME.
3) Put a breakpoint there.
4) Now open a new session.
5) Go to your transaction.
6) At that time, it will stop this function.
7) Double click on the function field EXIT_NAME.
8) That will give you name of the BADI that is provided in your transaction.

OR

GOTO SE24 - CLASS BUILDER


Go the class CL_EXITHANDLER
go to its method GET_INSTANCE

and put a breakpoint in this line calling the method


CALL METHOD CL_EXITHANDLER = > GET_CLASS_NAME_BY_INTERFACE

7. Diff b/w BDC and BAPI?

Ans.
A BAPI is a method of a SAP Business Object. BAPI enables SAP and third party applications to
interact and integrate
with each other at the Business Object / Process level.

Check this link to know more about BAPI.


http://www.sapgenie.com/abap/bapi/example.htm
http://sappoint.com/abap/

Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided
since the early versions of R/3. BDC is not a
typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and
so it is not bi-directional.
BDC works on the principle of simulating user input for transactional screen, via an ABAP
program. Typically the input comes in the form
of a flat file. The ABAP program reads this file and formats the input data screen by screen into
an internal table (BDCDATA). The
transaction is then started using this internal table as the input and executed in the background.

In ‘Call Transaction’, the transactions are triggered at the time of processing itself and so the
ABAP program must do the error handling.
It can also be used for real-time interfaces and custom error handling & logging features. .

To know more about BDC,


check the link.
http://sappoint.com/abap/

Main differences are...

In case of bdc data transfer takes place from flat file into sap system ie the file existing in sap
system to sap system.

Where as bapi's are remotely enabled function modules which are assigned to some business
objects n used to transfer the data between different business partners who are using different
systems other than sap.

not only that...

when you plan to upgrade your system version then bdc will not support those upgradation
where as bapi's will support.

7. Anything is stored in DB while creating VIEWS?


Ans. data of a view is derived from one or more tables, but not stored physically .

 is it possible to bring select option in module pool screens?


Ans. Create SELECT-OPTIONS in module pool screen using two methods as shown.

Method 1:—-

a) Create a subscreen area in your screen layout where you want to create the select options.

b) In the top include of your module pool program declare a selection screen as a subscreen e.g.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.


Select-options s_matnr for mara-matnr.
SELECTION-SCREEN END OF SCREEN.

c) In the PBO and PAI of the main screen where the select options needs to be created do a call
subscreen of the above screen (100).

CALL SUBCREEN sub_area INCLUDING <program> <screen>

This CALL SUBSCREEN statement is necessary for transport of values between screen and
program.

Note: All validations of the selection screen fields e.g. the s_matnr field created above should
be done in selection screen events like AT SELECTION-SCREEN etc and not in PAI. These selection
screen validations etc should be done in the top include only.

Method 2:——-

a) Create 2 separate fields in your screen layout – one for the low value and one for the high
value. Insert an icon beside the high value which will call the multiple selections popup screen
on user command. Use function module COMPLEX_SELECTIONS_DIALOG to achieve this.

continued ……

struc_tab_and_field-fieldname = con_cust. ” ‘KUNNR’


struc_tab_and_field-tablename = con_kna1. ” ‘KNA1′.
CALL FUNCTION ‘COMPLEX_SELECTIONS_DIALOG’ EXPORTING*
TITLE = ‘ ‘
text = g_titl1 ” ‘Customers’
tab_and_field = struc_tab_and_field
TABLES RANGE = rng_kunnr
EXCEPTIONS
NO_RANGE_TAB = 1
CANCELLED = 2
INTERNAL_ERROR = 3
INVALID_FIELDNAME = 4
OTHERS = 5.
IF NOT rng_kunnr[] IS INITIAL.
* Read the very first entry of the range table and pass it to
* dynpro screen field
*READ TABLE rng_kunnr INDEX 1.
IF sy-subrc = 0.
g_cust = rng_kunnr-low.
ENDIF.
ENDIF.

You can use the return table rng_kunnr to populate your own internal range table with the
values entered by the user. Basically here you are just simulating the work of a select-options
parameter by module pool screen elements.

Honey Well

1. Use of driver program in smart forms?


Ans. This is used to process the data and to pass the data to form (Layout).

2. Use of FM in driver program of SF?


4. what are the fields displayed in Purchase Order creation, where you get those fields?
5. Which BAPI your used?
Ans. Both standard and user defined
6. COMMIT and ROLL BACK in bapi?
Ans. Commit is the thing which saves the changes you made to the database .it is an
interface technique it is a direct input method.
for example you have inserted some data into one table by using this BAPI technique but you
not done the Commit BAPI then what happens is the changes u made to the database cannot
been seen in the table these will get effective once u have Done the Commit BAPI.
Rollback
see by taking the above example only we can know what is Rollback it is nothing but UNDO
option in ms office se until saving if we want one step back we will do it by undo option am i
right.
Similarly until commit in i.e. nothing until saving the changes made u can delete the modified
change.
Call function 'BAPI_PO_CREATE1'
'....................
After that
If u wants to do commit, just add this statement.
COMMIT WORK.

If u wants to do roll back, just add this statement


ROLLBACK WORK.

9. Names of Development, testing, quality servers?


10. What is LOCK OBJECT?
Ans. The SAP System synchronizes simultaneous access of several users to the same data
records with a lock mechanism. When interactive transactions are programmed, locks are set
and released by calling function modules (see Function Modules for Lock Requests). These
function modules are automatically generated from the definition of lock objects in the ABAP
Dictionary.
There are 3 types

1. READ LOCK(Shared lock)


It allows read access for other transactions but not write access to locked area of table data
2. WRITE LOCK
It allows write access for other transactions but not read access to locked area of table data
3. Enhanced lock
This is advance write lock

Whenever lock object applies on a table, two function modules will work.

Those are 1) ENQUE: It is used to lock the table while a command is working on table.
2) DEQUE: It is used to unlock the table after command working is complete.

11. Before Developing Objects we are create transforms/transports, who created those
transforms/transports?
12. T.Code for transports creation?
Ans. The main transactions used to create/maintain a Transport Request are:
Tx SE01, Tx SE09 and Tx SE10.
With Development and Configuration Transport Requests are usually created
automatically then use Tx SE09 or Tx SE10 to release the Request and Task .

IGATE

1. Different types of internal tables?


Ans. Internal tables are 2 types 1) INDEX
2) Hashed
Index internal tables are again two types: 1) Standard int table
2) Sorted int table
STANDARD int table:
It allows duplicate records
No need to maintain unique or non-unique key
Record will be added to int table with APPEND key word
Records will be searched using linear search
Internal table table will be sorted using SORT key word explicitly

Syntax: Data: <int_tab> like STANDARD table of <wa>.

SORTED int table


It doesn’t allows the duplicate records
At least one field should be unique/non-unique key
Records will be added to int table using INSERT key word
Binary search is used to search the records from int table
No need to sort the int table because as a default int table will be sorted

Syntax:
Data: <int tab> like SORTED table of <wa> with UNIQUE/NON-UNIQUE KEY <F1>.

2) HASHED int table


It also doesn’t allows the duplicate records
At least one field should be unique
Records will be added using INSERT key word
Mid- point algorithm is used to search the records from int table.

Syntax:
Data: <int tab> like HASHED table of <WA> WITH UNIQUE KEY <F1>.

2. Inner Join syntax?


Ans. Select t001~bukrs too1~butxt too1~ort01 t001~land1 knb1~kunnr knb1~erdat into
it_final from too1 innerjoin knb1
On t001~bukrs = knb1~bukrs
Where t001~bukrs in s_bukrs.
3. FM’s in outbound side of idoc’s?
4. How you can display data using TBC(connection from one layer to another layer)?
-------------------------------------------------------------------
1. Different types of invoices?
2. What are indexes?
Indexes allow the database application to find data fast; without reading the whole table.
An index can be created in a table to find data more quickly and efficiently.
The users cannot see the indexes, they are just used to speed up searches/queries.
Note: Updating a table with indexes takes more time than updating a table without
(because the indexes also need an update). So you should only create indexes on
columns (and tables) that will be frequently searched against.

3. If bdc_close_group FM is not written in session method then what’s the effect?


Ans. 1. BDC_OPEN_GROUP - This FM is used to create a session in Application Server.
2. BDC_INSERT - This FM is used to insert the internal table records into
Session memory.
3. BDC_CLOSE_GROUP - This FM is used to save the records in session
Memory and close it to process later.
4. If records are 200 or 300 in that case secondary indexes are not working then what can
u do?
5. What is flow of projects?
6. Tcode for quotation

Robert Bosch
1. ASAP methodology in sap abap?

Ans. ASAP Roadmap

Use

The ASAP Roadmap provides the methodology for implementing and continuously optimizing
your SAP System. It divides the implementation process into five phases and offers detailed
Project Plans to assist you (in Microsoft Project format). The documentation stored at each level
of the Roadmap tree structure contains recommendations on implementing your SAP System
and links to helpful tools and accelerators.

Purpose

When you install the Implementation Assistant you can choose from several Roadmap types and flavors.

Roadmap types Roadmap flavors

Implementation R/3 System (Continuous Improvement)


BW

APO

Business-to-Business Procurement

Global ASAP R/3 System

Upgrade R/3 System

In your implementation project (Roadmap type: Implementation), you can bring together
several Roadmap flavors in one Roadmap. The Implementation Assistant also helps you to
implement a combination of software implementation projects.

Features

The implementation of your SAP System covers the following phases:

1. Project Preparation
In this phase you plan your project and lay the foundations for successful
implementation. It is at this stage that you make the strategic decisions crucial to your
project:

o Define your project goals and objectives

o Clarify the scope of your implementation

o Define your project schedule, budget plan, and implementation sequence

o Establish the project organization and relevant committees and assign resources

2. Business Blueprint
In this phase you create a blueprint using the Question & Answer database (Q&A db),
which documents your enterprise’s requirements and establishes how your business
processes and organizational structure are to be represented in the SAP System. You also
refine the original project goals and objectives and revise the overall project schedule in
this phase.

3. Realization
In this phase, you configure the requirements contained in the Business Blueprint.
Baseline configuration (major scope) is followed by final configuration (remaining scope),
which can consist of up to four cycles. Other key focal areas of this phase are conducting
integration tests and drawing up end user documentation.

4. Final Preparation
In this phase you complete your preparations, including testing, end user training,
system management, and cutover activities. You also need to resolve all open issues in
this phase. At this stage you need to ensure that all the prerequisites for your system to
go live have been fulfilled.

5. Go Live & Support


In this phase you move from a pre-production environment to the live system. The most
important elements include setting up production support, monitoring system
transactions, and optimizing overall system performance.

After your system has gone live, you can use a separate Roadmap with six work
packages, in order to optimize your SAP System continuously.

These phases are the main milestones for your SAP System implementation project. Each phase
has:

 Work packages, which consist of activities, for which project teams are responsible.
 Activities, which consist of tasks, which are processed by one or more team members.

 Tasks, which are carried out by a project team member. You can also access the How-to
sections and accelerators at this level.

2. Difference b/w supporting/up gradation and implementation project in detail?

3. Purpose of hide statement?

Ans. You use the HIDE technique while creating a list level to store line-specific information
for later use. To do so, use the HIDE statement as follows:

HIDE <f>.

This statement places the contents of the variable <f> for the current output line (system field
SY-LINNO) into the HIDE area. The variable <f> must not necessarily appear on the current line.

To make your program more readable, always place the HIDE statement directly after the output
statement for the variable <f> or after the last output statement for the current line.

As soon as the user selects a line for which you stored HIDE fields, the system fills the variables
in the program with the values stored. A line can be selected

 By an interactive event.
For each interactive event, the HIDE fields of the line on which the cursor is positioned
during the event are filled with the stored values.
 By the READ LINE statement.
You can think of the HIDE area as a table, in which the system stores the names and values of all
HIDE fields for each list and line number. As soon as they are needed, the system reads the
values from the table.
4. Different types of alv reports?

Ans. There are 3 types of alv reports are there


1. Simple ALV reports
2. Blocked alv reports: In this case more than one independent block is displayed in the
output. This is generally used when we need to display data from two internal tables in the
same list where the structure of the table is different. The following FM r used.
REUSE_ALV_BLOCK_LIST_INIT
REUSE_ALV_BLOCK_LIST_APPEND
REUSE_ALV_BLOCK_LIST_DISPLAY
3. Hierarchical alv reports: Hierarchical ALV are used to display the header and item data in a
single layout. i.e., we are displaying data like TREE.
>>>Header data at top level
>>> Item data at next level
>>> Sub item data at child level...

5. Events in smart forms?


Ans.

1. AT-FIRST: This is used when we want to execute the statements before records are processed.
2. AT-NEW: This event is used when we want to execute the statement before group of records
are processed.
3. AT-END: This event is used when we want to execute the statements after processing of
group of records.
4. AT-LAST: This event is used when we want to execute the statements after all records are
processed.

6. Diff b/w table and structure in smart forms?


Ans. template
-- Template is fixed in size.
-- Template is Output of a table containing static data
-- These are the possible direct successors-All except window, page, table, and template
nodes
-- Template is used for proper alignment of data which table is used for displaying multiple
data.
--We can say Template is for static data
Table
--Table - Output of a table containing application.
--Data and these are the possible direct successors-as with template node.
--And Table is for dynamic data. Table extends dynamically.

Suppose we have a requirement in which we have to align the customer address in such a way
as shown below:-

Ex: Name- Krishna Company- WIPRO Location- Chennai


Design- S/W Native - Mumbai
Then for proper alignment we can create a template and split that into 3 columns and 2 rows
and create text elements for each cell display a proper aligned data at the output.
When we include a template inside a loop it gives the same property as a table.
When we have multiple data which is to be extended to the next page like, when we display all
employee details in a company we use table.
Table has 3 sections, HEADER, ITEM, and FOOTER
The header section will be executed once and it will loop at the item level. At the end footer will
be executed.

7. What is company code?

8. How many secondary lists in interactive reports?

Ans. 1 basic list and 20 secondary lists

9. Diff b/w reports and interactive reports?

Ans. Classical Reports


These are the simplest reports. It is just an output of data using the Write statement inside a
loop.
Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING
ONLY ONE SCREEN/LIST FOR OUTPUT.
Interactive Reports
As the name suggests, the user can interact with the report. We can have a drill down into the
report data. For example, Column one of the report displays the material numbers, and the user
feels that he needs some more specific data about the vendor for that material, he can HIDE
that data under those material numbers.
And when the user clicks the material number, another report (actually sub report/secondary
list) which displays the vendor details will be displayed.
We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).

10. How to develop variable window in smart forms?


11. In which case you use SD?

12. How to edit alv report after displaying the report?

Ans. In ALV Reports, the output is displayed by using the function module:
REUSE_ALV_GRID_DISPLAY or REUSE_ALV_LIST_DISPLAY
Input for the above function modules is program name and fieldcatalog and data internal table.

You can edit the records in the output list by using EDIT = 'X' option in the field catalog.
While filling the field catalog we have to consider the field EDIT = 'X'.
But this is used for print purpose only we cannot save into database.

Ntt data:
1. Which syntax is used for BDC in application server?

Ans. u can use open dataset syntax


Date Sets are nothing but files on Application Server, they can even be called as Sequential files.

Open Dataset is used to open required file on the application Server.


Read Dataset is used to read the contents required file on the application Server.
open dataset, read dataset, close dataset are used to read and place the data in the application
server.

--OPEN DATASET IS USED TO OPEN THE DATASET.


Syntax: open dataset <dataset name>for input/output in text/binary mode encoding/ascii
default.
--CLOSE DATASET is used to close the dataset.
Syntax: close dataset <dataset name>.

2. Steps in ASAP methodology?

Ans. It would be helpful to go through the help document of ASAP Methodology.

The following information may clarify some doubts/requirements you have.

ASAP is Accelerated SAP, a methodology being used to complete an SAP implementation from
End to End. Means, it has five phases and starts with
1) Project Preparation : where the SAP consultants try to understand the AS IS business process
of the industry for which implementation is being done. The hardware and software
requirements are analysed. Infact all the basic preparation is done at this stage.

2) Blue Print : After the AS IS study is made a TO BE process is evolved where in the client
business is put in technically as to how it would be like in SAP. Blue is a binding between the
implementor and Client. So, there is a sign off from the client on what is going to be done.

3) Realization : Here the blue print is configured on the system. For some processes where SAP
cannot do as it is,like when there is a difference between AS IS and TO BE called a GAP , we use
developers(ABAP) . The functional guys give the functional spec based on which the ABAP'rs
prepare technical specs and fulfill the object ( may be reports, user exits, enhancements and so
on). Also the unit and integration testing is done here.

4) Final Preparation : Here the enduser, core user training is completed on how he has to use
the sap system. Master data uploads into the production server. In a way the system is getting
for going live. And just before the go live date the data that needs to be put into sap is fixed and
the remaining transactions of the business are recorded may be in a flat file or sometimes they
are taken off so that upto date data in the production server is maintained.

5) Go Live and Support : Here finally the SAP system goes live and followed by some support as
agreed upon in the service level agreements.

Q. Events in interactive report?


Events associated with Interactive Reports are:
1) AT LINE-SELECTION: It will trigger when ever user double click on any record of any list.
Advantage: It is used to pass the list number on which double clicked to the next list.
2) AT USER-COMMAND: It will trigger when we click on any menu items.
3) AT PF-STATUS: it will trigger when we click on any function keys
4) TOP-OF-PAGE DURING LINE-SELECTION : it will trigger at the top of secondary list
Advantage: it is used to provide the header in the secondary list.

4. Diff b/w normal and interactive reports?


5. Diff b/w session and call transaction

IBM
1. How to give accessing of report to another person?

Ans. Using authorization objects


Creating authorization object
1. To create the authorization object, choose the SU21 transaction.
2. First double-click an object class to select it.
3. Provide the name of the object and relevant text.
4. Add the fields that should be included in the new authorization object.
5. Hit Save.. Once you click on save it'll ask for package details (select the relevant package
from the drop down list) and save again.
6. New auth objected is created now.
7. Click on permitted activities to select the activities and save the changes.

Ans 2. Authorization Objects are used to manipulate the current user’s privileges for specific
data selection and activities from within a program.

We could always create our own authorization objects and implement it in our own abap
programs. As an example, we will create our own authorization field similar to TCD used in
S_TCODE Authorization object.

Steps to create authorization field

1. Go to transaction code SU20


2. Click the create new button on the application toolbar.
3. Enter “ZTCODE” in the Field Name and “TCODE” in the Data Element, then hit Enter.
4. Click the save button on the system toolbar.

Next step is to create the authorization class (see #1 in figure 1) and authorization object (see
#2 in figure 1).

Steps to create authorization class


1. Go to transaction code SU21
2. Click on the Create button’s drop down icon and select “Object Class”.
3. Enter “ZTRN” on the Object Class field.
4. Give it a description and save it.

Steps to create authorization object


1. Again in SU21, in the list of authorization class (folder icon), click the one that we’ve
created(ZTRN).
2. Click on the Create buttodrop down, this time selecting “Authorization Object”.
3. Enter “Z_TCODE” on the Object field and give it a description.
4. On the authorization fields section, enter ACTVT and ZTCODE. ACTVT is used to set and limit
the activity of the user, while the ZTCODE is the authorization field that we’ve created earlier
which is responsible for holding a list of tcodes.
5. On the Further Authorization Object Settings, click on “Permitted activities” button. Here we
will select the specific activities that we want to be available for our authorization object.
6. As an example, we will select 01(Create), 02(Change), and 03(Display).
7. Save and Exit.

Now we’re done creating our own authorization object, let us now use and assign it to a user.

Steps to create a role(see figure 2)


1. Go to transaction code PFCG.
2. Enter “ZAUTHTEST” on Role field and click the “Single Role” button.
3. Now give it a description, click the save button and click the Authorization tab.
4. Click the “Change Authorization Data” button inside the authorization tab.
5. Then click the “Manually” button on the application toolbar and type in the name of the
authorization object that we’ve created earlier(”Z_TCODE”) and press enter.
6. Expand all the nodes, double click on the input field of the Activity and select activity 01 and
02.
7. Enter the tcode of our own abap program in ZTCODE field, in our example I used “ZCOMM” .
8. And also don’t forget to add the S_TCODE authorization object and enter ZCOMM on it’s field.
9. Now Click on the Generate button in the application toolbar and press enter on the pop-up
screen.
10. press the back button and assign a specific user on the user tab and click User Comparison
button.
11. Now create another role by repeating steps 1 to 9 but this time select activity 03 on step 6.
12. Then assign this 2nd role to another user.

(Figure 2)

Now let’s implement this authorization in our ABAP program. Let say we have a dialog program
(ZCOMM) wherein we have a button on the screen that when clicked, the user will go to the
Create/Edit screen(1000) if he’s authorized. On the other hand, he will go to display only screen
(2000) if he’s not authorized. To do that, simply add the code below on your program.

AUTHORITY-CHECK OBJECT ‘Z_TCODE’ “authorization object that we’ve created


ID ‘ACTVT’ FIELD ‘01′ “Activity = 01, authorized to create
ID ‘ZTCODE’ FIELD ‘ZCOMM’. “tcodes that we wants to check for authorization
IF sy-subrc EQ 0.
CALL SCREEN 1000. “The user is authorized to create
ELSE.
CALL SCREEN 2000. “User is not authorized to create (Display only)
ENDIF.
2. How to run a report?

3. What is authorization?

4. Validation in module pool?

5. Chain and end chain in module pool?

If the validation has to be done for more than one field those fields are included between chain
and end chain.
Ex
In PAI if you want to validate group of fields put in chain and End chain statement.

You can declare fields in the chain endchain.

CHAIN.
FIELD chk_ABC.
FIELD chk_DEF.
FIELD chk_GHI.
FIELD CHK-JKL.
MODULE CHK_screenfields.
ENDCHAIN.

MODULE CHK_screenfields INPUT.


CLEAR okcode.
okcode = sy-ucomm.
CASE okcode.
WHEN 'ENTER' OR 'EXECUTE'.

IF chk_ABC IS INITIAL AND chk_DEF IS INITIAL AND CHK_GHI


IS INITIAL .
MESSAGE e000(zo_spa) WITH text-017. " Enter VALUES'
ELSE.
.....
ENDIF.
ENDIF.

ENDMODULE. " modify_screenfields INPUT


6. How to know the errors using bapi while uploading data?
Ans.
A BAPI should be able to record and classify all possible errors that may occur a function
Module BAPI_MESSAGE_GETDETAIL is used to handle the Error Messages.
You have to create a parameter named Return for every BAPI. This parameter returns
exception messages or success messages to the calling program.

BAPIs themselves must not trigger any messages (such as MESSAGE xnnn) in the coding. In
particular they must not generate terminations or display dialog boxes. Instead, all messages
must be intercepted internally and reported back to the calling program in the Return
parameter. Otherwise the BAPI will not be processed correctly and control may not be given
back to the calling program.

All error messages or indeed any message that may be returned by the BAPI, must be defined
in message table (Tools ® ABAP Workbench ® Development ® Programming environment ®
Messages) and described in the documentation for the return parameter. This also applies to
the most important or most likely error messages generated by other programs that can be
indirectly passed via the BAPI to the application program.

You must not use exceptions in BAPI interfaces.

When a termination message (message type A) is triggered, a database rollback is executed in


the standard programming model, that is, all tasks performed since the last COMMIT WORK are
canceled. When you program BAPIs, we recommend that you also execute a database rollback
in the return parameter for termination messages. You must describe this process in the
documentation for the Return parameter. For messages of type E (error), the calling program
performs the error handling.

Application developers are provided with two service BAPIs to diagnose and process error
messages from BAPI calls:

BapiService.MessageGetDetail () displays the short and long texts of BAPI error messages.

BapiService.ApplicationLogGetDetail (), with which information in application logs can be


displayed.

Features
The export parameter Return can be implemented as follows:

As a structure, whereby it must be defined in the function module as an export parameter, as


well as in the method in the BOR.

As a table, whereby it must be defined in the function module as a table parameter, as well as in
the method in the BOR as an export parameter.

Before filling the Return parameter you should either initialize the structure with CLEAR or the
table with REFRESH and CLEAR.

If the return parameter is not set or is set to an initial value this means that no error has
occurred.

The Return parameter may be based on the following reference structures:

BAPIRET2

You must use this reference structure when developing new BAPIS.

BAPIRET1, BAPIRETURN

These reference structures are still partly used in old BAPIs.

Both structures must be filled in the logon language.

7. Diff b/w sorted and hashed internal tables?


Ans. 1.Standard Internal Tables: These tables have a linear index and can be accessed using the
index or the key. The response time is in linear relationship with number of table entries.
These tables are useful when user wants to address individual table entries using the index.
2. Sorted Internal Tables: These tables also have an index and the key. But, the response time is
in logarithmic relationship with number of table entries, since it uses binary search algorithm
instead of linear search. These tables are useful when user wants the table to be sorted
While additional entries have to be added.
3. Hashed Internal Tables: These tables have no index, but have the key. The response time is
constant irrespective of number of table entries, since it uses a Hash algorithm. These tables are
useful when user wants to access the entries with key only.

8. How to use NACE transaction (configuration)?


Ans. NACE is the t. Code to configure the form and driver program.

Example: if we create a form and driver program related to BILLING (invoice) or if we want to identify the
Form and program name of an application (Purchase order, sales order, billing, delivery note etc).
Goto NACE t.code

Select Billing (V3)

|
Click on Output types

|
Now scroll down and identify the required output type (Ex: invoice) and select it

|
Now double click on ‘Processing routines’

|
Now click on Change icon to include our form name and program name

|
Save

9. What are the methods to debug the scripts?

Ans. Two ways to debug sap script.

first way is go to SE 71 and from menu bar select Utilities->activate debugger .then go
to SE38 execute the print program ,it automatically goes to debugging mode.
The other way is, run the program RSTXDBUG in se38. Execute it. A message will show
that debugger is activated .now open the print program in se38.u will notice that the print
program is automatically diverted to debugging mode.

10. Procedure of uploading data using bapi?

11. Difference b/w elementary search help and collective search help?
Ans. 1) Elementary search helps describe a search path. The elementary search help must define
where the data of the hit list should be read from (selection method), how the exchange of values
between the screen template and selection method is implemented (interface of the search help) and
how the online input help should be defined (online behavior of the search help).

2) Collective search helps combine several elementary search helps. Collective search help thus can offer
Several alternative search paths.
3) An elementary search help defines the standard flow of an input help.
4) A collective search help combines several elementary search helps. The user can thus choose one of
several alternative search paths with collective search help.
5) A collective search help comprises several elementary search helps. It combines all the search paths
that are meaningful for a field.
6) Both elementary search helps and other search helps can be included in a collective search help. If
other collective search helps are contained in collective search help, they are expanded to the level of
the elementary search helps when the input help is called.

12. Diff b/w function module and remote function module(RFC’S)?

13. ENHANCEMENT FRAME WORK?

Ans. The Enhancement Framework enables you to add functionality to standard SAP software
without actually changing the original repository objects and to organize these enhancements as
effectively as possible.

The basic idea of the Enhancement Framework is to make modification-free enhancements of


development objects such as programs, function modules, global classes, and Web Dynpro components.
It is the new state-of-the-art technology that SAP recommends to enhance and change SAP programs.
These technologies and the new kernel-based BAdIs are now integrated in one framework that has the
following features:

● Enhancements of existing development objects on different levels - for example, in an


industry solution, in the IT department of the customer, and in a customer's company.

● Better upgrade support

● Switching of enhancements with the Switch Framework

● Support for grouping enhancements and appropriate tool support for documentation.

An enhancement project needs even more planning than a normal development project
because it combines the customer code with the code of the underlying application.
Enhancements are changes at a very low technical level and should be performed very carefully
so that they do not violate the logic of the program they enhance. It is highly recommended to
set up a process that defines who is allowed to design and implement enhancements.

Scope and Limitations

The new Enhancement Framework is intended to integrate existing enhancement and modification
concepts and addresses recent developments such as Web Dynpro. The classic technology for appends
and includes cooperates perfectly with the Enhancement Framework but is not yet integrated in it. If you
want to be able to enhance all layers of an application, the classic append technology is still necessary.
Integration

The main tool for performing enhancements is the Enhancement Builder, which is integrated in the
ABAP Workbench.

The enhancements can be switched using the Switch Framework. An enhancement takes effect when
the package in which the above enhancement components are defined is assigned to a switch of the
Switch Framework and this switch is not deactivated.

14. What is the main difference between Enhancements and BADI?

Ans. Main difference Between: Enhancements is Client Dependent BADI is client in-dependent.
Classic enhancements can have only one Implementation. Whereas BADI can have Multiple
Implementations, Enhancement means to modify the standard transaction based on the user
requirements. But BADI is one part of enhancement. It’s full and full oops oriented concept.

ACCENTURE

1. HOW TO EDIT THE DATABASE TABLE?


Ans.
 How to edit entries of table in se11 ?
 To update the data of any table, go to transaction SE16N, type “&SAP_EDIT”. It will
activate SAP editing function.
 ---
 Go to table and press Ctrl+ shift + F10 where you will go to table entries. Click on F8
(execute).
 And then select the entries that you want to edit by selecting the checkbox and goto
menu Table entry - > select change. There you edit and save the entries.
 ---
 You cannot edit entries in SE11 unless it contains a Table maintenance generator.
 So just build a Table maintenance generator.
 Do not delete any entries using &SAP_EDIT...it is not recommended.
 ---
 You can edit through debugging.

 How to delete a record in SE16 ?


 To delete the records from particular table its easy.
 Goto : se11
 - Give the table name
 - Execute the table with the selection fields
 - Then data (list) screen will be displayed.
 - Now select the record which has to be deleted
 - Select that and switch 'on' the Debugging mode press enter
 - Then press F6 goes to subroutine where there is field called display
 - Instead change it to edit and then save the changes then it will take you to the screen
where you can edit that records & also delete that particular records.
 Note:
 After displaying the contents of the list.
 Switch ON the Debug Mode the select the particular record then click display then it will
take u to Debug Screen when there is a program for sy-ucomm then click F7 Button and
then Change Code = EDIT then save the code the afterwards it will take u to edit mode of
that particular record.

 How can I insert new data in the table?


 Give the transaction code as se11
 In that give the table name and press display
 Then in that field name above there is delivery and maintenance click the same and
change it as display maintenance allowed.

KPMG

1. What are different types of DB tables?

2. Different types of FUNCTION MODULES? And use of function modules in ABAP?

3 types of Function modules.


Normal
Remote-enabled (RFC)
Update

NORMAL FUNCTION MODULE:

Function modules are procedures that are defined in function groups (special ABAP programs
with type F) and can be called from any ABAP program. Function groups act as containers for
function modules that logically belong together, Function modules allow you to encapsulate and
reuse global functions in the R/3 System. They are stored in a central library, unlike subroutines,
you do not define function modules in the source code of your program.

REMOTE FUNCTION MODULE (RFC):

RFC (Remote Function Call) is an extension of CALL FUNCTION in a distributed environment.


Existing function modules can be executed from within a remote system (R/2 or R/3) via an
RFC Call. Adding a Destination clause to the CALL FUNCTION statement does this.
The destination parameter displays an entry in the RFCDES table (which is defined with t.code
SM59). This entry contains all necessary parameters to connect to and log in the destination
system. The RFC API on OS/2, Windows, Windows NT and all R/3 based UNIX platforms makes it
possible to use the RFC functionality between an SAP System and a non SAP System.

UPDATE FUNCTION MODULE:


These function modules are used to update the database tables. Using the function module in
updating the database table helps in updating the database without any irregularities.

3. what is UPDATE function module in sap bap? How to create it? And whats the use of
UPDATE function module?

4. difference b/w normal function modules and BAPi’s?

5. how to upload the data using BDC’s?

6. what is module pool? What you done in MODULE POOL?

7. t.codes for reports and table maintenance generator?

8. HOW TO upload the 1000 records of excel sheet using Table Maintanace Genereator?

9. how to edit the classical reports?

10. how to copy the reports from one client to another client?

Mindtree & hcl

1. Prerequisite for read and for all entries?

Ans. Prerequisite for READ statement is, we must sort the internal table before reading.
Read statement is basically to read an internal table...while mentioning the key they should be
in the same order as they appear...we can use binary search statement
as well in READ. But the perquisite for it is that the table should be sorted as per the key...
FOR ALL ENTRIES is used to replace nested select loops by operations on internal tables.

Things to be considered when working with 'for all entries':

1) Make sure that the select contains atleast the primary key fields

2) IF NOT <ITAB> IS INITIAL. is a mandatory check before FOR ALL ENTRIES.


2. How to fill segments in IDOC( randomly or one by one if there are 1 parent and 2
child segments)?
3. How SAP handles Child Idoc segment data insertion automatically ?
4. Function modules in IDOCS?
5. What is constructor?
6. When u prefer call transaction and when u prefers session method?
7. When u go for BDC and when u go for BAPI ?
8. How to edit alv reports output?

Ans. In ALV Reports, the output is displayed by using the function module:
REUSE_ALV_GRID_DISPLAY or REUSE_ALV_LIST_DISPLAY
Input for the above function modules is program name and fieldcatalog and data internal
table.
You can edit the records in the output list by using EDIT = 'X' option in the field catalog.
While filling the field catalog we have to consider the field EDIT = 'X'.
But this is used for print purpose only we cannot save into database.

Questions asked in Interviews


After Observing many interviews. Finally I come up with the following questions which are
mostly asked in all the big companies including SAP Labs, Accenture, IBM, Deloitte, TCS, and
Infosys etc…
8. What is partner selection?

Ans. This concept is mainly used in IDOC where u select the partner profile using Tcode We20
.with Tcode SM59 you create RFC(remote function call) to create communication link to a
remote system.

10. What is occurs in internal table?

Ans. Occurs addition to the Declaration will give initial size to that table. Occur statement
allocates 8kb of memory to the internal table.

12. What is the difference between scrolling a table horizontally and vertically..??

Ans. In table control when you scroll a table vertically presentation server needs to call
application server to fetch the next record and display in the table while in case of horizontal
scroll there is no need to call application server.

13. What are Field Groups?

Ans. A group that combines several fields fewer than one name, at runtime, the INSERT
command is used to define which data fields are assigned to which field group are called Field
Groups. It should always be a HEADER field group that defines how the extracted data will be
sorted; the fields grouped under the HEADER field group sort the data.

ii. Field group is old method of creating a array processing.. Like the internal tables..From help..

A field group combines related fields together into a meaningful unit. It provides you with a
preselect ion, so that you do not have to search through all fields of a data source just to
produce a simple list.
This means that the end-user only has access to precisely those fields assigned to a field group.
Fields must be assigned to a field group before they can be used in queries.

14. List the events in ABAP/4 Language?

Ans: The events in ABAP/4 are


Load of program,
Initialization,
AT Selection Screen,
AT Selection Screen On,
Start of Selection,
Top of page,
End of Selection,
End of page,
Line selection, User command, End, First.
15. How the values will be passed to RFC Function module PassbyValue or passbyreference?

Ans: always pass by Value.

RFC is Remote Function call so it can’t access the values with Pass by reference.

16. Buffering concept usage?

Ans: There are three type of buffer


1 single record buffering
2 generic buffers
3 full buffer
Buffering is use for improve performance. it improves performance 10 to 100 times more

17. Select up to 1 row and select single difference?

Ans: Select single fetches first matching record. If more than one matching records are there
then only the first matching record will be considered other records will not be taken into
account. (It is based on primary key).

Whereas select up to 1 rows will fetch all the matching records from the database.(Again it
will assign only One Record to the internal table/Work area).(it is based on all records).

Ans2: Select Single * will pick up only one matching record from the database into the buffer,
and returns the same to the internal table.
Select up to 1 row will pick up all the records matching the condition into the buffer, but
return the top record to the internal table.

18. What are the different buffering methods?

There are two different buffering methods


The system ensures that data transfer between the R/3 System and the database system is as
efficient as possible. To do this, it uses the following techniques:
Table buffering: The program accesses data from the buffer of the application server.
Database request buffering: Individual database entries are not read or passed to the database
until required by an OPEN SQL statement.

19. Different types of locks?

Read lock (shared lock)


Protects read access to an object. The read lock allows other transactions read access but not
write access to the locked area of the table.
Write lock (exclusive lock)
Protects write access to an object. The write lock allows other transactions neither read nor
write access to the locked area of the table.
Enhanced write lock (exclusive lock without cumulation)
Works like a write lock except that the enhanced write lock also protects from further accesses
from the same transaction.

20. CHAIN END CHAIN?

Ans: Chain and end chain are used for multiple field validation in Module pool programming .It
is written inside the screen flow logic.

21. How to Debug RFC Function module?

Ans: SE38 –> Utilities –> Settings –> ABAP Editor –> Debugging

Activate the external debugging and choose the New Debugger option in ABAP debugger.

Go to the particular place in the code and put break point, pop will appear then choose the
HTTP break point.

If you are triggering the RFC from SAP portal make sure that both the user ID should be same

If the users are different then provide the XI/Portal User ID in the user’s field.

23. Difference between user exit and BADIs?

Ans: User exit is for single implementation and it is procedural approach while BADIs are for
multiple implementations and object oriented approach.

Multiple implementations means Reusability… because we use OOPS Concepts for BADI.

24. Control break events in ABAP:-

1. AT-FIRST: This is used when we want to execute the statements before records are processed.

2. AT-NEW: This event is used when we want to execute the statement before group of records
are processed.

3. AT-END: This event is used when we want to execute the statements after processing of group
of records.

4. AT-LAST: This event is used when we want to execute the statements after all records are
processed.
25.I am uploading 100 records out of which say 59th record has error so what will happen if i
am using synchronous or asynchronous method of BDC? Can we update the database using
local update mode how?

26. Suppose i am writing following code then what will be output?

LOAD-OF-PROGRAM.
WRITE:/”HELLO”.
Ans: HELLO

(Explain the importance of LOAD-OF-PROGRAM Event. If you don’t know Tell the interviewer as
this event is used in such cases when you want to clear sum buffers or something Before calling
that Program)

27. What is TMG?

Ans. TMG stands for Table Maintenance generator. It is a tool available in abap by which we can
add or delete multiple records at a time and it is executed or triggered by the transaction code
SM30.

28. Difference between select option and ranges?

Ans. The main difference between select option and Ranges is that ranges implicitly or
automatically creates internal table with fields like OPTION, LOW, HIGH, SIGN, etc.

Where as in case of select option we have to explicitly create internal table.

When u declares select options it will implicitly declare an internal table (ranges) for you.

While using RANGES syntax u can declare internal table explicitly.

The only need of declaring ranges is when you r not taking input from the user but you want
make limit based selection at that time it will be use full e.g. SELECT ** from ** where MATNR
in val_range.

Here u can use select-option or ranges: val_range.

29. Is it possible to bring select option in module pool screens?


Ans. Create SELECT-OPTIONS in module pool screen using two methods as shown.

Method 1:—

a) Create a subscreen area in your screen layout where you want to create the select options.

b) In the top include of your module pool program declare a selection screen as a subscreen e.g.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.


Select-options s_matnr for mara-matnr.
SELECTION-SCREEN END OF SCREEN.

c) In the PBO and PAI of the main screen where the select options needs to be created do a call
subscreen of the above screen (100).

CALL SUBCREEN sub_area INCLUDING <program> <screen>

This CALL SUBSCREEN statement is necessary for transport of values between screen and
program.

Note: All validations of the selection screen fields e.g. the s_matnr field created above should
be done in selection screen events like AT SELECTION-SCREEN etc and not in PAI. These selection
screen validations etc should be done in the top include only.

Method 2:——-

a) Create 2 separate fields in your screen layout – one for the low value and one for the high
value. Insert an icon beside the high value which will call the multiple selections popup screen
on user command. Use function module COMPLEX_SELECTIONS_DIALOG to achieve this.

continued ……

struc_tab_and_field-fieldname = con_cust. ” ‘KUNNR’


struc_tab_and_field-tablename = con_kna1. ” ‘KNA1′.
CALL FUNCTION ‘COMPLEX_SELECTIONS_DIALOG’ EXPORTING*
TITLE = ‘ ‘
text = g_titl1 ” ‘Customers’
tab_and_field = struc_tab_and_field
TABLES RANGE = rng_kunnr
EXCEPTIONS
NO_RANGE_TAB = 1
CANCELLED = 2
INTERNAL_ERROR = 3
INVALID_FIELDNAME = 4
OTHERS = 5.
IF NOT rng_kunnr[] IS INITIAL.
* Read the very first entry of the range table and pass it to
* dynpro screen field
*READ TABLE rng_kunnr INDEX 1.
IF sy-subrc = 0.
g_cust = rng_kunnr-low.
ENDIF.
ENDIF.

You can use the return table rng_kunnr to populate your own internal range table with the
values entered by the user. Basically here you are just simulating the work of a select-options
parameter by module pool screen elements.

30. how we can retrieve data using secondary index. Explain with simple example

Ans: First create secondary indexes on required fields of a particular database table.

We can create one primary index and 15 secondary indexes. Once the respective secondary
indexes are created write select queries and within select queries specify secondary indexes
field name with where clause.

31.How can we handle table control in BDC?

Ans. We can handle table control using line index

Line index indicates which line of Table control is to be use for BDC transaction

Ex - perform bdc_field using ‘RC29K-AUSKZ(01)’

Indicates 1st line of table control is going to be used for transaction which is Line index of Table
Control

32. If i want to execute a BDC program only in background not in foreground is there any
option for this?

Ans. The sm37 transaction can be used for running a program in the background. Also in the
session method while processing the session you can specify the processing type as background
or foreground.

33.How Can We upload a text file having Delimiters in to Legacy System

Ans. For up loading text file we use the pre-defined FM gui_upload. in that FM we have the
parameter has_field_seperator for that we assign the default delimiter ‘x’.
HAS_FIELD_SEPERATOR ‘X’

‘X’ can provide the Whatever delimiter we used in flat file for separation.

34. What is the land scape in sap?

Ans. In every organization sap landscape involves three servers viz, Development server, Quality
server and Production server. Whatever new development we do as per clients requirement is
done in development server. Later to test the developed object we move it to quality server for
testing and finally once everything goes clear then the object is moved to production server,
production server data is ready for final business use.

35. Workbench request are client dependent or client independent

Ans. Workbench request are client independent.

(Common Man Workbench request holds the Program, FM etc…. How it can be Client
Dependent!!!!)

36. Tell me about workbench request and customization requests.

Ans. Workbench (ABAP Dev) request is client independent when you import it into one system
it reflect it in all client in same system.

But customized request has to import in that client particular client where it is created, actually
it is client dependent.
Ownqs:--
 Different types of DB tables?

Transparent Table: Exists with the same structure both in dictionary as well as in
database exactly with the same data and fields.

Pooled Table: Pooled tables are logical tables that must be assigned to a table pool when they
are defined. Pooled tables are used to store control data. Several pooled tables can be
combined in a table pool. The data of these pooled tables are then sorted in a common table in
the database.

Cluster Table: Cluster tables are logical tables that must be assigned to a table cluster when
they are defined. Cluster tables can be used to store control data. They can also be used to
store temporary data or texts, such as documentation.

Q. Could anyone tell me what is the major difference between Standard tables, Pooled tables
and Clustered Tables?

A transparent table is a table that stores data directly. You can read these tables directly on the
database from outside SAP with for instance an SQL statement.

Transparent table is a one to one relation table i.e. when you create one transparent table then
exactly same table will create in data base and if is basically used to store transaction data.

A clustered and a pooled table cannot be read from outside SAP because certain data are
clustered and pooled in one field.

One of the possible reasons is for instance that their content can be variable in length and build
up. Database manipulations in Abap are limited as well.

But pool and cluster table is a many to one relationship table. This means many pool table store
in a database table which is known as table pool.

All the pool table stored table in table pool does not need to have any foreign key relationship
but in the case of cluster table it is must. And pool and cluster table is basically use to store
application data.

Table pool can contain 10 to 1000 small pool table which has 10 to 100 records. But cluster
table can contain very big but few (1 to 10) cluster table.

For pool and cluster table you can create secondary index and you can use select distinct, group
for pool and cluster table. You can use native SQL statement for pool and cluster table.
A structure is a table without data. It is only filled by program logic at the moment it is needed
starting from tables.

A view is a way of looking at the contents of tables. It only contains the combination of the
tables at the basis and the way the data needs to be represented. You actually call directly upon
the underlying tables.

5. Difference between .include and .append?

Ans. Include structure allows to add one or more structure into structure or table. Also placed
positioning anywhere. Up to 6 include structure can be used in a table.
Append structure can be placed only at the end of a structure or table which also stops
further insertion of fields. Only one append structure can be used.
Ans2. 1. Append structure: it will add Fields to the table from last. We can't use that structure
in another table.
2. Include structure: we can add fields in middle. We can use include structure in more than
one table.

1. Append structure must be appended only at the end of the table.....

But whereas we can include "include structure" anywhere in the table.

2. Append structure must be used only once in a table..

Whereas include structure can be used more than one time in a table

3.we cant nest append structure

but whereas include structure can be nested to a depth of 9 structure

Different types of tables?

Tables are 3 types:

1) Transparent table: It is the table which is physically having the data

All the created tables using SE11 as default are Transparent

2) Pooled table: it is the imaginary table which is used to store the temporary data

3) Clustered table: It is also imaginary table which is used to store the temporary

Data like Documentation etc


Comparison of Transparent, Pool and Cluster tables

Transparent Pool Cluster

Contain a single table. They are used to hold a They are used to hold
Used to store master large number of very data from a few number
data small tables(stores of large tables.(stores
customizing data or system data)
system data)

It has a one-to-one It has a many-to-one It has a many-to-one


relationship with a table relationship with a table relationship with table
in the database in the database in the database

For each transparent It is stored with other Many cluster tables are
table there is one pooled tables in a single stored in a single table
associated table in the table called table pool in the database called a
database in the database table cluster

The database table has The database table has The database table has
the same name, same different name, different name, different
number of fields and different number of number of fields and
the fields have the same fields and fields have fields have different
names different names names

There is only a single Table pools contain Contains less tables than
table more tables than table table pools
clusters

Single table can have Primary key of each Primary key of each
one or more primary table does not begin table begins with same
key with same fields or fields or fields
fields

Secondary indexes can Secondary indexes Secondary indexes


be created cannot be created cannot be created

They can be accessed They can be accessed They can be accessed


using open and native using open SQL only using open SQL only
SQL

USE: They are used to USE: They reduce the USE: They would be
hold master data e.g. amount of database used when the tables
Table vendors or table resources needed when have primary key in
of customers. Example many small tables have common and data in
of transaction data is to be opened at the these tables are all
orders placed by same time accesses simultaneously
customers
Difference b/w pooled and cluster tables?
Ans. pooled tables: these r small tables having 100 records in each of them! But, these
tables were used for storing the system data! in these tables there will be no keys! These tables
r having many - to - one relationship! These tables r having different names which doesn’t
match with database tables.

cluster tables: these r very large tables so many records in each of them! But, these tables were
used for storing the system data! in these tables at least one primary key will be present to find
the record! these tables r having many - to - one relationship!
these tables were used by basis people to calculate the system performance!

Delivery class and Data class?

Delivery class: it controls the transport of the data from one system (Ex: Development) to
another system (Ex: Testing).

Delivery class Description


A: Application table Master data& transactional data
C: customizing table Table storing for temporary data
Data class: it identifies the location in data base server where the created table will be saved.
i.e. specifies the location whether Master data location or Transactional data or Organizational
data location.

APPL0: master data (frequently read, rarely updated. Ex: vendor & customer details).
APPL1: transaction data (frequently read & frequently updated. Ex: material prices,
no.of.items).
APPL2: Organization data: (rarely updated. Ex: company name, logo).

 Data Element & Domain?

Data element: it is the combination of Domain and Field label


Domain: It maintains the Data type and length. Also value range for the table can be
maintained.

Search help?

it is used to display the list of all possible input values for a screen field to give as an
input to the table.

There are two types


1) Elementary Search help: In this, all possible input values will be extracted from one table and
displayed.

2) Collective Search help: it is the combination of different elementary search helps. In this, all
possible input values will be extracted from multiple (Different) tables And displayed as an
input

Lock Object?

it is used to provide the protection for the database table and also to avoid the
inconsistence at the time of data is being read or write to DB table

There are 3 types

1) READ LOCK(Shared lock)


It allows read access for other transactions but not write access to locked area of table data
2) WRITE LOCK
It allows write access for other transactions but not read access to locked area of table data
3) Enhanced lock
This is advance write lock

Whenever lock object applies on a table, two function modules will work.

Those are 1) ENQUE: It is used to lock the table while a command is working on table
2) DEQUE: It is used to unlock the table after command working is complete

Note: Lock object name should start with EY or EZ.

 Table maintenance generator?

it is an SAP provided option to enter(create) multiple records(data) into the table and to
modify the existing data and to delete the existing data(one or multiple records tcode:SM30).

Difference b/w PARAMETERS and SELECT-OPTIONS?

PARAMETERS: It is used to accept the input as a single value


Syntax:
Parameters: p_name like <wa-fieldname>
Or
Parameters p_name like <variable>

Note: parameter should be filled while passing to the select statement to extract the data
SELECT-OPTIONS: it is a key word which accepts single value, multiple single values
Single ranges and multiple single ranges.

Difference b/w FM and SUBROUTINES?

 DIFFERENCE B/W FORALL ENTRIES AND INNER JOIN?

In order to avoid nested select statements we can go for "FOR ALL ENTRIES". First fetch
values from database table to internal table and only for the values in the internal table we can
fetch values from other database table based on conditions in the where clause.
it is mandatory that we have to declare all the primary keys in either select Stmt or in where
condition. or else duplicate records will not get selected.

ii. INNER JOIN:

Inner join used for combine two tables.


Support u can fetch two tables. U can write select query two time .data base fetch time take
two time read from db.
So using primary key we easy write inner join. but both table primary key and both field refer
same field.

DIFFERENCE B/W INTERNAL TABLE AND WORK AREA?

Internal table: it is used to hold the multiple records and it is a temporary storage location in
application server. i.e. The data inside an internal table was not saved anywhere in SAP.
Internal tables are dynamic memory storage locations and hence need not to provide the size.

The scope of an internal table is inside a program only.

One of the syntax for declaring internal table

DATA <int tab> LIKE TABLE OF <DB table>.

Or

DATA <int tab> LIKE TABLE OF <STRUCTURE>.

Ex: Data it_tab like table of zstd. (ZSTD is a database table)


WORKAREA: It is used to hold once record at a time and also it is used to increase performance
of the data processing.

Syntax: DATA <WA> like line of <int tab>


Ex: DATA wa_std like line of it_std.

Different types of internal tables?

Internal tables are 2 types 1) INDEX


2) Hashed
Index internal tables are again two types: 1) Standard int table
2) Sorted int table
STANDARD int table:
It allows duplicate records
No need to maintain unique or non-unique key
Record will be added to int table with APPEND key word
Records will be searched using linear search
Int table will be sorted using SORT key word explicitly

Syntax:
Data: <int_tab> like STANDARD table of <wa>.

SORTED int table


It doesn’t allows the duplicate records
At least one field should be unique/non-unique key
Records will be added to int table using INSERT key word
Binary search is used to search the records from int table
No need to sort the int table because as a default int table will be sorted

Syntax:
Data: <int tab> like SORTED table of <wa> with UNIQUE/NON-UNIQUE KEY <F1>.

2) HASHED int table


It also doesn’t allows the duplicate records
At least one field should be unique
Records will be added using INSERT key word
Mid- point algorithm is used to search the records from int table.

Syntax:
Data: <int tab> like HASHED table of <WA> WITH UNIQUE KEY <F1>.

 INITIALIZATION TECHNIQUES:
These techniques are used to initial (empty) the WA and int table
1) CLEAR: it is used to clear the content of the work area.
Syntax: CLEAR <WA>.
2) REFRESH : it is used to clear the content of the internal table
Syntax: Refresh <int name>.
3) FREE: it is used to clear the content of the internal table and memory allocated to int table.
Syntax: Free <int table>.

READING THE DATA FROM INTERNAL TABLE?

READ is the key word to get a single record from the internal table into WA or variable with key
combination.

Syntax:
READ TABLE <int table> INTO <wa> WITH KEY <Condition> .
Or
READ TABLE <int table> INTO <wa> WITH KEY
<Condition> BINARY SEARCH.
Note: int table need to be sorted when BINARY SEARCH is used for standard table or hashed
table.

difference b/w subroutine and function module?

There is a difference between a Subroutine and Function Module.

1. Subroutines have no Exceptions Parameters.


FM have Exceptions parameters to catch the exceptions.

2. Subroutines can be accessed locally i.e. local Modularization Unit.


FM have Global Access i.e. they are Global Modularization Unit.

3. Subroutines can not be tested independently.


FM can be tested independently.

4. Subroutines Explicitly wont return any values.


FM explicitly returns values.

5. Subroutines is not remote Enables.


FM can be made Remote Enables and can be called from non-SAP systems.

6. Optional parameters cannot be in Subroutines.


FM can be defined with optional Parameters.

they can both return values.


FMs are mainly used when a routine is to be performed by many programs.
Subroutines (forms) are generally only executed within one program.
You can perform routines from other programs, but it's not often done.

both forms and FMs are reusable modularization units.


To distinguish we generally say that forms are used for internal modularization and
FMs are used for external modularization.

To decide on which to implement, consider whether you need the content to be used just for a
limited program
or wheteher it can be called from many independent programs.
For the first purpose it is better to implement a form whereas for the second we implement an
FM.

However, ABAP does not isolate the usage context.


That is; you can call a form from another program within whose code the form is not actually
implemented.
However, this requires attention since the form may utilize global variables.

The same issue holds for FMs.


FMs are encapsulated in function groups and function groups may have global variables that can
be globally
used by all FMs inside it.

 Differerence b/w classical and interactive reports?

--Classical reports are normal reports. These reports are not having any sub reports. IT IS
HAVING ONLY ONE SCREEN/LIST FOR OUTPUT.

--Interactive report: we can generate 1 basic list and up to 20 secondary lists. User interaction
will be there. If u clicks on particular field in basic list it will go to secondary list. Easy to analyze
the report.

38. Events in classical Reports?

Ans1. Events in Classical report Events associated with classical report are as follows and each
one will be discussed in detail.

1. INITIALIZATION: this event triggers before the selection screen. It is used to select the
default values in selection screen.
2. AT SELECTION-SCREEN: this event trigger after giving the input and before leaving the
selection screen. It is used to validate the given input in the selection screen.
3. AT SELECTION-SCREEN ON
4. START-OF-SELECTION : this event trigger after leaving the selection-screen and before
extracting data. It is used to extracting data.
5. TOP-OF-PAGE : it will trigger at top of each page .is used to provide header information.
6. END-OF-SELECTION :this is used processing the data and display the data.this will trigger
after extracting the data before processing the data.
7. END-OF-PAGE : this will trigger at end of each page. This used to provide the footer
information.

39. Events in Interactive reports?

Events associated with Interactive Reports are:

AT LINE-SELECTION: It will trigger when ever user double click on any record of any list.
Advantage: It is used to pass the list number on which double clicked to the next list.
AT USER-COMMAND: It will trigger when we click on any menu items.
AT PF-STATUS: it will trigger when we click on any function keys
TOP-OF-PAGE DURING LINE-SELECTION: it will trigger at the top of secondary list
Advantage: it is used to provide the header in the secondary list.

40. Difference b/w HIDE and GET cursor?

Ans1. Hide: it will stores the selected values in a temporary storage area. When using hide if we
click anywhere (ex: blank spaces also) in the basic list it will displays the secondary list. This is
the main disadvantage with hide.

HIDE wa_kna1-kunnr.

Get cursor: when using the get cursor if we click on the particular field it will display the
secondary list.

GET CURSOR FIELD value.

Ans2.HIDE is used generally when you want to display secondary lists in your output before
using write statement. The field which is used in hide statement is used to display the output in
the secondary lists.

Get cursor is used for referring all the fields of an internal table.

39. What is TYPE-GROUP?

You use type groups to store user-defined data types or constants in the ABAP Dictionary for
cross-program use.

In your ABAP program, you declare type groups with the TYPE-POOLS statement as follows:

Syntax
TYPE-POOLS <name>.

This statement allows you to use all the data types and constants defined in the type group
<name> in your program. You can use several type groups in the same program.

You maintain type groups either by choosing Tools  ABAP Workbench  Development  ABAP
Dictionary or directly from your ABAP program.

39. What is type-pools?


Ans. The TYPE-POOL statement must be the first statement of a type group following the
triggering of possible include programs, and introduces this type group. You can only maintain
type groups in the ABAP Dictionary tool of the ABAP Workbench, whereby an ABAP program is
automatically generated including the TYPE-POOL statement.

Type groups can only contain the statements

 INCLUDE,
 TYPES,

 TYPE-POOLS,

 CONSTANTS,

 DEFINE and END-OF-DEFINITION,

 CLASS DEFINITION with additions DEFERRED PUBLIC or LOAD

--Type pool SLIS is used in ALV as all related data types are defined in type pool

Function modules in ALV?

REUSE_ALV_COMMENTARY_WRITE: This is used in the Top-of-page event to print the headings


and other comments for the list and also logos.

Parameters:

I. it_list_commentary : internal table with the headings of the type slis_t_listheader.

This internal table has three fields:

Type: ‘H’ – header, ‘S’ – selection , ‘A’ - action

Key: only when type is ‘S’.


Info: the text to be printed

REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.

The important parameters are :

I. Export :

i. I_callback_program : report id

ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the
functionality of the existing pf status

iii. I_callback_user_command : routine where the function codes are handled

iv. I_structure name : name of the dictionary table

v. Is_layout : structure to set the layout of the report

vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed
(this table can be populated automatically by the function module
REUSE_ALV_FIELDCATALOG_MERGE

vii. It_events : internal table with a list of all possible events of ALV and their corresponding
form names.

II. Tables :

i. t_outtab : internal table with the data to be output

REUSE_ALV_GRID_DISPLAY: A new function in 4.6 version, to display the results in grid rather
than as a preview.

Parameters: same as reuse_alv_list_display

REUSE_ALV_FIELDCATALOG_MERGE: This function module is used to populate a fieldcatalog


which is essential to display the data in ALV. If the output data is from a single dictionary table
and all the columns are selected, then we need not exclusively create the field catalog. It’s
enough to mention the table name as a parameter (I_structure name) in the
REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.

The Important Parameters are :


I. Export :
i. I_program_name : report id
ii. I_internal_tabname : the internal output table
iii. I_inclname : include or the report name where all the dynamic forms are handled.

II Changing

ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is declared in the type
pool SLIS.

REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type

Parameters :
I. Import :
Et_Events : The event table is returned with all possible CALLBACK events

for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM'
field must be filled. If the field is initialized, the event is ignored. The entry can be read from the
event table, the field 'FORM' filled and the entry modified using constants from the type pool
SALV.

II. Export :
I_List_type :
0 = simple list REUSE_ALV_LIST_DISPLAY
1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND
3 = hierarchical-sequential block list
REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_HIERSEQ_LIST_DISPLAY

Parameters:
I. Export:
i. I_CALLBACK_PROGRAM
ii. I_CALLBACK_PF_STATUS_SET
iii. I_CALLBACK_USER_COMMAND
iv. IS_LAYOUT
v. IT_FIELDCAT
vi. IT_EVENTS
vii. i_tabname_header : Name of the internal table in the program containing the
output data of the highest hierarchy level.
viii. i_tabname_item : Name of the internal table in the program containing the
output data of the lowest hierarchy level.
ix. is_keyinfo : This structure contains the header and item table field
names which link the two tables (shared key).

II. Tables

i. t_outtab_header : Header table with data to be output


ii. t_outtab_item : Name of the internal table in the program containing the
output data of the lowest hierarchy level.
slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be
populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.

Important Attributes :

A. col_pos : position of the column

B. fieldname : internal fieldname

C. tabname : internal table name

D. ref_fieldname : fieldname (dictionary)

E. ref_tabname : table (dictionary)

F. key(1) : column with key-color

G. icon(1) : icon

H. symbol(1) : symbol

I. checkbox(1) : checkbox

J. just(1) : (R)ight (L)eft (C)ent.

K. do_sum(1) : sum up

L. no_out(1) : (O)blig.(X)no out

M. outputlen : output length

N. seltext_l : long key word

O. seltext_m : middle key word

P. seltext_s : short key word


Q. reptext_ddic : heading (ddic)

R. ddictxt(1) : (S)hort (M)iddle (L)ong

S. datatype : datatype

T. hotspot(1) : hotspot

Events in Alv reports?


These are the main events that are used in an ALV report.

1. USER_COMMAND
2. TOP_OF_PAGE
3. PF_STATUS_SET
4. TOP_OF_LIST
5. END_OF_PAGE
6. END_OF_LIST
7. SUBTOTAL_TEXT

what is slis_t_fieldcat_alv?
slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be
populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.

LSMW:

What is the LSM Workbench?

The LSM Workbench is an R/3-based tool that supports single or periodic data transfer from
your non-SAP system to R/3

What are the core functions of the LSM Workbench?

Importing legacy data from PC spreadsheet tables or sequential files


Converting data from its original (legacy system) format to the target (R/3) format
Importing the data using the standard interfaces of R/3 (IDoc inbound processing, batch input,
direct input)

Which data can be migrated using the LSM Workbench?


By means of standard transfer programs: a wide range of master data (e.g. G/L accounts,
customer master, vendor master, material master, bills of material) and transaction data (e.g.
financial documents, sales orders)
By means of recording of transactions: further data objects (if the transaction can be run in
batch input mode)

Can I be certain that the imported data is consistent?

Yes. The data is loaded via the standard interfaces of the applications. This will include all checks
that are run for online transactions. Invalid data will be rejected.

Can I be certain that conversions are carried out identically across the applications?

Yes. The LSM Workbench works on the principle of central (reusable) rules. This approach
guarantees that, for example, the material number is converted in the same way wherever the
reusable rule is used for conversion.

Do I need an extensive knowledge of ABAP to use the LSM Workbench?

No. The LSM workbench provides the main conversion techniques at the push of a button. For
complex conversions, individual ABAP coding can be added.

Do I have to migrate table by table?

No. Business objects such as material master, customer master or FI document are migrated

Can I transfer data that is on my PC?

Yes. The LSM workbench can read the data directly from your PC. Only when using the periodic
interface, the data has to be on a server accessible by R/3

Is the LSM Workbench part of the standard R/3 system?

No. The LSM Workbench can be downloaded for free from SAPNET:
http://service.sap.com/LSMW

Is there an extra charge for the LSM Workbench?

No. The LSM Workbench is available free of charge to SAP’s customers and partners

Is there an LSM training course?

There is no specific training course for LSMW


LSMW is part of the 5-day standard training BC420
Workshops at customer site are done at customers charge
Examples in the media center can be used for self-study

Can I migrate from R/3 to R/3 via LSMW?

Yes, but:

Export has to be programmed


Source structures have to be defined
Fields of the source structures can be loaded from the dictionary
Mapping has to be done manually è a lot of fields!! Automatic fieldmapping might be used
Import of large data amounts can take a lot of time (most of the time data amount is higher
than for Migration from legacy systems)
History data can not be build up most of the time

Can I build periodic interfaces using LSMW?

Yes. It is possible to build periodic interfaces using the frame program


/SAPDMC/SAP_LSMW_INTERFACE

You can download these faq as presentation too,

BDC(scn)

1)What is BDC ?

2)What is call transaction method ? what is the syntax/procedure?

3)What is session method and what is the syntax/procedure?

4)Difference between call transaction & session method?

5)which of these methods can be best used in background process?

6)What is direct input method?

7)How LSMW is advantageous than normal BDC?

8)what are the steps in lsmw?

9)IN LSMW can you use BAPI, ?

10)Can you call a bdc from a report program?


11)what is the difference between synchronus & asynchronus methods?

12)call transaction uses synchronus or synchronus method?

13)session method uses synchronus or synchronus method?

14)What is bapi?

15)how bapi is different from call transaction/session?

16)what r the advantages of bapi?

17)for uploading master data(ex:customer data) into sap, which methods you prefer? call

transaction/session/lsmw/bapi? why?

18)tell any 2 standard bapi function modules used for

uploading sales order data?

Answers.

1 BDC is used to upload the data from the legacy system to SAP

2 Call transaction is one of the method in BDC

Syntx is: CALL TRANSACTION T_CODE USING BDCDATA MODE 'N' UPDATE 'S' MESSAGES INTO
MESSTAB

3) Session method is one of the method in BDC,, we use the Function moduels in this one,
BDC_OPEN_GROUP, BDC_INSERT and BDC_CLOSE_GROUP.

4) Session method.

4.1) synchronous processing.

4.2) can tranfer large amount of data.

4.3) processing is slower.

4.4) error log is created

4.5) data is not updated until session is processed.


Call transaction.

4.1) asynchronous processing

4.2) can transfer small amount of data

4.3) processing is faster.

4.4) errors need to be handled explicitly

4.5) data is updated automatically

5) Call transaction is best

6) Direct i/p method Consistency checks are executed by function modules.Its performance
wise better then batch i/p and call tarnsaction bcoz both the above methods Consistency Check
are executed with the help of screen logic.

7) In LSMW, we do not write that much of code, and the code will be generated bu system just
can run the program by using the Mouse

8) http://www.sapbrain.com/TOOLS/LSMW/SAP_LSMW_steps_introduction.html

9) Yes, you can use the BAPI

10) Yes, you can call a BDC from a Report

11) synchronous means it will update the records directly when the both servers are up, in the
asynchronous mode, it will update the data when the server is up

12) Call transaction method use Both synchronous and asynchronous.

13) Session method method use Both synchronous and asynchronous.

14) BAPI is a RFC enabled function module

15) BAPI will update the Database directly where as the call transaction method/ session
method will go and insert the records in the transaction

16) BAPI is used only when it is available for the particular transaction like Delivery Sales order.
but BDC can be used for any transaction which have screen and fields.

BAPI is directly updated the database instead BDC run through the screen flow. So BAPI can't
handle all the flow logic checking and enhancement put by programmer to faciliate the user
requirement.
17) LSMW is better

18) Goto BAPI Transaction code and see the BAPI's there

----------------------

1. Can we write the code both call transaction and session method in single program?

Ans. Yes it is possible to write call transaction and session in one program.

2. Which BDC you prefer?

Ans. If we want to transfer large amount of data and when we need to use more than one
transaction code we prefer session method. For small or less amount of data and for single
transaction use call transaction.

(This is more generic answer but you can add more on to this if you have worked on BDC)

3. When u prefer LSMW?

Ans. When we need to update medium amount of data we use LSMW. LSMW is also used when
the person like functional consultant has less programming language.

37. What is module pool program in abap?

Ans: Module pool programs are created in abap development work bench (TCODE: SE80).
Module pool programs are also called dialog programs.

The module Pool are reports prepared for different screens and to manage the sequence
of events of these screens, in the transaction SE80 you can see all the dynpros that you have for
this kind of report, add new ones, add all types of element to the report.

Process before Output is the part of the dynpro code that is processed before the user can do
anything with the data in the screen

Process after Input is the part of the dynpro code that is processed after the interaction with the
user.

Module pool programs are executed using Tcodes .


II. A transaction is dialog program that change data objects in a consistent way
A user friendly user interface.
Format and consistency checks for the data entered by the user.
Easy correction of input errors.
Access to data by storing it in the data bases.

39. Difference between CALL TRANSACTION and SESSION Method

Call Transaction method Classical or session method


In this method, the ABAP/4 program uses In this method, ABAP/4 program read the
the call transaction <T-code > using external data that is to be entered to the SAP
<bdc_tab> mode <mode> update <update > system and stores the data in the batch input
method. session.

When the prgm has finished creating the


session, we can run the session thro the TC
SM35. This method involves FM like
BDC_OPEN,BDC_INSERT,BDC_CLOSE
In ‘Call Transaction’, the transactions are Whereas in Batch Input Sessions, the ABAP
triggered at the time of processing itself and program creates a session with all the
so the ABAP program must do the error transactional data, and this session can be
handling. viewed, scheduled and processed (using
Transaction SM35) at a later time. The later
technique has a built-in error processing
mechanism too.
Synchronous Processing Asynchronous Processing

We can update the database both Synchronous Database update.


synchronously and asynchronously. We can
specify the mode in the program. During processing, no transaction is started
until the previous transaction has been written
to the database.

No batch input processing log Detailed Log will be generated for all the
sessions

While execution it starts from the first. While executing it won’t start from the first. It
will start from the place where it ends with
error.

Faster than session method Not as fast as call transaction method


Write the BDCDATA table structure.
BDC table structure
FIELD TYPE DESCRIPTION
Program CHAR(8) Program name of transaction
DynPro CHAR(4) Screen number of transaction
DynBegin CHAR(1) new screen
Fnam CHAR(35) Name of database field from screen
Fval CHAR(80) Value to submit to field Write the BDC table
structure.

BDC table structure


FIELD TYPE DESCRIPTION
Program CHAR(8) Program name of transaction
DynPro CHAR(4) Screen number of transaction
DynBegin CHAR(1) Indicator for new screen
Fnam CHAR(35) Name of database field from screen
Fval CHAR(80) Value to submit to field

What is Dataset and how you use it?

ABAP/4 provides three statements for handling files:


The OPEN DATASET statement opens a file.
The CLOSE DATASET statement closes a file.
The DELETE DATASET statement deletes a file.
To open a file for read access, use the FOR INPUT option of the OPEN DATASET statement
To open a file for write access, use the FOR OUTPUT option of the OPEN DATASET statement
To open a file for appending data to the file, use the FOR APPENDING option of the OPEN
DATASET statement
To process a file in binary mode, use the IN BINARY MODE option of the OPEN DATASET
statement
To process a file in text mode, use the IN TEXT MODE option of the OPEN DATASET statement
To open a file at a specific position, use the AT POSITION option of the OPEN DATASET statement

When you work with the operating systems UNIX or WINDOWS NT, you can send an operating
system command with the statement OPEN DATASET. To do so, use the option FILTER
To receive the operating system message after trying to open a file, use the MESSAGE option of
the OPEN DATASET statement
To close a file on the application server, use the CLOSE DATASET statement
To delete a file on the application server, use the DELETE DATASET statement
To write data to a file on the application server, use the TRANSFER statement
To read data from a file on the application server, use the READ DATASET statement

What is BDC_OKCODE ?
The command field is identified by a special name in batch input called BDC_OKCODE. This
name is constant and always identifies the command field.

 How do you save data in BDC tables ?

The data in BDC tables is saved by using the field name ‘BDC_OKCODE’ and field value of ‘/11’

40. Difference b/w synchronous update and asynchronous update?

Synchronous update: is used to no transaction is stored until the previous transaction has been
written into the sap database.

Asynchronous: is used to the program is need not wait for the previous transaction. Any kind of
transaction is stored into the database.

 How you trap errors in call Transaction?

Errors while updating the database using call transaction technique are trapped using a
structure bdcmsgcall, whose field msgtyp become ‘e’ when an error record is encountered.
Those records are formatted using format_message function call in the desired format and
stored in an internal table for listing of all error records in one shot.

38. Difference between BDC and Bapi?

 BDC stands for Batch Data Communication, Through BDC you are going to update
screens.
 BAPI stands for Business Application Programming Interface. Through bapi you are going
to update Data Base Tables directly.

Whenever screen of a particular transaction changes, you need to redo the work in case of
BDC.

Whereas in case of BAPI SAP will take care as it will update the Database Tables Directly.

BAPI is directly updated the database instead BDC run through the screen flow.
So BAPI can't handle all the flow logic checking and enhancement put by programmer to
facilitate the user requirement.

BAPI is a higher end usage for transferring the data from SAP to non-SAP and vice-versa. for
ex: if we are using VB application, where in that we want to connect to SAP and retrieve the
data, and then change and update the data in SAP for that purpose we can use that.

There is one more advantage using BAPI instead of BDC. When we go for up gradation, there
might be possibility to change the screen elements for transactions depending on the
requirement.

 In that case, our BDC program may or may not work (depending on the screen changes they
have made).

BAPI is used only when it is available for the particular transaction like Delivery Sales order. but
BDC can be used for any transaction which have screen and fields.

bapi supports upgradation

What need to be taken care while handling database transaction in BAPI ?

 A transaction is completed either using a COMMIT WORK command or a ROLLBACK command.


A BAPI transaction must be ended by calling the BAPIs BapiService.TransactionCommit() or
BapiService.TransactionRollback().
 The call of a BAPI must not trigger further LUWs that are independent of the BAPI. For this
reason BAPIs must not contain the following commands:
CALL TRANSACTION
SUBMIT REPORT
SUBMIT REPORT AND RETURN

What is BOR (Business Object Repository) ?

 The Business Object Repository (BOR) is the central access point for the SAP business object
types and their BAPIs. The BOR contains all the relevant information on the SAP business object
types, their key fields, and their BAPI methods that are needed to integrate the correct object
type definitions and BAPI calls in an application program. This makes the integration of
middleware (such as the DCOM Connector, ActiveX Controls, CORBA Gateway, and so on)
possible.
 Creates instances of SAP business objects. The runtime environment of the BOR receives
requests to create runtime objects from client applications and creates the appropriate object
instances.

What is SAP Business Objects ?

 A business object type, which represents of a business entity in the SAP R/3 System,
encompasses both the functionality (in the form of methods) and the data (in the form of
attributes) of this entity. The implementation details of the business object type are hidden
from the user. The business object type is accessed through defined functions (methods). This is
referred to as encapsulation.
 Business object types form the point of entry to the data and the functionality of the SAP R/3
System. At the business object type level, both non-SAP systems and the various SAP business
components can communicate with each other.
 The business object type SalesOrder represents a customer’s request to
the company to supply a particular quantity of material at a certain point in time or to perform
services at a certain point in time. A specific sales order is identified by a sales document
number. The business object type contains all the necessary information for a sales order: sold-
to party, sales organization, document date, net value of the order, and currency of the sales
and distribution document.

41. Tell any 2 standard Bapi function modules used for uploading sales order data?

1. BAPI_SALESORDER_CREATEFROMDAT2
2. Bapi_salesorder_getstatus
3. BAPI_CUSTOMER_CREATEFROMDATA
4. BAPI_PROJECT_MAINTAIN
5. BAPI_COMPANYCODE_GETLIST
6. BAPI_COMPANYCODE_GETDETAIL
7. BAPI_CUSTOMER_GETDETAIL2
8. BAPI_PO_CREATE
9 BAPI_PO_getdetail
10. BAPI_MATERIAL_GET_DETAIL

42. Difference b/w bapi and fm?

BAPI is a remote enabled function module i.e. it can be accessed from anywhere and from any
system, where as a normal function module can't.
* BAPI perform accurate validation checks,

Each BapiObject has Interface, Key Fields, Attributes, Methods and Events.
Bapi Function Modules can be attached to these Bapi objects.
Function module has a single bound functionality
While a BAPI object can contain many functionalities.

Commit and rollback in bapi?

Commit is the thing which saves the changes you made to the database .it is an interface
technique it is a direct input method.
for example you have inserted some data into one table by using this BAPI technique but you
not done the Commit BAPI then what happens is the changes u made to the database cannot
been seen in the table these will get effective once u have Done the Commit BAPI

Rollback
see by taking the above example only we can know what is Rollback it is nothing but UNDO
option in ms office se until saving if we want one step back we will do it by undo option am i
right.
similalry until commit in i.e. nothing until saving the changes made u can delete the modified
change .
call function 'BAPI_PO_CREATE1'
'....................
After that
if u want to do commit , just add this statement.

COMMIT WORK.
if u want to do roll back , just add this statement
ROLLBACK WORK.

Different types of EXITS?


Exits are again 4 types:
1) User exits
2) Menu Exits
3) Function Exits
4) Customer Exits
There are 2 t.codes SMOD and CMOD to work with exits
SMOD is used to identify the EXIT and CMOD is used to implement the exit using project.

BADI?

Object: To create a BADI implementation for CS01 transaction, that does not allow user to
create alternative BOMs for already created BOM.
Approach: If an alternative BOM is created, the field STLAL from MAST table will be increased
by 1. We can control future creation of BOM using this field by writing the condition. i.e before
updating to MAST table we need to write the condition to stop duplicate BOM

So need to identify the correct badi (Location) in which we write the condition

Identify all the badi of this application CS01 using CL_EXITHANDLER class using SE24 t.code .

43. Difference b/w user exit and customer exit?

1. A user exit is considered a modification, since technically objects in SAP namespace are
modified. Customer exits do not affect standard SAP source code.
2. User Exits are forms (in the SAP Standard Includes) and are called by SAP standard programs
using perform.

Customer Exits are functions so they are called using call function (or more exactly Call
customer function).

3. Inside the form (user exit) you can read and change almost any global data from host
program.

Inside a function (customer exit) you can only access your import/export/changing/tables
parameters.

4. User exits are more flexible because you have more information to use in your code but on
the other hand, it is very easy to manipulate erroneously global data and lead the standard
program to a dump or even to make database inconsistent.

Customer exits are more restrictive but you are sure any change you can make to any
parameters will never lead to inconsistency.

5. User-exit doesn't have any classification. In customer-exit we have function-module exit,


screen exit, menu exit.
6. User exits are basically designed For SD module. Customer exits are available for MM, SD, FI,
HR... basically designed for all modules.
7. While changing User-exit, Access Key is required, whereas in Customer-exit no access key is
needed.
8. User exits are flexible and inconsistent and customer exits are restrictive and consistent.
9. User-Exit affects modifies the standard code and this change will be effected every time.
Whereas Customer-Exit will be included (or called) into the main program only when the
corresponding Project is active. Thus preserving us lot of resources time.
Ans2.

1.USER EXITS are FORMS and are called by SAP standard programs using
PERFORM(subroutines).
CUSTOMER EXITS are FUNCTIONS so they are called using CALLFUNCTION (function modules)
2.Inside the form (user exit) you can read and change almost any global data from host program.
Inside a function (customer exit) you can only acces your import/export/changing/tables
parameters.
3.User exits are more flexible because you have more information to use in your code but on
the other hand , it is very easy to manipulate erroneously global data and lead the standard
program to a dump or even to make database inconsistent.
Customer exits are more restrictive but you are sure any change you can make to any
parameters will never lead to inconsistency
4.User-exit doesn’t have any classification.
In customer-exit we have function-module exit, screen exit, menu exit.
5. User exits are basically designed For SD module.
Customer exits Are available for MM,SD,FI,HR€¦..Basically Designed for all modules.

44. What is the difference between User Exits and BADI?

Making enhancements using the transactions SMOD/CMOD has The following disadvantages:

1) This enhancement technique assumes a two-tiered system Infrastructure (SAP – customers).


2) The naming conventions in effect do not tolerate name Extension.
3) It can be called only once. I.e. A user exit cannot be assigned to more than one project.

Advantages of BAdI

1) Fulfills the requirements of a system infrastructure containing country versions, industry


solutions, partners, and customers.
2) Business Add-Ins should be considered generalized Business Transaction Events that can be
used to bundle program, menu and screen enhancements into a single add-in.
3) Business Add-Ins can be created and employed in each of the various software levels.
4) BAdI can be called many times. I.e. BAdI implementation can be assigned to more definitions.

Ans 2. BADI is OOPs concept...but User Exit not


BADI can be used more than once... but User Exit can be used only one time
BADI code remains outside the standard program.
User Exit - code will be included in standard program

Differences between BADI and Customer Exit?


BADI Customer-exit
Business Add-Ins are a new SAP CUSTOMER EXITS (enhancements) are
enhancement technique based FUNCTIONS so they are called using CALL
on ABAP Objects. FUNCTION (or more exactly CALL
CUSTOMER FUNCTION
Badi’s allow for a multi-level Customer exits assumes a two-level
system landscape (SAP, partner, infrastructure (SAP and customer
and customer solutions, as well solutions)
as country versions, industry
solutions, and the like). Business
Add-Ins can be created at each
level within such a system
infrastructure
Some BADI can have multiple Customer-exit implemented in one project
independent implementations, cannot be implemented in other.
which is much better for
software deployment as several
developers can implement the
same BADI independently.

smod and cmod?

SMOD is used to identify the EXIT and CMOD is used to implement the exit using project

45. I have created a script in language DE. Now I need to translate it to EN. How could I do
this?
Open your script in transaction SE71.
In the Header screen, in the Language Attributes Option, choose Translate to... Option to
translate to other languages.
46. How can I copy SAPScripts from one client to another?

In the transaction SE71, enter the Form name and choose the menu, Utilities->Copy from client
to copy SAPScripts from one client to another.
Use RSTXSCRP to import/export SAPScripts.

7. How to debug sap scripts?

Ans. Two ways to debug sap script.

first way is go to SE 71 and from menu bar select Utilities->activate debugger .then go to SE38
execute the print program ,it automatically goes to debugging mode …..

The other way is, run the program RSTXDBUG in SE 38. Execute it. A message will show that
debugger is activated. Now open the print program in SE 38 …u will notice that the print
program is automatically diverted to debugging mode.

11. What is page window?

Ans. page window is nothing but a container of a page ,which uniquely identifies a set of data …
for example while creating invoice …we create logo window , billing document header window ,
customer window , terms and condition window etc …

22. Why sap scripts are client dependent and smart forms are client independent?

Ans-: Smart forms create its own function module so it doesn’t need to transport the request
through SCC1.As all the Development Object are stored in client independent tables.

Whereas Script doesn’t generate any function module while executing so we need to
transport the request number through SCC1.Sap script is stored inside the client depended
table as a TEXT. So sap scripts are client dependent and smart forms are client independent.

47. Difference between scripts and smartforms in sap?

1) Script is Client Dependent whereas SMARTFORM is client Independent.


2) We can't cave script without Main window but SMARTFORM we can.
3) After executing SMARTFORM it generates a function module Script doesn't.
4) We can set background Image to SMARTFORM but not in Script
5) We can add color in SMARTFORM but not in Script.
6) In Script we can maintains up to 99 main windows but in SMARTFORM can maintain only one
Main window.

We cannot create sapscript without main window.


But we can create smartform without main window.

 VIEWS:

Data about an application object is often distributed on several tables. By defining a view, you
can define an application-dependent view that combines this data. The structure of such a view
is defined by specifying the tables and fields used in the view. Fields that are not required can
be hidden, thereby minimizing interfaces. A view can be used in ABAP programs for data
selection.

The data of a view is derived from one or more tables, but not stored physically. The simplest
form of deriving data is to mask out one or more fields from a base table (projection) or to
include only certain entries of a base table in the view (selection). More complicated views can
comprise several base tables, the individual tables being linked with a relational join operation.
See also Join, Projection and Selection.
The base tables of the view must be selected in the first step of a view definition. In the second
step, these tables must be linked by defining the join conditions. It is also possible to use the
join condition from a foreign key defined between the tables (see Foreign Key Relationship
and Join Condition). In the third step, you must select the fields of the base tables to be used in
the view. Selection conditions that restrict the records in the view can be formulated in the
fourth step.
Four different view types are supported. These differ in the way in which the view is
implemented and in the methods permitted for accessing the view data.
 Database views are implemented with an equivalent view on the database.
 Projection views are used to hide fields of a table (only projection).
 Help views can be used as selection method in search helps.
 Maintenance views permit you to maintain the data distributed on several tables for
one application object at one time.
Database views implement an inner join. The other view types implement an outer join (see
Inner and Outer Join).
The join conditions for database views can be formulated using equality relationships between
any base fields. The join conditions for the other view types must be obtained from existing
foreign keys. Tables therefore can only be combined in a maintenance view or help view if they
are linked to one another with foreign keys.
The maintenance status defines whether you can only read data with the view or whether you
can also insert and change data with it.

6. Performance techniques?

Ans.

1. The sequence of fields must be same as per database table

2. During writing select query write all fields in sequence as per database table.

3. Never write select statements inside loop….end loop.

4. Use st05 SQL trace, se30 run time analysis, code inspector, slin, etc.

5. Use select single * statement instead of select *

6. Always use primary key

7. Use binary search but before using binary search sort that table.

ALE/IDOCS:

 Difference between we19 and bd87?

When you restart processing of a failed IDoc in BD87 you only deal with this failed IDoc.

If you open an existing IDoc in WE19 and process it again you create a new IDoc.

BD87: Process inbound IDocs


Using the Error number, the IDoc number and the transaction BD87, with the required message
type you can reprocess the IDoc. Match the error number with this transaction and execute the
function for the IDocs incorrectly processed.

WE19: IDoc: Test tool inbound

Use transaction WE19 to test inbound function module in debugging mode. Also use WE05 to
view the IDocs and their statuses.

In WE19 you can process only one idoc at a time, whereas in BD87 you can process any number
of idocs.

In WE19 a new idoc number gets generated every time you process on idoc.

In BD87, the same IDOC number is retained even after reprocessing.

You CANNOT process a SUCCESFUL Idoc in BD87.

You CAN process a successful idoc in WE19.

P.S: Please do not use we19 for reprocessing. It is only for testing and debugging purposes.

The test tool is a two-step process. In the first step, you create an IDoc by using one of the
following options:

 Copy an existing IDoc.


 Create an IDoc based on an IDoc type.
 Create an IDoc based on a message type.
 Create an IDoc using a file as a template.
 Create an IDoc with no template.

The option you choose depends on your tastes and program requirements. The first option is
most commonly used because it enables you to modify an existing IDoc (inbound or outbound)
to suit your needs.

In the second step, the IDoc created is passed to the inbound process. You have several options
to select the method of starting the inbound process :

Start the inbound processing via the standard path. This method uses all inbound components.

Call the inbound function module directly. The system bypasses the checks for partner profile
and hands the IDoc data to your inbound function module directly. This method is useful for
testing an inbound process without having to maintain any inbound configuration. You can also
start the function module in debug mode and select the processing option for your posting
module.

Save the IDoc in a file, and start the inbound process. This method is similar to the first method
except that you also create an IDoc file at the operating system level. This method is used
mainly for EDI processes.

Differences between IDOC and BAPI?

IDOC BAPI
IDocs are text encoded documents with a rigid structure that BAPIs are a subset of the RFC-enabled function modules,
are used to exchange data between R/3 and a foreign system especially designed as Application Programming Interface
(API) to the SAP business object, or in other words: are
function modules officially released by SAP to be called
from external programs.
Idocs are processed asynchronously and no information BAPIs are called synchronously and (usually) return
whatsoever is returned to the client, information

The target system need not be always online. The IDOC whereas for BAPIs the client code needs to do the
would be created and would send the IDOC once the target appropriate error handling.
system is available (tRFC concept). Hence supports
guaranteed delivery
With asynchronous links the sub-process on the client can be Problems with synchronous links occur if the
finished even if the communication line or the server is not communication line or the server is temporarily not
available. In this case the message is stored in the database available. If this happens, the sub-process on the client
and the communication can be done later cannot be finished (otherwise there would be data
inconsistencies).
The disadvantage of asynchronous links is that the sub- Synchronous links have the advantage that the sub-process
process on the server cannot return information to the calling on the server can return values to the sub-process on the
sub-process on the client. A special way for sending client that has started the link.
information back to the client is required. In addition, a
special error handling mechanism is required to handle errors
on the receiving side.

BAPIs are not totally immune to upgrades


IDOCs may
be more changeable from release to release.
BAPIs are reasonably well documented.
IDOCs are poorly
documented
 Idoc outbound function modules?

- L_IDoc_HEADER_CREATE Generate the necessary EDIDC data for each IDoc


- L_IDoc_SEGMENT_CREATE Generate an IDoc segment
- L_IDoc_SEND Send the generated IDocs

How to find IDOC Function Module for Basic Type: ORDERS05?

Just go to SE16 Transaction -> enter table name EDIFCT -> enter Idoc type ORDERS05 -> here
you can see list of FM

 Status codes in outbound side (sender system)?

01 – Idoc created

30 – ready to dispatch

03 – Dispatched successfully

18 – Idoc reached to receiver side successfully

29 – Error in ale (partner profile)

Status codes in inbound side (receiver side)?

50 – Idoc reached

51 – Error in ale

53 – Idoc posted successfully

68 – Idoc deletion

72 – Copy of parent idoc

69 – Idoc is edited

70 – Stores original idoc

 What are EdP13 and rseout00?

EDP13 is the table for saving the data of partner profile


RSEOUT00 IS the program to dispatch all the idocs in collective mode

 FM’s in idocs?

Master_idoc_distribute is the FM to create idoc.

DEQUEUE_ALL IS THE FM to post idoc which are located in custom idocs.

 Idoc filtering ?

Filtering techniques are 2 types i. idoc filtering

ii. Segment filtering

Idoc filtering: it stops whole idoc based on condition (t.code—bd64).

Segment filtering: some of segments stopped based on condition (t.code—bd56).

ALE IDocs in SAP is a lot about configuration and a lot about Tcodes . So if you have worked on
at least one end to end scenario in ALE IDocs in SAP , you probably already have answers to a
lot of questions.
Cheers!!
But if you haven't , make sure you do this exercise. There are plenty of step by step guides to
ALE IDocs available on the internet . Make sure you read one understand it all the way . Sending
IDoc from client 800 to say client 810 on the same server is easy . If possible ,Try an exercise in
which you send an IDoc from one system to another system.

Question 1: What is ALE ?


ALE stands for Application Link Enabling. As it's name indicates , it links two systems.
ALE is a technology that can enable exchange of data between two different Systems ( Sap - Sap
OR Sap - Non Sap). ALE technology enables distributed yet integrated installation of SAP
systems.
ALE architecture comprises of 3 layers:

Application layer refers to the application data ( SD , MM , FI or data for any SAP application ) .
In this layer the data is collected to be distributed and then sent to the distribution layer.

Distribution layer determines to whom should the data generated by the application layer has
to be distributed i.e. it is in the distribution layer that the recipient is determined, the data is
formatted or filtered and then an actual is created.

Communication layer takes the responsibility of delivering the Idoc to the receiving system and
communicates to the receiving system via tRFC , File ports , FTP or TCP/IP etc.

ALE uses IDoc as a vehicle to transfer data between two systems.

Question 2: What is EDI?

EDI stands for Electronic Data Interchange. It refers to the electronic exchange of business data
in a structured format between two systems. The EDI subsystem generally converts the Idoc
data into one of the many EDI formats and generates an EDI file in an X12 format. The
middleware then translates the X12 file to an IDOC format and the IDOC is sent to the SAP
system.

Question 3: What is an Idoc? What is IDoc Type? What is an IDoc Extension?

An IDoc (Intermediate document) is a vehicle that is used to transfer data from one system to
another.
IDoc is not a technology of some sort , but it is just a container that holds data .
It holds data in a structured format i.e. in the Fields of the Segments.

IDoc Type vs. IDoc:


An IDoc Type is nothing but a collection of one or more structures defined in a system with
specific fields. It does not hold Data.
However, an IDoc is something that holds the values in the fields of the structure defined by
IDOC type.

The transaction code to view an IDoc type (Basic and extension) is WE30.
Examples: ORDERS04, DEBMAS04, MATMAS04, CREMAS04.
These are all SAP standard Basic IDoc Types.

You can even have an IDoc extension in which you can use the existing Basic IDoc type and add
extra segments and fields to it. Usually we extend an IDoc when the standard SAP IDoc type is
not able to cater to the business process.

Question 4: What are the types of records in SAP ALE Idocs and where is this information
stored?

There are three types of records in SAP ALE Idocs:


Control Records: Control record information for an IDoc is stored in standard table EDIDC.

Control records contain sender,reciver,partner and what time it is created.


Data Records: data records information for an IDoc is stored in standard table EDIDD.
These are contains customer data
Status Records: status record information for an IDoc is stored in standard table EDIDS.
These are shows status codes of idoc
The IDoc status indicates the stage that the Idoc in currently in.

Question 5: What is an Idoc status? What are the different types of Idoc statuses that you
know ?
When an IDoc is sent from one system to another, it goes through various stages. The IDoc
status indicates the stage that the Idoc in currently in.
There about 75 IDoc statuses. There is no way you can remember those all .
Don't even try to ! You will probably remember only those on which you have worked .

But here are a few that you should know:


0-49 indicates an Outbound IDoc and 50-75 as Inbound IDoc.

01 IDoc generated
02 Error passing data to port
03 Data passed to port OK

51 Application document not posted


52 Application document not fully posted
53 Application document posted

Question 6: What is a Port ? What are the types of Ports ?

A port is a communication channel through which Messages can be sent or received in SAP .
The sender and the receiver both specify the port through which they will communicate.

The common port types are the TRFC Port and the File Port.
If both sender and receiver mention TRFC ports, data is exchanged via RFC connections.
If however, a file port is mentioned, the IDOC is written in a flat file at the specified location at
the sender system. Then a FTP transfer should be done from that location to the receiver system
or a Middleware that will send the file to the receiver system.

The transaction to maintain ports is WE21.

Question 7: What is a Message type and Idoc Type? What is the difference between Message
type and an IDoc type?

A Message type and an IDoc type are closely related . In fact, you will find that a
Message type is always associated with an IDoc type.
Whereas an IDoc type is a detailed version with all the segments and fields , a Message type is
used just to specify the kind of information that a system can send or receive to or from another
system.

So If system SAP1 has a Partner Profile where it specifies MATMAS as an outbound message
type , it just means that SAP1 can send material master data to say system SAP2.

If system SAP1 has a Partner Profile where it specifies MATMAS as an inbound message type , it
just means that SAP1 can receive material master data from say system SAP2.

What all fields can be sent and received will be specified in the IDoc type.
Some other message types: DEBMAS ( Customers), CREMAS (Vendors) belong to the Master
data.

The link between a message Type and an IDoc type is maintained in Tcode WE82.
Question 8: What is a partner profile? What are the types of partner profiles?

To be able to communicate with a partner via an IDoc interface, each system needs to
maintain a partner profile. A partner profile is a mechanism by which the system can specify
what kind of messages (message types) it can send or receive.
Partner profiles can be maintained in WE20.

Question 9: What is a distribution model (BD64) in ALE IDocs?


The distribution model describes how ALE messages flow between different logical systems.
You can mention the sender and receiver logical systems, the message type to be distributed
and also distribute data (IDocs) based on certain conditions by using the distribution model.
The ALE layer uses the distribution model to control which systems will receive the information
(IDocs) and also filter the data based on certain conditions.
Distribution Models can be created and maintained in transaction BD64.

Question 10: What are process codes?

I don't want to make this post too big. So, I will stop here for the time being.

More interview questions on ALE/IDocs:

Question 11: How do you read data from an IDoc in a program?


Question 12: How do you send Idoc from a program?
Question 13: How do you achieve filtering in a distribution model?
Question 14: Can I create a flat file from an IDOC? If Yes, How?
Question 15: You want to create and send an IDOC to another the moment a PO is created in
your system . How will you achieve this ?
Question 16: How to Reprocess Idocs in SAP?
Question 17: What is a change Pointer?
Question 18: What is serialization of Idocs?
Question 19: Important tcodes in ALE Idocs.
Question 20: Important programs in ALE Idocs:
Other Interview questions…

SAP SCRIPTS & FORMS

1. Can we write the code/program inside sap script?

2. How will u create sapscripts & smartforms in multiple language?

3.How to execute sap script & smart forms in Background?

4.How to do total & subtotal in scripts & forms?

=================================================

DATA DICTIONARY

1.Apart from .include & .append how will u do table enhancement?

2.what r the events of table maintainence generator?

3.what will happen if i use projection view and maintainence view together?

4. I created ZEMP table now i want to add more data but prev. data should not disturb how can i
do this?

=====================================================

REPORTS

1.How will u print footers in alv report?

2.How will u edit fields from output list of alv?

====================================================

BDC

1.what r the fields u took during recording for mmo1,me21n?

2.If u want to do bdc for xd01 explain me how will be the flow?

=================================================

user exits
1.what r enhancement points?

2.How to write customer exits?

3.what is routine? how it is different from user exits?

=====================================================================

SAP ABAP Interview Questions asked in Top Companies


Overview: Collection of important SAP ABAP Interview Questions

1. When a program is created and need to be transported to production does selection texts
always go with it? if not how do you make sure?

Ans: This is the very common problem faced by most of the ABAPers.

Let me explain the cause & solution;

When you create a report for the first time, you can see it as 'PROGRAM' in SE10, which means
it includes all the report source code as well selection texts.

Fine, you transport it to Quality system from DEV, here if you transport this same req to
Production, then there won't be any problem, since all changes will go.

But, by any means you have modififed and again re-transported (without touching the selection
text, then only the source code will move (type REPS in SE10).

To avoid this pit fall just save and activate your selection text, Then this should be reflected in
SE10 with sub-object type REPT - report text.
If you have already transported the report, except the selection text, then follow the prior step
what I have mentioned.

Check this Thread for more details regarding your concern.

hi all ,progrm created need to be transported to prodn does sele.txt go

2. What is the client concept in SAP? What is the meaning of client independent?

In commercial, organizational and technical terms, the client is a self-contained unit in the R3
system, with separate set of Master data and its own set of Tables. When a change is made in
one client all other clients are affected in the system - this type of objects are called Client
independent objects.

ii. Hi ,

since u r maintaining different clients in da same server ,

so ,tables needs to have diff data for diff client.....

now if u dont make tables client dependent then , same table data will be used by all clients ...

But all clients have their own diff data ,

So making a table client dependent , u r using same database table, to store data of different
clients.

for more information:

A client is a logical division of data within an SAP system. Some things, like application data are
mostly client-dependent, meaning that for example, a G/L account defined in client 123 of
system ABC is only visible in that client. Therefore if you logon to client 456 of system ABC you
will not be seeing the same database entity (if it is defined at all).

At a technical level, client dependent data simply resides in database tables that have the client
number as a key field (typically the first key field).
Multiple clients within an SAP system are often used in development, testing and training
systems - so that individuals can work in the same system (on the same codeset) but in isolation
of each other.

Very rarely will a production system have multiples clients (ignoring the internal SAP clients like
000 and 066).

3. Are programs client dependent?

programs are not client dependent


all programs r client indipendent but the data is client dependent

ii. no, the programs are client independent because, as this software is platform independent so
any client can use any program from anywhere.

Sap scripts are client dependent and smart forms client independent.

4. Name a few system global variables you can use in ABAP programs?

SY-SUBRC, SY-DBCNT, SY-LILLI, SY-DATUM, SY-UZEIT, SY-UCOMM,SY-TABIX.....

5. What are internal tables? How do you get the number of lines in an internal table? How to
use a specific number occurs statement?

6. How do you take care of performance issues in your ABAP programs?

7. What are datasets?

8. How to find the return code of a stmt in ABAP programs?

9. What are interface/conversion programs in SAP?

10. Have you used SAP supplied programs to load master data?

11. What are the techniques involved in using SAP supplied programs? Do you prefer to write
your own programs to load master data? Why?
12. What are logical databases? What are the advantages/disadvantages of logical databases?

13. What specific statements do you using when writing a drill down report?

14. What are different tools to report data in SAP? What all have you used?

15. What are the advantages and disadvantages of ABAP query tool?

16. What are the functional areas? User groups? And how does ABAP query work in relation
to these?

17. Is a logical database a requirement/must to write an ABAP query?

18. What is the structure of a BDC sessions.

19. What are Change header/detail tables? Have you used them?

20. What do you do when the system crashes in the middle of a BDC batch session?

21. What do you do with errors in BDC batch sessions?

22. How do you set up background jobs in SAP? What are the steps? What are the events
driven batch jobs?

23. Is it possible to run host command from SAP environment? How do you run?

24. What kind of financial periods exist in SAP? What is the relevant table for that?

25. Does SAP handle multiple currencies? Multiple languages?

26. What is a currency factoring technique?

27. How do you document ABAP programs? Do you use program documentation menu
option?

28. What is SAPScripts and layout set?


29. What are the ABAP commands that link to a layout set?

30. What is output determination?

31. What are Idocs?

32. What is screen painter? Menu painter? Gui status?

33. What is screen flow logic? What are the sections in it? Explain PAI and PBO.

34. Overall how do you write transaction programs in SAP?

35. Does SAP have a GUI screen painter or not? If yes what operating systems is it available
on? What is the other type of screen painter called?

36. What are step loops? How do you program page down page up in step loops?

37. Is ABAP a GUI language?

38. Normally how many and what files get created when a transaction program is written?
What is the XXXXXTOP program?

39. What are the include programs?

40. Can you call a subroutine of one program from another program?

41. What are user exits? What is involved in writing them? What precautions are needed?

42. What are RFC’s? How do you write RFC’s on SAP side?

43. What are the general naming conventions of ABAP programs?

44. How do you find if a logical database exists for your program requirements?

45. How do you find the tables to report from when the user just tells you the transaction he
uses? And all the underlying data is from SAP structures?

46. How do you find the menu path for a given transaction in SAP?
47. What are the different modules of SAP?

48. What is IMG in SAP?

49. How do you get help in ABAP?

50. What are different ABAP editors? What are the differences?

51. What are the different elements in layout sets?

52. Can you use if then else, perform etc statements in sap script?

53. What type of variables normally used in sap script to output data?

54. How do you number pages in SAPScripts layout outputs?

55. What takes most time in SAP script programming?

56. How do you use tab sets in layout sets?

57. How do you backup SAPScripts layout sets? Can you download and upload? How?

58. What are presentation and application servers in SAP?

59. In an ABAP program how do you access data that exists on a presentation server v/s on an
application server?

60. What are different data types in ABAP?

61. What is difference between BDC and Call Transaction?

62. Setting up a BDC program where you find information?

63. What has to be done to the packed fields before submitting to a BDC session?

64. Why SAP script is client dependent ?


By design, SAP script is a word processing tool which displays data on the form with the help of
text elements where the logic of those is written in the print program and Forms were designed
to be driven from print program, hence are often termed as client dependent. Smart forms are
client independent. Bcoz it doesnu2019t use any text elements. It will be executed through a
function module. When a print program calls a Smart Form, the form itself takes over to
produce output, without any further direction from print program.

ALV

1. How Calculate TOTALS,SUBTOTALS in ALV Reporting?

data: wa_fieldcat type slis_fieldcat_alv,


it_fieldcat type slis_t_fieldcat_alv.

data: wa_sort type slis_sortinfo_alv,


it_sort type slis_t_sortinfo_alv.

wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.

wa_sort-fieldname = 'KUNNR'.
wa_sort-tabname = 'IT_FINAL'.
wa_sort-subtot = 'X'.
append wa_sort to it_sort.

II. data: wa_fieldcat type slis_fieldcat_alv,


it_fieldcat type slis_t_fieldcat_alv.
hi friend to calculate totals ,sub-totals we have to use
after declaring the fieldcat
for doing sum : wa_fieldcat-do_sum = 'X'.
fro caluculating subtotal : wa_sort-subtot = 'X'.

this have to be done when feildcatlog and suppliying the


sorting info.

I could make u to remind that this is the one of the


difference between a normal & alv report.

You might also like