Tuesday, February 16, 2010

• What The Differences Between ABAP and HR-ABAP

The ABAP HR is an integral part of ABAP. Generally in ABAP the following are done:

1) Table development
2) Date Processin
3) Reprt developing
4) BAPIs /RFC s
5) Data base update
6) Screens development/enhancement
7) Scripts and smart forms.
8) Function Building
9) Java connectors etc.

This is basically done through the PROGRAMMING in ABAP builder by using ABAP 4th generation languge. This may be related to any module of my SAP ERP 2004 like HR, FICO.SD,MM,CRM Etc.,
Now when it is said ABAP HR. It is the development of ABAP in the area of HR to meet the clients requirements according to the functional specifications .They may be in any area of HR like in the areas of time aspects ,pay aspects, OM aspects and Self Services like E-recruitment, ESS etc.


SAP Business Workflow and Application Scenarios

SAP Business Workflow is a solution which has been integrated fully in the R/3 System and which enables customer-specific business process flows to be coordinated and controlled on a cross-application and cross-workplace basis. SAP Business Workflow therefore enhances "ready-made" application software.

The SAP Business Workflow definition environment is available in order to represent business processes in a simple manner and to be able to respond to changing external conditions quickly during ongoing operation by flexibly adapting the business processes which have already been implemented.

A number of SAP applications support Workflow Management by SAP Business Workflow. In many situations you can therefore use workflow scenarios which have already been configured. These can either be implemented without any changes or they can be used for your business processes with minimal adjustments. These workflow scenarios reduce implementation time significantly and are optimally adjusted to the respective application functions.

The workflow scenarios are integrated in IDES (International Demonstration and Education System). It is possible to run the business processes of a model company in this fully configured system.

What is a workflow scenario?

The term "workflow scenario" describes the whole range of options which are available for supporting workflow functionality in an application. The workflow scenarios can be divided into three categories:

• Creation of events

Events are created to report status changes undergone by an application object and to allow a reaction to be made to these. You can respond to these events in a flexible and customer-specific way without the standard part of the application needing to be modified. You will generally use such events as triggering events for customer-specific customer tasks or workflow tasks.

The triggering of these events is often not activated in the standard version, but depends on the customizing settings.
You can find further information in the application scenario documentation.

• Provision of standard tasks

Standard tasks contain a task description and a connection to the application logic via business object methods. Before a standard task can be used productively, you must assign it to its possible agents.

The standard tasks provided by SAP are generally used as steps in a workflow template. They are available as "modules" which you can use for your own developments.

If a workflow scenario only involves one standard task, it can usually be regarded as a minimal solution for showing the connection between application functionality and SAP Business Workflow. For differentiated workflow management, this standard task should be replaced by a customer-specific workflow task.

You can find further information in the application scenario documentation.

• Preparation of workflow templates

Workflow templates contain complete process descriptions comprising several steps.
In the cases where workflow templates describe business processes which occur in exactly the same way in your company, or in the cases where changes to the workflow template are not advisable for technical reasons, the workflow templates supplied by SAP can be used productively without any changes needing to be made. It may however be necessary to make some customizing settings.

In any other case, you can use the workflow templates as the basis for your own developments. The existing process structures of the business application components, which are often represented in a transaction, are generally not replaced. SAP Business Workflow is located as an integration level "above" the standard business functions and uses the existing transactions, function modules, and reports.

• In the business background you find out which business processes are supported by workflow scenarios, which employees are involved, and what advantages and benefits can be derived from using the workflow system.

This information is sufficient if you are interested in an initial overview of the options available.

• A more detailed presentation of the processes is provided in the description of the technical background of the respective scenarios. Here you learn in detail what steps were carried out by SAP in order to represent the business process in the system.

You are familiarized with the object types which form the basis of the scenario and you find out which standard tasks are defined to describe the activities which need to be performed, which roles are resolved, and which events are used. The structure of the workflow template used and its interface and container are described in greater detail.

This information is particularly useful if you are planning to enhance and modify the scenario.
This section is not available or is very brief if no enhancements are planned or appropriate.

• To adapt the scenario to the specific features of your company, settings need to be made which are described in the section Preparation and Customizing.

The settings described need to be made specifically for the scenario and are generally additional to SAP Business Workflow customizing.

• The use of the scenario and the connection to application functionality are described in the last section of the respective chapter.

This documentation is not meant to replace the SAP Business Workflow manual.
For information on using and calling the individual components of SAP Business Workflow and to take advantage of the full functionality in your enhancements and own developments, refer to the SAP Business Workflow manual.

Neither this documentation nor any part of it may be copied or reproduced in any form or by any means or translated into another language, without the prior consent of SAP AG.

Basic Concepts

Area Menu SAP Business Workflow (Development)

All definition tools can be accessed from the area menu SAP Business Workflow (Development). You can reach this area menu from the R/3 initial screen via Tools ® Business Engineering ® Business Workflow ® Development.

Object Orientation in SAP Business Workflow

A workflow is generally used when business objects (business application objects), such as an invoice, material, or customer, are to be processed in the system over several steps and when this processing is to be followed actively until it has been completed. Options must therefore be available in the workflow system for

• naming objects,
• creating and processing objects (executing methods),
• evaluating attributes of objects (reading attributes) and
• responding to events (status changes of objects).

It is therefore appropriate that the interface between the workflow management system and the applications is based on object-oriented principles. Besides the business logic of the R/3 System, other applications on desktops or in other application systems (appropriately encapsulated) are therefore accessible to SAP Business Workflow.

Object Types and Objects

An object type refers to a generic object description which is created at definition time. This description includes the definition of the key fields required to uniquely identify an object of this type and the specification of the methods, attributes, and events of this object type..

An object is the specific instance of an object type which has been assigned values.

Modifying Object Types - Inheritance and Delegation

It is necessary to extend an object type rather than creating a new object type whenever you want to create additional components for an object type which are not provided in the standard version and at the same time need to ensure that productive scenarios with the original SAP object type remain operational.

Since you may not change the object types provided by SAP, create a new object type as the sub-type of the original object type which will then inherit its components and their implementation. Then modify this object type and make it the delegation type of the super type. All calls to the "old" delegating object type (super type) are redirected to the delegation type (sub-type) so that its definition is read and executed (delegation).

Business Object Repository

A directory of all object types defined in the SAP System is managed in the business object repository. These object types are each assigned to a business application component.

In addition to the business object types, the business object repository also contains structural object types, such as company code, plant, or sales organization, and technical object types, such as text, note, work item, or archived document. Customers can define their own object types.

Object types and their elements can be found quickly by accessing this business object repository with the appropriate search functions (either via the component hierarchy or with a generic search using parts of a name).

A method refers to an operation which can be performed on an object.
A method generally refers to ABAP/4 functionality which is already available (function module, transaction, dialog module, ...) and is called via an interface determined mainly by the method name and method parameters. The actual implementation of the method therefore remains abstract. It is not visible externally and does not need to be known to the calling program of the method.

Synchronous and Asynchronous Methods

Methods can be subdivided as follows depending on their response characteristics:

• synchronous methods

Synchronous object methods assume process control for the duration of their execution and report back to the calling program once they have been executed.

• asynchronous methods

Asynchronous methods do not report back to the calling program directly after their execution. The response is made via events which are used to report the processing results of the methods.

Synchronous and asynchronous methods can be distinguished according to the way in which they are used in single-step tasks: A single-step task which refers to an asynchronous method must be completed by an event.

Method Parameters

Parameters are used to exchange information between the calling program of a method and the method.

Parameters of a method are values which are either passed to the method at runtime (import parameters) or are returned from the method (export parameters). When the parameters are defined, the interface of the method call is also defined. A method need not necessarily have parameters; many methods can be used without parameters.

Method Result

The result of a method is different to the export parameters. Possible values for the result can be fixed or contained in a check table. They are therefore known in a workflow definition and can be taken into account during process modeling.

The various follow-up steps can be modeled in a workflow definition according to the results. A method can only ever have one result, although there is no limit to the number of export parameters.
A method need not necessarily have a result.

Method Exceptions

In the same way, exceptions (cancellation by user, object to be processed does not exist, etc.) of a method can also be defined and taken into account in a workflow definition.


An attribute describes a property or characteristic of an object.
Attributes can be used to formulate conditions in the workflow definition. The object attributes are read or determined from the database at runtime and are used to control the workflow.

An object attribute can return

• the value of a field in the ABAP/4 Dictionary (database field attribute)
• an object reference to an object which is defined in the business object repository. Object attributes which return an object reference therefore allow the attributes of this referenced object to be accessed.
• a value which is not determined until database contents are calculated and/or evaluated at runtime (virtual attribute).


An event publishes the occurrence of a status change of an object ("text deleted", "invoice posted", "material created", ...) system-wide.
Events should always be seen in connection with the object they are "reporting" on. The events belonging to an object are therefore specified in the object type definition.

Events are published without the application, the event creator, knowing whether a receiver is interested in this event and whether it will respond. Potential receivers of an event are listed in the event receiver linkage table, where receivers can make and remove their entries as required. This allows the events created to be responded to flexibly.

Events and SAP Business Workflow

Events are used in the SAP Business Workflow environment,

• to start tasks (multistep tasks and single-step tasks). The events are therefore defined as the triggering events of the respective tasks.
• to complete single-step tasks which refer to an asynchronous object method. The events are therefore defined as the terminating events of the respective single-step tasks.

Event Parameters

Events are linked to runtime-dependent data (event parameters) which is available to the event receiver and can be used for event-driven control and communication mechanisms.

Event Generation

Event generation is not part of the object type definition in the narrow sense. However, for customer-specific event generation to occur, the relevant events must be added to the object type definition.

If the events which are created in the standard version when particular conditions are met are not sufficient, you have the option of ensuring that additional events are generated without carrying out programming work. It is therefore possible to generate events where this is not supported by SAP in the standard version. There are basically four ways in which events can be generated:

• Generate events by calling a function module• Generate events for status changes
• Generate events when change documents are written
• Generate events via Message Control

While event generation as the result of calling the provided function module requires programming knowledge and experience, the last three options can be used without changing the program code of an application. These procedures take advantage of the fact that data consistency and security is ensured by the application when a change document is written, status management activated, or a message sent.

The generation of events entered for the individual object types in the business object repository is ensured by SAP.

Event Generation Log

All events generated correctly are logged in the event log irrespective of whether receivers are available. The event log is only written if the logging has been switched on. To do this, select Utilities ® Event log ® On/off from the area menu SAP Business Workflow (Development).

The event log created can be displayed from the area menu SAP Business Workflow (Development) via Utilities ® Event log ®

See also:
Working with Objects

Integration of Organizational Management

The company-specific organizational plan describes the organizational assignment of an employee. This allows the responsibility of employees for performing individual business activities to be defined in the form of activity profiles.

The organizational plan is part of the PD component "Organization and Planning". It is client-dependent. An organizational plan which was created for personnel management purposes (or is still to be created) can be used in SAP Business Workflow without any changes provided the workflow functionality and the personnel management application use the same client.

In each client you will however generally (only) represent the sub-areas and organizational structures of your company in which you also coordinate business processes using SAP Business Workflow.

This assignment is used to find the "correct" agents and allows tasks to be assigned actively by the workflow management system. Transparency of the business processes and responsibilities is achieved. Changes can be made to the organizational structure of the company without changes needing to be made directly to the SAP Business Workflow definitions or programming performed in an application.

To create an individual activity profile for a user in a modular way and without redundancy, it is necessary to describe the organizational assignment of this user in the company-specific organizational plan.

Organizational Structure and Organizational Units

An organizational plan is described by the organizational units available in the company. These organizational units are generally linked together in a hierarchical reporting structure, but can also be created in isolation.

Organizational units are organizational sub-areas in a company (departments, project teams, groups) which have been created for business purposes.

Staff Assignments

Staff assignments are maintained for each organizational unit. The appropriate positions are assigned to the organizational unit. A position is derived from a describing job and is generally occupied by a user.


Jobs are areas of activity within a company which are described by tasks or business application components and are often created across organizational units.


Positions can be regarded as the individual employee assignments within a company. A position is described by a job and always belongs to exactly one organizational unit.

Chief Position

One position can also be designated as the chief position of the organizational unit. This allows you to structure the positions within an organizational unit. This information is sufficient to address a work item to an employee's superior.

User/Person (Employee)

A position is held by an employee (person from HR master data management) or by a system user (user master), a position can also remain vacant.

For an agent to be determined by the workflow system, it must be possible to make an assignment between positions and system users. If a position is assigned to an employee, this employee must also be linked to his system user in the HR master data (infotype 105 Communication). Do not assign an employee and a person to a position

Tuesday, February 9, 2010

misl(compatibility Mode)

Real Time questions ..
1. Which client number you use for the current
2. You are running a report. It is taking long time for
execution. What steps will you do to reduce the
execution time.
3. After running a BDC program in background, next
day morning when you see the results, few records
are not updated(error records). What will you do
4. You are given functional specs for a BDC program
and you need to decide whether to write a method
call transaction or a session. How u will decide?
5. What is the difference between report and script?
6. what are user-exits?
7. what is badi?
8. what is the difference between user-exit &
9. how do you get functional specs when you are
assigned some object? (specs through email..??)
10. How do you write technical specs?
11. How do you write UTP?(unit test plan)

1. difference bet'n simple and interactive reports?
2. what is the use of start-of-selection event?
3. if you write a write statement after end-of-selection, will that be triggered?
4. how to create a button in selection screen?
5. how to add a gui status in a selection screen?
6. can you call a bdc program from a report? how?
7. can you call a transaction from a report? how?
8. what are ALV reports? how they are different from normal reports?
9. what is the use of SLIS type pool in alv reports?
10. in an interactive report, after going to 5th list, can you come back to 2nd list? how?
11. What are the steps you follow to improve the performance of a report?

Sap Scripts

Important standard Transaction codes:
SE71 Form painter
SE72 Style maintenance
SE73 SapScript font maintenance
SE78 SapScript Graphics Management
SO10 Create standard text module

Q) What are steps you follow to improve the performance of a report?
Ans: 1) USe select fields statements (not select *)
2) Use views rather than tables
3) Don't use nested Select.
How to create a BAPI:

General questions

General questions:-

Q1)+ What are your Roles & Responsibilities in your project?
Ans:- a) Preparing the technical specifications according to the functional
b) Developing the code according to the client requirement.
c) Unit testing and performance tuning of the program.

Q2)+ How will you get the work?
Ans:- My team lead allots the work through mail.

Q3)+ What are the positions in your company?
Ans:- Associate Software Engineer
 Software Engineer
 Senior Software Engineer
 Team lead
 Project manager
 Delivery lead

Q4)+ What are the types of projects?
Ans:- 2 types of projects.
1) End-to-End Implementation
2) Support project

Q5)+ Which tool are you using for getting tickets(Change request)?
Ans:- By using Remedy tool we get the tickets.

Q6)+ Transaction codes? +
Ans:- ABAP Dictionary - SE11 (Data dictionary)
ABAP Program Editor - SE38
Transaction Recorder - SHDB (BDC)
Form Painter - SE71 (SAP Scripts)
Function Builder - SE37 (Function Modules)
Screen painter - SE51 (Module pool programming)
Menu painter - SE41

To find out the Package - SE93
To find out the Customer Exit - SMOD
To Implement the Customer exit - CMOD
To find out the BADI - SE80
To Implement the BADI - SE19

Real time questions:-

Q1)+ What is the landscape of your company?
Ans:- Our company is having 3 servers named as
1) Development server: CCD (only for Developers)
2) Quality server: CCQ (for testing the Quality)
3) Production server: CCP (For End users)

Development server has 2 clients: 100 and 500.
Quality server has 1 client: 100.
Production server has 1 client: 100.

Q2)+ How will you transport your transport request?
Ans:- By using transaction code SE09 or SE10, we transport our
requests from Development server to Quality server.

Q3)+ How will you interact with your functional consultants?
Ans:- Depending on the requirement, Sometimes I use to call them directly
And sometimes in presence of my TL.

What is your reliant experience? Experience:
What is your Current salary? Current salary:
How much you are expecting? Expected salary:
How many days? Notice period:

Tables & Fields:-


7) KNA1 8) KNB1 9) KNBK

10) BSAD 11) BSAK 12) BSID
13) BSIK 14) BKPF 15) BSEG



Q1)+ How many types of interfaces?
Ans:- We have 2 types of Interfaces. One is, Outbound Interface
and 2nd type is Inbound interface.
a)Outbound interface: is used to extract the data from SAP.
b)Inbound interface: is used to upload the data into SAP.

Q2)+ How many types of tools we have for uploading data?
Ans:- We have 4 tools for uploading data.
a)Legacy system migration workbench (LSMW):
For uploading mass data from NonSAP-SAP & SAP-SAP.
b)Batch Data Communication (BDC):
For uploading mass data from NonSAP-SAP & SAP-SAP
Through screens.

c)Business Application Programming Interface (BAPI):
For uploading the data & for downloading the data
d)Application Linking & Enabling(ALE/IDocs):
For uploading the data & for downloading the data.

Q3)+ What is the difference between RFC and Function module?
Ans:- Function module RFC
1) In function modules, all types 1) In RFC, all types of parameters
Of parameters are passed by Are passed by value.
2) We can access only from SAP 2) We can access from Non SAP
System. Also.

Q4)+What is the difference between RFC(Remote Function Call) & BAPI?
Ans:- If you include a RFC in business object repository through transaction
Code ‘SWO1’, then that RFC will become a BAPI.

Q5) What are all the BAPIs you have worked/created recently?
Ans:- (depends on resume.)

Q6)+ What is the difference between BDC & BAPI?
1) In BDC, Data will be uploaded 1) In BAPI, Data will be uploaded
through screens. through Function modules.
2) Through BDC,Uploading the 2) Through BAPI, uploading And
data is only possible. Downloading the data both are


Smartforms FAQs:-

Q1)+ How to add watermark to Smartform output?
Ans:-  Go to properties of ‘PAGE’
 Click on ‘Background Picture’ tab
 Add the Graphic Image Name here.
This is the way to add watermark to Smartform output.

Q2) Where can I define the paragraph and character format for the Smartforms?
Ans:- The paragraph and character format for the Smartforms can be defined in the
Transaction ‘SMARTSTYLES’.

Q3) What is the difference between Template and Table in Smartforms?
Ans:- * Templates are Static because the number of columns and lines of the
Template Are determined before the actual output. So, the Template
contains fixed number Of rows and columns.
* Whereas, Tables are Dynamic, because the Table size depends on the
amount of data selected at runtime. So, the Table can have Variable
number of rows. This is the difference between Template and Table.

Q4) Where can I define my own global types for the Smartform?
Ans:- * The ‘Global Types’ can be defined in
Global Settings => Global Definitions => Types
The ‘Types’ defined here will be global through the entire Smartform.
* Also The ‘Form Routines’ can be defined in
Global Settings => Global Definitions => Form Routines.

Q5) Where can I provide the Input parameters to the Smartform?
Ans:- The Input parameters for the Smartform can be defined in
Global Settings => Form Interface.
The ‘Associated Type’ must be defined in the ABAP Dictionary.

Q6) How can I provide background shading to the table?
Ans:- In the Table Painter, you can specify the ‘Color’ and ‘Shading’
for the table lines.

Q7) I have created a table node for display. Where can I check the
condition which must satisfy to display the table?
Ans:- The conditions can be defined in the ‘Conditions’ tab. In Smartforms,
all the nodes have a ‘Conditions’ tab where you can specify the condition
to be satisfied to access the node.
Q8) How can I define Page Protect in Smartforms?
Ans:- To define Page Protect for a node go to the ‘Output options’ and check the ‘Page Protection’ checkbox.
Q9) What are the differences between SAP scripts and Smartforms?
Ans:- Scripts Smartforms
1) SAP scripts are Client dependent. 1) Smartforms are Client Independent.
2) Multiple page formats are not 2) Multiple page formats are possible
possible in Scripts. in Smartforms.
3) Pages can not be printed with 3) Pages can be printed with background
background pictures. Pictures.
4) Text can not be printed with colors. 4) Text can be printed with colors.
5) In scripts, there is no tool for 5) In Smartforms, Table painter is
printing Data in tabular format. available for printing data in tabular
6) Paragraph and Character formats 6) Paragraph and Character formats
are not reusable. are reusable via SMARTSTYLES.

Q10) How can I insert symbols in Smartforms?
Ans:-  Select the Text node.
 Change Editor (Click the button above Check near the Editor)
 Go to menu Include => Characters => SAP Symbols
Choose the SAP symbol that you want to insert.

Q11) I have a smartform which works fine in DEV. After trasnsporting it to PROD,
there is no Function module generated for this smartform. As a result my
program dumps in PROD?
Ans:- The Smartform that is created in the Development may not have the same name
in the Production server. So it is always advised to use the Function Module
SSF_FUNCTION_MODULE_NAME to get the ‘Function Module name’
by passing the ‘Smartform name’.

DATA: fm_name TYPE rs38l_fnam.

formname = 'ZSMARTFORM'
fm_name = fm_name
no_form = 1
no_function_module = 2
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

Q12) How can I make the Smartforms to choose a printer name by default?
Ans:- In the CALL FUNCTION of the Smartform Function Module, set the ‘Output options’ parameter to set the printer name. The Output options is of the type SSFCOMPOP which contains the field TDDEST. Set the TDDEST field to your default printer name.
Q13) How can I make the Smartforms to display a print preview by default without displaying the popup for print parameters?
Ans:- In the SSF_OPEN function module,
Set the OUTPUT OPTIONS parameter TDDEST to your printer name.
Set the CONTROL PARAMETERS as shown below,

control-preview = 'X'.
control-no_open = 'X'.
control-no_close = 'X'.
control-no_dialog = 'X'.
control-device = 'PRINTER'.
control_parameters-no_dialog = 'X'.
control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'.

output_options = output_options
control_parameters = control
user_settings = ' '
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

Q14) How can I display the total number of pages in Smartforms?
Ans:- Use SFSY-FORMPAGES to display the total number of pages in the Smartforms.
&SFSY-PAGE& Current page number
&SFSY-FORMPAGE& Total number of pages in the currently formatted layout set
&SFSY-JOBPAGE& Total number of pages in the currently formatted print request
&SFSY-COPYCOUNT& Original-1,1st copy-2
Q15) I'm using the variable SFSY-FORMPAGES, I got a star "*" instead of the total number of pages. Why?
Ans:-There may not be enough space in the window to display the variable, either increase the window dimensions or condense the spaces using &SFSY-FORMPAGES(C)&

Q16)What are the various text formatting options in Smartforms?
Ans:- &symbol(Z)& - Omit Leading Zeros
&symbol(S)& - Omit Leading Sign
&symbol(<)& - Display Leading Sign to the Left
&symbol(>)& - Display Leading Sign to the Right
&symbol(C)& - Compress Spaces
&symbol(.N)& - Display upto N decimal places
&symbol(T)& - Omit thousands separator
&symbol(R)& - Right justified
&symbol(I)& - Suppress output of the initial value

Q17)I have defined my own Program Lines, where I have used a global variable G_TEXT. I got an error G_TEXT is not defined. Why?
Ans:- Whenever using the global variables in the Program Lines, enter the variable name in Input Parameters if you are going to use(read) the variable. If you are going to both read/write the variable value enter the same in Output Parameters.


Enhancements FAQs:-

Q1)+ What is enhancement?
Ans:- SAP provided some loopholes to enhance the standard functionality.
These are called as enhancements. Through Enhancements, we can
add our own functionality to SAP’s standard business applications
without modifying the original application. We can create
enhancements for specific programs, screens and menus.

Q2)+ How can you implement enhancements?
What are the enhancement types?
Ans:- Depending on their enhancement approach, enhancements are divided
into 2 types. One is Customer exit and another type is BADIs. So, by
using customer exits and BADIs, we can implement enhancements.

Q3)+ What is the difference between customer exits & BADIs?
Ans:- Customer exits BADIs
1) In customer exits, we do 1) In BADIs, we do enhancements
enhancements in procedural in Object Oriented approach,
Approach, that is, By using that is by using Classes &
function modules. Methods.
2) Through customer exits, we can 2) Through BADIs, multiple
Implement enhancement only functionalities are possible.
One time.

Q4)+ How many types of user exits?
Ans:- Totally 3 types of user exits.
1)Menu exit: Menu exits are used to enhance the menu options. By
Using menu exits, we can add items to the pulldown
Menus in standard SAP applications.

2)Screen exit: Screen exits are used to enhance the screen. By using
Screen exits, we can add fields to screens in R/3 application.

3)Function Module exit: Function module exits add functionality to
R/3 applications. They play a key role in
both menu and screen exits. When you
add a new menu item to a standard pulldown
menu, you have to use a function module
exit to define the actions that should take
place once your menu is activated.

Q5)+ What is the disadvantage of menu exit?
Ans:- The disadvantage of menu exit is, we can not enhance menu options
Individually. For example, if we want to change a menu option from
‘Disable mode’ to ‘Enable mode’, irrespective of our requirement, all
the menu options are enabled. That is the disadvantage of menu Exit.

Q6)+ How to find out the user exit?
Ans:-  Execute Transaction code SE93 to find out the package
 Open the transaction in Display mode
 Double Click on ‘program’ to open it
 Go to  Attributes & find out the package
 execute transaction code ‘SMOD’ to find out the
enhancement from the already identified package
 press F4, provide package name & press ‘Enter’.
Then we can get the available enhancements.

Q7)+ How to implement the user exit?
Ans:-  execute transaction code ‘CMOD’
 provide ‘project name’ & click on ‘Create’.
 provide ‘Short text’ & Save it.
 Click on ‘Enhancement assignments’
 Here we can implement user exits.

Q8)+ How to find out the BADIs?
Ans:-  Execute Transaction code SE93 to find out the package
 Open the transaction in Display mode
 Double Click on ‘program’ to open it
 Go to  Attributes & find out the package
 execute transaction code ‘SE80’ to find out the
BADIs from the already identified package
 provide package name & Click on ‘Display’
Here we can see the BADIs list.

Q9)+ How to implement BADIs?
Ans:- We can implement BADIs by using Transaction code ‘SE19’.
 Execute Transaction code SE19
 Provide ‘Implementation Name’ & Click on ‘Create’.
 Provide the ‘name of the add-in’.
 Provide ‘Short text’ & Click on ‘Interface’ tab.
 Notice the list of methods & Find out the right method
to implement. (by reading the description and documentation
of each method.)

What type of user exits have you written?



Q1)+ What are the function modules used in ALV?
These are the main function modules used in ALV.

Q2)+ What is the difference between classical reports & ALV reports?
Ans:- Classical ALV
1) In classical reports, we can not 1) In ALV reports, we can
display logos. display logos.
2) System functionalities like 2) Whereas in ALV reports,
Totals, Subtotals, Filtering, all system functionalities
sorting ascending, descending are available.
all these are not available in
normal reports.
3) If u have too many fields to be 3) To avoid such instances we go
displayed on the screen then for ALV report where we can
normal report can show only display too many fields in a
255 chars and the next chars will single row.
be shown in the next line.

Q3)+ What are the events used in ALV report?
These are the main events that are used in an ALV reports.

Q4)+ How to provide the menu button functionality?
Ans:- By using ‘SET PF STATUS’, we can provide menu button (our own)

Q5)+ Where will you create functional keys?
Ans:- By using “Menu Painter” we can create functional keys.
The Transaction code of the menu painter is SE41.

Q6)+ How will you include a logo in ALV?
Ans:- By using a function module REUSE_ALV_COMMENTARY_WRITE,
we can include a logo in ALV. And the Transaction code for uploading the
logo is ‘OAER’.

Q7)+ How will you provide edit functionality in ALV?
Ans:- To provide edit functionality in ALV, we have to set the
parameter is_layout-edit = ‘x’, in the function module

Q8)+ How to display totals and subtotals in ALV?
Ans:- In field catalog, we have an option called DO_SUM. By using this
option, we can display totals and subtotals in ALV.



Q1)+ What is the structure used in BDC to Upload the data?
Ans:- BDCDATA is the structure used in BDC to Upload the data.

Q2)+ What are the update modes available in Call Transaction method?
Ans:- 2 update modes.
1) Asynchronous update :
*In this mode, the called transaction does not wait for any updates
That It produces to be completed.
*Execution is faster when compared to synchronous update.
*It is not recommended for processing any larger amount of
Data why because error analysis and recovery is less convenient.
2) Synchronous update :
*In this mode, the called transaction waits for any updates that
It produces to be completed.
*Execution is slower when compared to Asynchronous update.
*The called transaction is able to return any update error
Messages. So, error analysis and recovery is much easier.

Q3)+ What are the display modes available in Call Transaction method?
Ans:- There are 3 display modes in Call Transaction method.
A - display All screens
All screens and the data that goes in them appear when we
Run the program.
N - No screens (Background processing)
All screens are processed invisibly, regardless of whether
there are errors or not. Control returns to the program as
soon as transaction processing is finished.
E - display Error screens only
The transaction goes into display mode as soon as an error
In one of the screens is detected. We can then correct the

Q4)+ What is the default updation mode in Call Transaction method?
Ans:- Asynchronus updation is the default updation mode in call transaction
method. In Asynchronus updation, if an error occurs while updating The
database, It skips the error record and continues the updating process.

Q5)+ What is the default updation mode in Session method?
Ans:- Synchronus updation is the default updation mode in Session
Method. In Synchronus updation, if an error occurs while updating
The database, the updating process will be stopped at that point.

Q6)+ What are the function modules used in Session method?
Ans:- (explanation - BDC 1pg of session method)
3 function modules are used in session method.

Q7)+ What is the difference between Call Transaction method & Session
Ans:- Call Transaction Session
1) In Call transaction method, data 1) Whereas in Session method,
Updation will take place at the a session will be created and
Moment of execution of the we can run that session at the
program. background At any time.
2) In Call transaction, only one 2) In Session method, multiple
Transaction can be processed Transactions can be processed
Always. Through the same session.
3) Error handling is explicit 3) Error handling is implicit
Functionality in Call Transaction functionality in Session
Method. Method.
4) Execution is Faster bcz it is 4) Execution is Slower bcz it is
Asynchronous Update. Synchronous Update.
5) Call transaction method 5) Whereas Session method
Returns the SY-SUBRC. Doesn’t return the SY-SUBRC.

Q8)+ How to handle the errors in Call Transaction method?
Ans:- We can handle the errors in Call Transaction method, by using a function

Q9)+ What is the complete syntax of Call Transaction?
Ans:- CALL TRANSACTION “Transaction code C
USING “Itab of structure BDCDATA U
MODE “display mode M
“update mode U

SAP script

Q1)+ How can I get the Landscape format in SAP script?
Ans:- In the form,
à Go to ‘Basic settings’,
à here you can find the ‘Landscape format’ option, Click on it,
à and at the bottom, you can find the ‘page’ option,
à Enter the page name for which you want to assign landscape format.

Q2)+ How can I change the page size of the layout?
Ans:- In the form,
à Go to ‘Basic settings’,
à Here you can configure the page settings and their orientation.

Q3)+ How can I set the header and footer in the MAIN window?
Ans:- * By using the TOP…ENDTOP and BOTTOM…ENDBOTTOM commands,
We can set the header and footer texts in the MAIN window.
* These texts will be displayed on the starting and ending of every new page
in the output.
* To disable these texts, enclose empty commands between these commands.
* Ex: /: TOP

Q4)+ What are the conditional statements used in SAP scripts?
These are the conditional statements used in SAP scripts.

Q5)+ Can you create a SAP script without a MAIN window?
Ans:- We can not create a SAP script without a MAIN window.

Q6) How can I prevent page break in the message that is to be displayed?
Ans:- * By using PROTECT…ENDPROTECT control commands, we can
prevent Page break in the message that is to be displayed.
* Enclose the text that you want to prevent page break in between
* SAP script will ensure that each line of this text is printed together
on the same page.
* If SAP script finds that the text can not be printed on that page completely,
Then an Implicit page break occurs and the text is printed on the next page.
* Syn: /: PROTECT
*Text within
*The same page

Q7) How to convert a SAP script to Smartform?
Ans:- Execute SMARTFORMS, Go to Utilities => Migrate SAPscript Form.
This is the way to convert a SAP script to Smartform.
Q8) How can I format the date being displayed in the SAP script?
Ans:- * By using the ‘SET DATE MASK’ control command, we can
format the date fields in an SAP script.
* Syn ex: /: SET DATE MASK = ‘MMMM DD YY’.
* Executing this command causes all subsequent date fields to be
printed with the specified formatting.
* To return to the default formatting, use the ‘SET DATE MASK’
command with an empty string.
Syn: /: SET DATE MASK = ‘ ’.

Q9) How can I format the time fields in the SAP script?
Ans:- * By using the ‘SET TIME MASK’ control command, we can
format the time fields in an SAP script.
* Syn ex: /: SET TIME MASK = ‘HH hrs MM min SS sec’.
* Here HH refers Hours, MM refers Minutes and SS refers Seconds.
* Executing this command causes all subsequent time fields to be
printed with the specified formatting.
* To return to the default formatting, use the ‘SET TIME MASK’
command with an empty string.
Syn: /: SET TIME MASK = ‘ ’.

Q10) How can I debug my SAP script?
Ans:- We can debug SAP scripts in 2 ways.
* 1st way: à Execute Transaction code ‘SE71’.
à Enter the ‘Form name’.
à Click on Utilities => Activate Debugger to enable debugging.
* 2nd way: By using the standard program RSTXDBUG.
These are the 2 ways to debug an SAP script.

Q11) How to upload logos in SAP scripts?
Ans:- We can upload the logos in SAP scripts, by using the transaction code ‘SE78’
Or by using the program ‘RSTXLDMC’.

Q12) I have created an SAP script in language DE. Now I need to translate it to EN.
How can I do this?
Ans:- * Open your SAP script through Transaction code ‘SE71’.
* In the ‘Header screen’, in the ‘Language Attributes’ option,
choose ‘Translate to…’ option to translate to other languages.
* If you want to translate any text modules or texts within the SAP
script, then it can be done by using the transaction code ‘SE63’.

Q13) How can I word wrap the text being displayed in SAP script?
Ans:- Use the function module RKD_WORD_WRAP to wrap the text
which is being displayed in SAP script.

Q14) How do I set tabs between the fields in display?
Ans:- In the form,
à Click on ‘Paragraph Format’ tab,
à create a new paragraph format, and
àIn the ‘Tabs’ tab,
àenter the ‘Tab position’ and the ‘Alignment’ for the fields.

Q15) Where can you find all the SAP script form names and print program names?
Ans:- We can get all the SAP script form names and print program names
in the table TNAPR.

Q16) How can I copy SAP scripts from one client to another?
Ans:- à In the transaction ‘SE71’, enter the form name,
à Click on Utilities => Copy from client to copy SAP
scripts from one client to another.
Or use the program ‘RSTXSCRP’ to Import/export SAP scripts.

Q17) How can I create Standard texts for SAP scripts?
Ans:- * By using the transaction ‘SO10’, we can create standard texts. Then
to insert these standard texts in the Sap scripts, choose the menu
Insert => Text => Standard, and choose the desired standard text.
* Alternatively, you can display standard texts in your SAP scripts
using the command:
* Here ZSTEXT refers to the standard text name.

Q18) How can I display bar codes in SAP scripts?
Ans:- à Create a ‘Character format’ in the SAP script.
à In the bottom, you can get the ‘Bar code’ option,
Here choose the Bar code for the Character format.
à And finally, to display Bar codes, in the command enter:
* Where C1 is the character format created and ‘VBELN’
is the variable for which the bar code is to be created.

Q19) How to add extra functionality to a standard print program
without touching the print program?
Ans:- By using Subroutines.

Q20) How many MAIN windows are allowed for SAP script?
Ans:- * SAP script allows only one MAIN window.
* Each page can consist up to 99 windows.
* Each MAIN window is assigned a consecutive identifying number(0…98).
* This is mainly used for Label printing and Address printing.


Q1)+ How to get the checkboxes side by side/in a single line?
How to place the selection screen elements in a single line?
Ans:- By default, each selection screen element is placed in a new line, and
More than one element can be placed in the same line also. That is, by
placing them in between the ‘SELECTION SCREEN BEGIN OF LINE’,

*provide the selection screen elements

The elements within the same line loose the selection text by default. And
which can be provided through “SELECTION-SCREEN COMMENT”.

*provide the selection screen elements

Q2)+ How to create the text for check boxes?
How to provide user-friendly descriptions for selection screen elements?
Ans:- To provide user-friendly descriptions for selection screen elements,
Path: Go to àText elements à Selection texts
Enter the text, save it & activate it.

Q3)+ How to disable a field on selection screen?
Ans:- We can disable a field on selection screen, by using “AT SELECTION
SCREEN OUTPUT” event. In this event, loop the screen and in the loop,
We have to keep SCREEN-INPUT = ‘0’ for that particular field.

Q4)+ How to validate the entered values of the selection-screen?
Ans:- By using the event “AT SELECTION SCREEN”, we can validate
the entered values of the selection-screen. This event triggers before
leaving the selection-screen and this event is not only used to validate
the input of the selection-screen but also used to display user friendly
messages on the selection-screen itself.

The input is valid when there is at least one record found in
The master data. If a record found, then SY-SUBRC value becomes
‘0’, if recode not found, then its value becomes <> ‘0’. In this way,
we can validate the entered values of the selection-screen.

Q5)+ What are the events in reports?

Q6)+ What are the different techniques used in “AT LINE SELECTION”?
Ans:- 1) SY-LISEL

Q7)+ How many secondary lists can we create in reports?
Ans:- 20 secondary lists.

Q8)+ How many types of messages we have in reports?
Ans:- 1) Error message (E)
2) Warning message (W)
3) Information message (I)
4) Abort message (X)
5) Termination message (A)
6) Status message (s)

Q9)+ In how many ways, can we display messages?
Ans:- 2 ways.
1) MESSAGE E001(message class).
2) MESSAGE ‘message text’ type ‘E’.

Q10)+How to create message class?
Ans:- We can create message class, by using transaction code SE91.

Q11)+How to validate the group of fields?
Ans:- We can validate the group of fields by using ‘chain’ and ‘endchain’.
That is, If the validation has to be done for more than one field, then, in
That situation, those fields are placed between ‘chain’ and ‘endchain’.
Q12) What are the control break events?
Ans:- 1) AT FIRST: to display the starting text
2) AT LAST: to display the ending text
3) AT NEW: to display the starting text of the subgroup
4) AT END: to display the ending text of the subgroup

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)


Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials