You are on page 1of 57

SAP R/3 ARCHITECHTURE

Presentation server: This layer has SAP GUI which is used to connect SAP.
This layer is accessed by the user to make requests to
other two layers

Application server: This layer has the kernel of the SAP System all the
application logic resides in this layer. The request from
the presentation layer comes to application layer and if
needed redirect it to the database layer

Database server: This serves as data store consisting of tables.







INTERVIEW QUESTIONS:
1. Explain client server architecture with example
2. What are the differences between 2-tier and 3-tier architecture and give
example of both
3. What are the advantages of 3-tier over 2-tier architecture
4. What is the meaning of real-time with example
5. What are the other products from sap AG





Types of Work
Processes:

Role of work processes
D Dialog Work process

Deals with the active user requests and executes
dialog steps

V

Update Work
Process

Executes database update requests.
B

Background Work
process

Processes programs that can be executed without user
interaction (background jobs).
E

Enqueue Work
process

Administers a lock table in the shared memory area
S

Spool Work process

Passes sequential datasets to a printer
M

Message work
process

Used for load balancing in a scenario where there are
more than one application servers
G

Gateway work
process

Used whenever there is used to establish a connection
between SAP and NON-SAP systems

DATA DICTIONARY




DATA FIELD FEATURES:


DOMAIN

Gives technical description (data type & length) of
the field. The value range can be limited by
specifying fixed values.

Example: integer, 10


DATA ELEMENT

Gives the label or English name of the field. It
contains primarily the field help (F1 documentation)
and the field labels in the screen.

Example: Customer name


NOTE: Data element and Domain are Meta data. One can share Data elements
and Domains across fields. There is also possible to create a field without
data element but the domain is mandatory and is not recommended



TABLES:


It consists of columns (fields) and rows (entries). It has a unique
name and attributes, such as delivery class and maintenance
authorization. A field has a unique name and attributes. Every table
must have a unique primary key which identifies a unique record of
the table.


COMPOSITE PRIMARY KEY is Combination of two or more primary
key fields. All the key fields are considered when the record is retrieved


You must specify a reference table for fields containing a currency
(data type CURR) or quantity (data type QUAN). It must contain a field
(reference field) with the format for currency keys (data type CUKY) or
the format for units (data type UNIT). The field is only assigned to the
reference field at program runtime.


TABLE MAINTENANCE GENERATOR (SE54) is a utility which is used to
maintain mass data in the tables. Referential integrity is checked in Table
maintenance generator but not in single entry. It is always in the current
and active version of the table so whenever you make changes to the table
one has to delete and recreate the table maintenance generator


TECHNICAL SETTINGS OF TABLES:


1. You must maintain the technical settings when you define a
transparent table in the ABAP Dictionary.
2. The technical settings are used to individually optimize the storage
requirements and accessing behavior of database tables.
3. The technical settings can be used to define how the table should be
handled when it is created on the database, whether the table
should be buffered and whether changes to entries should be
logged.
4. The table is automatically created on the database when it is
activated in the ABAP Dictionary.
5. The storage area to be selected (tablespace) and space allocation
settings is determined from the settings for the data class and size
category.
6. The settings for buffering define whether and how the table should
be buffered.
You can define whether changes to the table entries should be
logged.



FOREIN KEY RELATIONSHIP:


1. One can create foreign key if the two fields of different tables have
the same DOMAIN but field names or data elements can be
different. Referential integrity in SAP is covered under the foreign
key relationship
2. CHECK TABLE is the table that has check field containing values
that is checked by foreign key of FOREIGN KEY TABLE.
3. Check table can also be created on non-primary key field.
a. ADVANTAGES OF CHECK TABLE:
(1)Ensures the data integrity
(2)Provides F4 or INPUT HELP

E.g. ZDEP-depid CHECK TABLE
ZEMP-empid FOREIGN KEY TABLE



VIEWS: Data for an application object is often distributed on several
database tables. Database systems therefore provide you with a way of
defining application-specific views on data in several tables.

Types of views
1
DATABASE VIEWS


These can be created on more than one
table and preferably these tables should
be linked using check table.
One can retrieve data from database
views using select statement

2
PROJECTION VIEWS:


Exactly same as database view except
that it can be created on only one table

3
MAINTENANCE VIEWS


These can be created on one or more
tables but one cannot retrieve data using
select statement


4 HELP VIEWS
These can be created to be used in the
search helps




SEARCH HELP


It is a mechanism used to search data within SAP
Search helps can be assigned at the field level, at
data element level or at the screen level
Match codes < 4.0 < Search helps


1

ELEMENTARY
SEARCH HELPS:



A) Selection method: This can be a database
table or help view

B) Dialog behavior: This determines the way in
which data should be exported back to the screen

C) Parameter Interface: Import parameters form
the input search help where as export parameters
form the output of the search help

D) Search help exit: these are used to enhance
the functionality of SAP standard search helps.
Search help exits are available in the form of
function modules


2

COLLECTIVE
SEACH HELPS:

It is a container of multiple elementary
search helps.
After the creation of search help, it should
be assigned to the corresponding table field





LOCK OBJECTS:


The R/3 system synchronizes simultaneous access of several users to the
same data records with lock mechanism
Apart from database lock mechanism, SAP provides with the help of lock
objects. These should not be created using Z or Y. once it is created the
system generates automatically two function modules
ENQUEUE-<Table Name>
DEQUEUE-<Table Name>



TYPE GROUPS:


These are globally defined data types which can be accessed from any
ABAP program. While referring type groups from a program, one must use
the key word TYPE-POOLS



TYPES

There are three different type categories in the
ABAP Dictionary and are available to all the
programs
TABLE TYPES:

Describes the structure of an internal table.
DATA ELEMENTS: Describe an elementary type by defining the data
type, length and possibly decimal places.


STRUCTURES:


INCLUDE STRUCTURE: These are included
anywhere in the table after primary keys

APPEND STRUCTURE: These structures are
added at the bottom of the table. These structures
must be defined with two ZZ
These structures are primarily used for enhancing
the SAP standard tables


LAB EXERCISES:

1. Create a employee table and a department table
2. Create a append structure and include structure
3. Create database, projection, maintenance, and help views
4. Create a search help that allows us to search emp numbers both
based on empid and depid (collective search help)



INTERVIEW QUESTIONS:

1. What is buffering of tables and its types.
2. What do you understand by table index?
3. Difference between primary and secondary index
4. Different types of search helps and how they are used
5. Purpose of the following T-codes
a. SE11
b. SE12
c. SE13
d. SE14
e. SE16
f. SM30
6. What are two level domain concepts?
7. What is conversion routine and where it is assigned
8. What are fixed values?
9. Define the following
a. Data element
b. Domain
c. Check table
d. Reference table
e. Value table
10. Different types of tables and views
11. Difference between structure and table
12. Difference between include structure append structure
13. What is customer includes
14. What is lock object and purpose of it?
15. what is the purpose of table maintenance generator
16. Define type groups
17. Different types of tables
18. What are text tables




DATA STRUCTURES








DDIC TYPES ABAP TYPES
CHAR C-CHARACTER
NUMC N-NUMERIC
DATS D-DATE
TIMS T-TIME
INT4 I-INTEGER
F-FLOATING
P-PACKED
DECIMALS
X-HEXA
DECIMAL
STRING



UNSTRUCTURED DATA TYPES
VARIABLES, DATA OBJECTS
STRUCTURED DATA TYPES



INTERNAL TABLE


WORK AREA







STANDARD TABLES


SORTED TABLES

INDEXED TABLES


HASHED TABLES




(1) Control goes to selection screen from ABAP Editor to get the user
request
(2) User sends the request from selection screen to ABAP Editor
(3) ABAP Editor sends the request to the Database
(4) Database sends the request of data to ABAP Editor.
(5a) Control goes to again selection screen if the user given data do not
exist in Database.
(5b) If the user given data exist in Database, it outputs the data in the
list screen Or EMAIL.



It can hold only single record and works as interface between internal table
and list output. It can also work as interface between database and internal
table but it is a performance issue.











DATA DECLARATIONS
.
DATA SELECTION
..
DATA OUTPUT

TABLES
STRUCTURES
VIEWS
List screen
EMAIL
DATABASE (SE11) ABAP EDITOR (SE38) Selection Screen

1
2
3
4
5a
5b
WORK AREA:



Internal tables can hold multiple records and are defined by using the
syntax TYPE TABLE OF Internal tables can be defined either with
an implicit work area or an explicit work area. There are two ways of filling
internal tables either through work area or directly into the body.
However, one has to make use of either an implicit or an explicit work
area to output the data. Default memory of ITAB is 8 KB and can increase
dynamically.













INTERNAL TABLE:
Internal Table Operations


OPERATIONS ON INTERNAL TABLE:

1 COLLECT This statement helps in performing mathematical
operations on ITAB this statement works on ITAB both as
modify statement if a record already exists with the same
key and as append statement if a record exists with the
different key.
2 READ This statement reads the given line of records at an index
level. If duplicate is found, it retrieves first entry.
To read multiple records, we keep it in loop and endloop.

3 MODIFY This statement modifies the contents of one or more
records of the ITAB. One can modify it using an index or
key of the table.

4 APPEND This statement adds the record at the end of all the
records in the table.



5 DELETE This statement deletes the record wherever we specify
with index.

6 SORT This statement sorts the table in ascending or
descending order according to the given field.

7 INSERT This statement inserts the new record at the given index.

8 DESCRIBE This statement describes the number lines of the ITAB at
runtime.

9 REFRESH This statement removes all the data from internal table
10 CLEAR This statement removes all the data from workarea.
11 FREE This statement removes all the memory of internal table.







TYPES OF TABLES UNIQUENESS ACCESS
STANDARD TABLE Non-Unique Mostly index
SORTED TABLE Non-Unique / Unique Mostly key
HASHED TABLE Unique Only key





TYPES OF TABLES :

1 STANDARD TABLE By default all ITABS are standard table. One
can perform ITAB operations with the help of
either table index or key of the table.

2 SORTED TABLE one can perform ITAB operations with the help
of either table index or key of the table
As it is a sorted table, we need not to perform
SORT operation.

3 HASHED TABLE This table has to be created only with an
explicit key that has to be always unique.
Note:

SY-TABIX: Every ITAB has a record index called as SY-TABIX. This index
hence perform internal table operations

To find out the access type of an internal table at runtime, use the
statement DESCRIBE TABLE <itab> KIND <charfield>.




Comprises character fields or character set (CHAR and NUMC) of
columns of leftmost of an ITAB. To do the collect statement operations, the
processor uses the key of the ITAB. If the key is not specified, it always
takes the leftmost character set of columns.
This adds all the non-character fields by comparing all the character
fields of the table (performance problem).



INTERNAL TABLE KEY:

IMPORTANT SYSTEM FIELDS

VARIABLES TYPE LENGTH DESCRIPTION
INDEX INT4 10 Loop Index
PAGNO INT4 10 Current List Page
TABIX INT4 10 Index of Internal Tables
TFILL INT4 10 Row Number of Internal Tables
DBCNT INT4 10 Processed Database Table Rows
FDPOS INT4 10 Found Location in Byte or Character String
COLNO INT4 10 Current List Column
LINCT INT4 10 Page Length of List
LINNO INT4 10 Current Line in List
TLENG INT4 10 Row Length of Internal Table
LILLI INT4 10 Selected List Line
SUBRC INT4 10 Return Value of ABAP Statements
LSIND INT4 10 Index of Details List
LISTI INT4 10 Index of Current Step Loop Line
SCOLS INT4 10 Screens, number of columns
LOOPC INT4 10 Visible Lines of a Step Loop
LANGU LANG 1 Language Key of Current Text Environment
BATCH CHAR 1 Program is running in the background
BINPT CHAR 1 Program Running Under Batch Input
DYNNR CHAR 4 Current Screen Number
DYNGR CHAR 4 Screen Group of Current Screen
CPAGE INT4 10 Current Page Number of a List
MANDT CLNT 3 Client ID of Current User
PFKEY CHAR 20 Current GUI Status
TCODE CHAR 20 Current Transaction Code
UCOMM CHAR 70 Function code that PAI triggered
DATUM DATS 8 Current Date of Application Server
SLSET CHAR 14 Used Selection Screen Variant
UZEIT TIMS 6 Current Time of Application Server
UNAME CHAR 12 User Name
ABCDE CHAR 26 Latin Alphabet
TITLE CHAR 70 Contents of Title Line
LISEL CHAR 255 Contents of a Selected List Line
ULINE CHAR 255 Horizontal Line
CPROG CHAR 40 Calling Program
LDBPG CHAR 40 Database Program of a Logial Database
TVAR0 CHAR 20 Text Variable for Placeholders in List Headers
TVAR1 CHAR 20 Text Variable for Placeholders in List Headers
MSGID CHAR 20 Message Class
MSGTY CHAR 1 Message Type
MSGNO NUMC 3 Message Number
MSGV1 CHAR 50 Message Variable
MSGV2 CHAR 50 Message Variable
MSGV3 CHAR 50 Message Variable
MSGV4 CHAR 50 Message Variable
VLINE CHAR 1 Vertical Line
DATAR CHAR 1 Selection for Screen Field Input
HOST CHAR 32 Name of Current Application Server







LAB EXERCISES:

1. Write programs to demonstrate the following
Unstructured data type
Workarea
Single access (internal table)
Multiple access (internal table)
Implicit workarea
2. Write programs to demonstrate selection screen variants
3. Write a program using internal table operations
4. Write a program using database table operations
5. Write two programs one with inner join and another one with for
all entries




INTERVIEW QUESTIONS:

1. What is Work Area?
2. Difference between work area and internal table.
3. Different types of internal tables.
4. What are the various operations possible on internal table?

5. Describe the following ABAP syntax:
DO
LOOP
CLEAR
REFRESH
FREE
STOP
EXIT
REJECT
DESCRIBE
CONCATENATE
FIND
REPLACE
SHIFT
OVERLAY
TRANSLATE
CONVERSION ROUTINE
OFFSET
WRITE
SKIP

PERFORMANCE TUNING

1. While writing SELECT statement makes sure you SELECT only
relevant fields.
2. Avoid using SELECT *.
3. Always user WHERE clause.
4. Avoid using SELECT, ENDSELECT.
5. Always pass full primary key to get the data.
6. Avoid nested loops.
7. Avoid using more than 3 nested if, alternately use CASE
statement.
8. Never use OUTER JOIN.
9. Avoid using MOVE-CORRESPONDING.
10. Restrict the usage of GLOBAL Variables.
11. Do not define unnecessary variables.







MESSAGES



MESSAGES

Messages are created in SE91 and stored in table T100. Messages can
either be displayed in modal dialog boxes, or in the status bar of the
screen. You can send messages using the ABAP statement MESSAGE.
The statement specifies the message class, number, and type of the
message.


MESSAGE TYPES
E ERROR
W WARNING
A ABEND
S SUCCESS
I INFORMATION
X SHORT DUMP

MESSAGE Class (ZHNC)

MESSAGE Number (FROM 000 TO 999)

Example: message s220(ZHNC) with text.

& PLACE HOLDERS that means we can use the same message
number with different messages dynamically at runtime.
Example: message s220(ZHNC) with Enter Vendor Number












MODULARIZATION UNITS



Modularization techniques are used to break the program into small
modules which are more readable, understandable and reusable.
ACTUAL PARAMETERS (A) are global variables that store the actual
values. Actual parameters are defined in the call program
FORMAL PARAMETERS (F) are local variables that are defined in the
interface of the modularization technique or called program



Techniques


Call

Called

Number of
parameters

Re-
usability

MAX = 9


MACROS

<macro>

DEFINE
<macro>
-------------------
ENE-OF-
DEFINITION

A = F


LIMITED

NO LIMIT


SUB-
ROUTINES

PERFORM<sub>

FORM <sub>
-----------------
ENDFORM
A = F


BETTER

NO LIMIT


FUNCTION
MODULES

CALL
FUNCTION
<func>

FUNCTION
<func>
----------------------
----------------------
ENDFUNCTION

Need not be
A = F




BEST

NO LIMIT


CLASSES

CLASS<cls>
DEFINITION
-----------------
-----------------
ENDCLASS

CLASS <cls>
IMPLEMENTAT
ION
--------------------
--------------------
ENDCLASS

Need not be
A = F



BEST

INCLUDES

INCLUDE <inc>

INCLUDE <inc>
No
parameters

BETTER

(1) MACROS:


In macros, the called should always be first and call follows it. If you want
to use macros in another program, you have to define call program again
in that program. Macros are stored in TRMAC table


(2) SUB-ROUTINES:




USING parameters are input parameters
CHANGING parameters are output parameters

CALL BY REFERENCE: The actual and formal parameters point to the
same memory address hence any change to the either of the parameters
is reflected in the other parameters. By default all subroutines are call by
reference

Methods of Passing Data

CALL BY VALUE: The actual and formal parameters have the different
memory address hence any change to the either of the parameters is not
reflected in the other parameters. One can make a parameter or
parameters as call by value by adding value key word to the using set of
parameters


CALL BY VALUE AND RESULT : One can make a parameter or
parameters as call by value and result by adding value key word to the
changing set of parameters

(3) FUNCTION MODULES: (SE37)




ATTRIBUTES parameters describes what type of function module it is

IMPORT parameters are input parameters

EXPORT parameters are output parameters

CHANGING parameters can be input or output parameters of WA

TABLES parameters can be input or output parameters of ITABS

EXCEPTIONS: Information is passed to handle runtime errors and these
are generally negative

SOURCE CODE: In this we write code for the function module



THERE ARE 3 TYPES OF FUNCTION MODULES

(1) NORMAL FUNCTION MODULES
(2) REMOTE-ENABLED FUNCTION MODULES
(3) UPDATE FUNCTION MODULES

SY-SUBRC EQ 0: The function module is executed successfully
SY-SUBRC EQ 1: The function module is not executed due to the
exception number 1
Function pool = Collection of function modules

STEPS TO IMPLEMENT STANDARD FUNCTION MODULES:

1. Identify the FM using search helps that will give one or more function
modules.
2. Study the documentation provided and select which is the closest to
your Requirement.
3. Understand the parameters of the interface of the FM.
4. Test the function module that will again help us identifying whether
this FM will suit our requirement or not.
5. Finally call the function module into the program.


(4) CLASSES:


These are based on object oriented programming concepts. Classes
created locally using ABAP editor (SE38) are available to that program
only and Classes created globally using class builder (SE24) will be
available to all the programs


(5) INCLUDES:


It is used to hold another programs code that is subroutines, function
modules








LAB EXERCISES:

1.Write a program to demonstrate macros
2.Write a program to demonstrate subroutines with the following
methods
Call by reference
Call by value
Call by value and result
3. Write a program to demonstrate a function module
4. Create two function modules, First function module with I_DEPID and
T_EMP parameters and Second function module with I_EMPID and
C_EMP parameters. Fetch data into first function module from the
employee database table. Using first function module data, give EMP
details from second first function module



INTERVIEW QUESTIONS:

Differences among various Modularization Techniques.
What is a Function Group?
What are exceptions in Function Module?
Types of Function Modules.
Name Few Function Modules.
How do you call a subroutine from another program?

















REPORT PROGRAMMING





SECTIONS :
1. CLASSICAL REPORTING EVENTS
2. INTERACTIVE REPORTING EVENTS
3. CONTROL BREAK / AT EVENTS
4. ALV REPORTS



Reports help the management to take the decisions on performance of
business system and to device strategies for the future.

ABAP Programming is event based Programming language. There are
different types of events that can be categorized as external and internal
events
An event is a happening or occurrence that has set timing. Whenever an
event happens, there will be some kind of reaction. Hence an ABAP
programmer, one should learn what is the time of each of the events and
what one should do when an event is fired

EXTERNAL EVENTS
INTERNAL EVENTS

INTERACTIVE ALV CLASSICAL
EVENTS


LOAD-OF-PROGRAM:
This is basically an internal event triggered every time, when the program
is executed. It loads the active version of the code into program content.

(1) CLASSICAL REPORTING EVENTS


1

INITIALIZATION

This is the first event triggered externally. It is
triggered after the execution of program but before
displaying of the selection screen.
It can be used to refresh global variables and to
initialize global variables and selection screen
fields.

1
2


3



REPORT / LIST PROGRAMMING
4



20
Database
ABAP Editor
Selection
screen
Basic List
Secondary Lists

9
3
4
3
2
1
8
7
4
4
6
1
2
3
4
5
6
7
8
9
INITIALIZATION
AT SELECTION-SCREEN
START-OF-SELECTION
END-OF-SELECTION
TOP-OF-PAGE
AT LINE-SELECTION
TOP-OF PAGE DURING
LINE SELECTION
AT USER-COMMAND
5
Data declaration
--------------------
--------------------
Data selection
-------------------
-------------------
Output
------------------
------------------
END-OF-PAGE

2

AT
SELECTION-
SCREEN

This event is triggered when control is at selection
screen. That is once the user has entered the
input values and executed the program, and then
this event is fired.
We use this event to validate the selection screen
input values.


3

START-OF-
SELECTION

This event is fired when there are no exceptions in
the AT SELECTION-SCREEN event. We use this
event to select as much data as possible to be
printed on basic list.
If there is an exception in this event, we use ABAP
statement STOP. In this case, the control is
passed onto the event END-OF-SELECTION and
the rest of START-OF-SELECTION event is
skipped.


4

END-OF-
SELECTION

This event is triggered either because of the
STOP statement in START-OF-SELECTION
event or after complete execution of START-OF-
SELECTION event.
We use this event to write the output or to throw
exceptions.


5

TOP-OF-PAGE

This event is fired with the very first write
statement in the program
This event is generally used to print report
headers.


6

END-OF-PAGE

This event is generally used to print footer
(page).A new page can be triggered in two ways
NEW-PAGE or LINE-COUNT 20(2).
By default, every page has 65,000 lines and 255
characters width




(2) INTERACTIVE REPORTING EVENTS


7

AT LINE-SELECTION


This event is fired when the user double
clicks on a line output.

8

TOP-OF PAGE DURING
LINE SELECTION


This event is used to print page headers
for secondary lists.


9

AT USER-COMMAND


This event is fired whenever the user
clicks on a button or a menu option.


Note: The list screen displayed immediately after the execution of program
is known as BASIC LIST. This list has an index 0.
By using interactive events, we have provision to create further drill down
to secondary lists whose index stars from 1 maximum of 20.
(1) HIDE: when we use HIDE statement, the corresponding work area
values are stored behind every line return in the output screen. Thus
whenever a user double clicks on a specific line, the system internally
copies the hidden work area.
(2) GET CURSOR: when we use GET CURSOR statement, the system
senses the field name and the cursor position.





System variables helpful in the reports
SY-LISEL Contains data of the selected line.
SY-LSIND

Contains the index of the list currently being created. While
the basic list is being created, SY-LSIND is zero.
SY-LINNO contains line number



(3) CONTROL BREAK / AT EVENTS

Control Break statements or At events can be used only inside a loop
statements.
AT FIRST

This event is fired at first index of SY-TABIX and fired
only once.
One can use this event to write some kind of a sub-
heading because it is fired only once.

AT LAST

This event is fired at last index, since it is fired only
once.
One can use this for arriving at grand totals.

AT NEW <c1>

This event is fired every time the value of c1
becomes new. It can be used to avoid printing
duplicate values.

AT END OF <c1>

This event is fired every time the value of c1 ends. It
can be used for arriving at sub-totals.

ON CHANGE OF

This event can be used either inside or outside of the
loop













Customer No.(c1) Region(c2) Sales(c3)
1 HYDERABAD 20
1 DELHI 30
1 MUMBAI 50
2 HYDERABAD 50
3 DELHI 60
3 HYDERABAD 20
4 DELHI 30

ALV REPORTS

ALV reports are written by using a standard type group called SLIS.
One can make use of standard function modules. ALV Function Modules
starts with or can be searched with Reuse*ALV*.

Advantages of ALV Reporting over Normal Reporting:

(1)DYNAMIC LAYOUT: when the requirement says that the user would
like to change the layout of the report at runtime.

(2)ADDITIONAL TOOLS AND UTILITIES: when the requirement says
that the user needs lot of other options like download, totaling, sub-
totaling sorting of data.










STEPS FOR CREATING ALV REPORTING:

STEP-1 Define Type-pools SLIS.
STEP-2 Define an internal table of type SLIS_T_FIELDCAT_ALV.

STEP-3 Define another internal table of type SLIS_T_EVENTS.


STEP-4


Define another internal table that should be structure of the
desired output.


STEP-5



Fill up the ITAB created in STEP-2 with all the technical
information of the layout.
This step is also known as preparing the Field Catalog. In this
step, one must provide all the properties for every column of
the desired layout. These properties are available in the
Type-Group SLIS.
For example: Key column, totals, sub-totals.


STEP-6



This step should be carried out only if our report is supposed
to use ALV events.
Under this step, one should fill up the internal table created in
step-3 with the list of ALV events. The list of events is
available in Type-pool SLIS.


STEP-7



Fill up the data supposed to be printed in the internal table
created in Step-4. This table is also known as Data table.


STEP-8



Call the function module.
REUSE_ALV_LIST_DISPLAY
OR
REUSE_ALV_GRID_DISPLAY
Pass all the three internal tables created so far in the
program.




LAB EXERCISES:

1. Write a program using classical events
2. Write a program using interactive events
3. Write a program to demonstrate control break statements
4. Write an ALV program using ALV events
5. Write an ALV program to display logo
6. Write an ALV program to hide the any one of the additional button or
tool on Application toolbar


INTERVIEW QUESTIONS:

Name all the EVENTS in order of their execution
Can you trigger AT USER-COMMAND and AT LINE SELECTION
at the same time?
What are the function codes and how do you define them?
How do you define PF-STATUS and what are the components of
it?
How do you identify a basic list from secondary list?
What are the various ways of triggering a new-page?
What are the defaults of PAGE-SIZE and LINE-SIZE?
How do you decide whether to write ALV or NORMAL reports?
Name few ALV function modules and ALV events?
What is the function of SUBMIT in a report?
How do Export To and Import From work?
How do you call a transaction from a report?
How do SET PARAMETER ID and GET PARAMETER ID
work?
Can you create your own parameter ID and how?
What are the different variants of AT SELECTION-SCREEN
event?
What are the TYPE-GROUPS?
What are the FIELD-SYMBOLS?









MODULEPOOL PROGRAMMING
















------------------------------------- TRANSACTION ------------------------------


FLOW LOGIC:
Screen flow logic contains the procedural part of a screen. You create it in
the flow logic editor which is very similar to the ABAP Editor. The screen
flow logic is like an ABAP program in that it serves as a container for
processing blocks. There are four event blocks, each of which is
introduced with the screen keyword

(1)PBO: PROCESS
BEFORE OUTPUT

This is fired before the screen is displayed
(2)PAI: PROCESS
AFTER INPUT
This is fired whenever the user performs an
action on the screen
(3)POV (F1): PROCESS
ON VALUE REQUEST
This is fired whenever the user presses F1

(4)POH (F4): PROCESS
ON HELP REQUEST

This is fired whenever the user presses F4

In all these events, first two are default events where as the other are
optional events.



Screen 0100 Screen 0200 Screen 0300
PBO PBO PBO






PAI PAI PAI
| DIALOG | | DIALOG | | DIALOG |


EID
Name


. DISPLAY
. CHANGE


BACK
NEXT
CREATE

MODULE POOL PROGRAM comprises of the following includes.

TOP Include This stores all global data

PAI Include

This stores all PAI modules and ends with I01
PBO Include

This stores all PBO modules and ends with O01
FORMS Include

This stores all the SUB-ROUTINES and ends with F01




SCREEN ELEMENTS:
A screen can contain a wide variety of elements, either for displaying field
contents or for allowing the user to interact with the program (for example,
filling out input fields or choosing pushbutton functions). You use the
Screen Painter to arrange elements on the screen.
You can use the following elements:

TEXT FIELDS

Display elements, which cannot be changed either
by the user or by the ABAP program.
INPUT/OUTPUT
FIELDS

Used to display data from the ABAP program or
for entering data on the screen.
Linked to screen fields.
DROPDOWN LIST
BOXES

Special input/output fields that allow users to
choose one entry from a fixed list of possible
entries.
CHECKBOXES

Special input/output fields which the user can
select (value X) or deselect (value SPACE).

RADIO BUTTONS

Special input/output fields that are combined into
groups. Within a radio button group, only a single
button can be selected at any one time. When the
user selects one button, all of the others are
automatically deselected.

PUSHBUTTONS

Elements on the screen that trigger the PAI event
of the screen flow logic when
chosen by the user. There is a function code
attached to each pushbutton, which
is passed to the ABAP program when it is chosen.

SUBSCREENS

Area on the screen in which you can place
another screen.

TABLE CONTROLS

Tabular input/output fields.

TABSTRIP
CONTROLS

Areas on the screen in which you can switch
between various pages.


CUSTOM CONTROL


Container on the screen in which you can display
another control.


LAB EXERCISES:


Create a module pool program with the following
In screen 100, create customer input field and two push buttons one with
display and another one with exit.
In screen 200, create customer, name, country output (display) fields and
three push buttons one with display and another one with change and last
one with refresh.
EXERCISE:- Give input for Customer field in screen 100, when clicked on
display it should move to screen 200 and display details of the customer.
When clicked on change, customer field in screen 200 should be input
enabled and when customer is given and clicked on display, it should
display customer details.

INTERVIEW QUESTIONS:

1. Define the following-
SET SCREEN
LEAVE TO SCREEN
CALL SCREEN
LEAVE-TO-LIST-PROCESSING
LEAVE-LIST-PROCESSING
COMMIT WORK
ROLLBACK WORK
LEAVE TRANSACTION
LEAVE TO TRANSACTION
LEAVE PROGRAM
CALL TRANSACTION
2. What are the events in Module Pool Programming
3. What are the following system variables-
a. SYST-DYNNR
b. SYST-UCOMM
4. How do you call a report from a transaction
5. How do you call a transaction from a report
6. How do you work with table controls
7. What are sub-screens
8. How can you change the properties of the screen-elements
dynamically



DATA TRANSFERS / CONVERSIONS


DATA TRANSFER PROCESSING STRATEGY:
1) LEGACY DATA FILE:
Data is made available in the form of FILE (.xls, .txt) in Legacy system.
File can be kept either in Application server or in Presentation server.
99%, data is made available in Application server which is decided at the
beginning of project implementation.

(2) APPLICATION SERVER:
ODS, RDS, and CDS statements are used to transfer data from the file of
Application server into the program
ODS, TDS and CDS statements are used to send data from ERROR_ITAB
of the program into legacy system

ODS Open data set
RDS Read data set
TDS Transfer data set
CDS Close data set

ODS + RDS+ CDS similar to GUI-UPLOAD
ODS + TDS+ CDS similar to GUI-DOWNLOAD
DATASET = FILE

(2) PRESENTATION SERVER:
GUI-UPLOAD and GUI-DOWNLOAD function modules are used to
transfer data from the file of presentation server into the program.

(3) CONVERT THE COMPLETE DATA INTO CHARACTER FORMAT
IT_TEXT. SIZE ALSO SHOULD MATCH.

(4) CONVERSION FILTER

(5) VALIDATION FILTER

(6) UPLOADING DATA FROM ITAB
INTO SAP DATABASE
With ONE OF THE DATA TRANFER TECHNIQUES


DATA TRANFER TECHNIQUES



DIRECT INPUT



This technique makes use of predefined SAP standard
programs
These programs and its related documentation are
found under SAP library or SPRO transaction. These
programs do not use SAP screens for data transfer
instead they use update Function Modules to transfer
data directly into the R/3 Database.



BDC



This technique makes use of SAP screens to save data
into the database. One must use transaction recorder to
record a screen sequences. Under this technique,

One can also has to make use of the following
STRUCTURES:
BDCDATA
BDCMSGCOLL

One can has to make use of the following
Function modules for session method
BDC_OPEN_GROUP
BDC_INSERT
BDC_CLOSE_GROUP

While using call transaction method, one has to make
use of ABAP statement call transaction


ALE/EDI


This technique is mostly used when the data is
supposed to be transported in the form of IDOC
(Intermediary Document)
ALE is used for communication between two sap
systems where as EDI for communication between sap
and EDI sub-system
Internally this technique again uses BDCs or BAPIs
these are available in the form of standard Function
Modules




BAPI:



These are again available in the form of Remote
Enabled Function Modules Internally BAPIs use BDC or
Update Function Modules




LSMWB:



This is the only tool that uses other tools. LSMW
was introduced from 4.0v onwards, prior to this SAP has
provided Data transfer Workbench (DXWB).
This tool was primarily used for data transfer using
direct input method only but in LSMW, one can use not
only direct input method but also other methods like
BDCs, BAPIs, ALE, or recording



TRANSACTION
RECORDER:



This is a tool used for recording screen sequences
which can further be used in BDC programs. We use
this tool for small amount of data to be transferred























BDC PROCESSING


Step1: Conduct sap transaction for the required data in sap system as
many times as possible. This step is mandatory irrespective of the any
data transfer tool that we use.
Example: If the requirement is to transfer customer master data then
one should conduct XD01 transaction as many times as possible to ensure
and identify the mandatory fields and possible values
Step2: Use transaction recorder SHDB to record the transaction for which
the data is supposed to be transferred
Step3: Create a BDC program after recording that has done in step2
Step4: BDC program does not care of conversions or validations hence if
any conversions or validations are required then the program should be
modified
Step5: Test the program with the help of test data provided

NOTES: We can add fields in the work area of the program but we cannot
delete existing fields because they are mandatory
RSBDCSUB: Submitting program in background
Both call transaction and session method have BDCDATA Structure
Program Dynbegin Dynpro Fnam Fval

CALL TRANSACTION:
Multiple transactions can be possible only in Call Transaction Method
Call Transaction Method is far better in performance perspective
Call Transaction Method is processed synchronously
MSGCOLL returns the messages of call transaction method

SESSIONS METHOD:
SM35: Batch input session overview
We prefer this session method when errors are more in the file
Session Method is processed asynchronously











BAPI: BUSINESS APPLICATION PROGRAMMING INTERFACES

BAPIs are made available in the form of BUSINESS OBJECTS that fallow
business object programming

A typical business object has the following structure
(1) Attributes
(2) Key fields
(3) Methods
(4) Events
(5) Interfaces
SWO1 transaction code is used to access business objects

BAPIs can be accessed either from T-CODE SE37 or from T-CODE BAPI

BAPIs have the same structure as Function Modules since BAPIs are
function modules.
BAPIs are remote enabled function modules. All BAPIs are remote
enabled Function Modules but all remote enabled function modules are not
BAPIs

BAPIs have the import, export, tables and changing parameters but
most of the BAPIs do not have exceptions parameter instead all the
exceptions are captured in the tables parameter as return table.

Most of the BAPIs do not have a commit work, that means they do not
carry out database updates hence it is the responsibility of the developer to
perform database updates.
One can do so by calling either
BAPI_TRANSACTION_COMMIT
Or
BAPI_TRANSACTION_ROLLBACK

Before calling of anyone of them, check the FUNCTION MODULE if
there are any errors in the return table.








LAB EXERCISES:

1. Write a BDC program for transaction XD01 using both call
transaction and sessions method
2. Write a program to upload data for transaction KS01 using BAPI
3. Upload data for transaction XK01 using LSMW

INTERVIEW QUESTIONS:

1. What are the various of data transfer techniques you have worked
with
2. Which one would you choose and justify your answer
3. What are the different types of files you have worked with
4. How do you work with semi colon separated files
5. How do you covert non-char fields into character type fields
6. Explain in detail the error handling mechanism in BDC and BAPI
7. How do you submit a BDC Session in background
8. What the different processing modes in BDC
9. What the different update modes in BDC
10. Name the function modules used in BDC with their interface
parameters
11. How are BAPIs different from normal function modules
12. Why cant we use normal function modules for data transfer
13. What is the difference between RFC and BAPI function
modules
14. Name a few BAPIs
15. How are exceptions handled in BAPIs
16. What is the COMMIT concept in BAPIs
17. What are the various steps in LSMW
18. What are the different ways in which data upload can be done
using LSMWB
19. What is the use of the following structures-
a. BDCDATA
b. BDCMSGCOLL
20. How do you work with TABLE CONTROLS during DATA
TRANSFER





SAP SCRIPTS




IN Reports: the data logic and print logic resides in one program






IN SAP Scripts: the data logic is separated from print logic






LOGO
WINDOW

MAIN WINDOW
LAYOUT
CONTENT
SAPScript Form
PRINT LOGIC

DATA LOGIC


PRINT
LOGIC



OUTPUT


DATA
LOGIC


OUTPUT
DATABASE

DATABASE

Print logic is called as layout set where as the data logic is called as
driver program
PRINT LOGIC: The print logic of SAP Script is always processed by
special processor called SAP Script processor. It understands only limited
commands such as
PERFORM,
BITMAP,
CASE.ENDCASE,
IF..ENDIF,
TOP..ENDTOP,
BOTTOM.ENDBOTTOM,
INCLUDE,
DEFINE etc.
DATA LOGIC:
The data logic program primarily comprises of two sections
(1) Data selection from database (2) Calling SAP Script to print: The
following Function Modules are used to call the SAP Script to print
OPEN_FORM
START_FORM (for multiple forms)
WRITE_FORM
CLOSE_FORM
CONTROL_FORM
TYPES OF WINDOWS
MAIN WINDOW Main window is one whose contends are
continuous across pages. Every page of an SAP
script has one main window; however it is
possible to map 99 main windows on one page
VARIABLE WINDOW Variable window is one whose contends change
from page to page
CONSTANT WINDOW Constant window is one whose contends do not
change from page to page

UPLOADING LOGO FILES: One can upload logo files by using T-code
SE78 but it can be used to upload only BMP files. There is a possibility to
upload TIFF files using the program RSTXLDMC.
SAP SCRIPTS ARE LANGUAGE DEPENDENT:
SAP Scripts can be created in multiple languages however it can
have only one original language. Original language is the language in
which the form is originally created.
It is also possible to maintain standard text in multiple languages using T-
code SO10 while SAP Script maintains in only one language

SAP SCRIPTS ARE CLIENT DEPENDENT:
All the ABAP repository objects are client independent except SAP Scripts
that means Scripts developed in one client are not available to other client
Most of the times, the print program and sap script are provided by SAP
standard system. One has to only customize to the needs of the customer.
The program RSTXSCRP is used to transfer SAP Scripts created as
local objects between two clients where as in transport request, the
program RSTXR3TR is used to transfer SAP Scripts

SMART FORMS
Since SAP Smart Forms are directly integrated into the applications, no
time is lost due to data exchange with external systems. Furthermore,
documents can be automatically created in the background, which is useful
in case of extensive dunning runs, for example.
SAP Smart Forms objects are linked to the transport system so that
you can easily test your forms and subsequently transfer them to your
production system.
SAP Smart Forms can be used on all platforms supported by SAP. To
edit the forms, however, you need the graphical user interface SAP GUI for
Windows.
SAP Smart Forms provides multiple language support. You need to
define the layout of a form only once and can then translate the texts using
the translation tools. This ensures that your documents have a consistent
design on an international level.
SAP Smart Forms provide considerable advantages over SAPscript:
1. Customizing forms is considerably easier, on the one hand because
the tools offer more functions (for example, you can very easily
create tables with the Table Painter of SAP Smart Forms), on the
other hand because the interface between the forms and the
application programs has been redesigned.
2. Particular tasks, such as retrieving additional data within forms, do
not require you to use special scripting language commands, as you
had to with SAPscript. You can also insert normal ABAP code.
3. As of SAP Web Application Server 6.10, SAP Smart Forms can be
output in HTML.
4. The migration of SAPscript forms and styles to SAP Smart Forms is
supported. You can also convert SAPscript styles into Smart Styles.
5. SAPscript texts can be used directly in SAP Smart Forms.

Depending on the application, either SAP Smart Forms or SAPscript
forms can be used. In some cases, you can choose which you want to use.
This means that SAP will provide continued support and maintenance for
SAPscript forms.

LAB EXERCISES:


1. Design SAP script form to print purchase order details which
consists the following windows - logo window, header window, footer
window and main window - write a driver program
2. Design SAP smartforms to print sales order details


INTERVIEW QUESTIONS:


FORMS

1. What are the differences between SAPSCRIPTS and
SMARTFORMS
2. Explain the following SAPSCRIPT COMMANDS-
a. INCLUDE
b. BITMAP
c. DEFINE
d. TOP-ENDTOP
e. BOTTOM-ENDBOTTOM
f. PROTECT-ENDPROTECT
g. IF-ENDIF
h. CASE-ENDCASE
i. ADDRESS-ENDADDRESS
3. What are the uses of the following programs-
a. RSTXLMDC
b. RSTXR3TR
c. RSTXSCRP
4. How do you upload LOGO files
5. What are the different LOGO file formats supported by SAPscripts
6. What are client and language concepts in FORMS
7. What are standard texts
8. How do you maintain Smartforms in different languages?









USER EXITS / ENHANCEMENTS / BADI'S



DIFFERENT STAGES TO SOLVE REQUIREMENTS OR GAPS:

(1) CONFIGURATION:

This is generally done by functional consultants.
If the requirement is not met with configuration
then the customer goes customization


(2) CUSTOMIZATION /
ABAP
DEVELOPMENT:

This is generally done by technical consultants.
Reports, data transfers, interfaces and forms
come under customization. If the requirement is
not met with customization then the customer
goes enhancements


(3) ENHANCEMENTS:

This is also done by technical consultants. If the
requirement is not met with enhancements then
the customer goes changing sap standard


(4) CHANGING SAP
STANDARD:

This is also done by technical consultants. This
process is not recommended



USER EXITS


These are not termed as enhancements; however they are used to
enhance SAP standard process
These are available as include program in the form of sub routines.
These include programs are then included as a part of the main program.
One will need an access key to implement user exits, where as one
does not need an access key to implement enhancements


ENHANCEMENTS: These are used when the requirement cannot be
fulfilled by forms, reports, interfaces or conversions. An enhancement is a
container of one or more components of the following


(1)FUNCTION
EXITS:


These are made available in the form of
FUNCTION MODULES. All function exits begin with
the word EXIT and most of the times followed the
name of the main program hence one can find the
function exits even with the help of SE37.


(2) SCREEN
EXITS:


Screen exits can be used to sap standard
transactions. These are made available in the form of
sub screen areas. Every screen exit must and should
have two exits PBO and PAI.


(3) MENU EXITS:



These are available in the form of function codes.
With the introduction of area menu, use of menu exit
has been diminishing. When you activate menu exit
from the transaction code SMOD, one can see an
additional menu option appearing along with the
standard menu.


(4) CUSTOMER
INCLUDES:


These are available in the form of include structures
at dictionary level hence one can be used to enhance
sap standard tables



ONE CAN IDENTIFY THE FUNCTION EXITS INSIDE THE PROGRAM IN
THE FOLLOWING WAYS

Go to the main. Do a global search for a string "CALL CUSTOMER".
If search returns any results, it means that there are function exits
available for the given transaction or program.
In the program, the function exit appeared as CALL CUSTOMER
FUNCTION '001'. Double click on each of these calls to go to the
underline function exits. It takes you the transaction SE37. Study the
function module as you normally do for any other function module.
Make a note of all such function module available in this program.
Go to transaction SMOD and find the enhancement name with the
help of the names of the function modules identified in the above
step. With this u may enter identifying one or more enhancements.
Each of these enhancements identified above implement the by
double clicking on then exit name. at this stage, put break point to
understand whether the enhancement can be used or not
Activate the enhancement and test the enhancement by calling the
respective transaction code
While call the transaction code, if the break point is fired, it indicate
that the enhancement is a part of the current program While you are
in the debugger, debug the complete interface of the function
module. This must be done to check if the variables or values
required by us are made available by function module interface
If the values are available then only we can confirm that this
enhancement is right one
If the enhancement is not supposed to be used, deactivate and
delete the implementation




CMOD:
This transaction has to be used along with transaction SMOD. You use
SMOD to implement and test enhancements where as CMOD makes
these enhancements TRANSPOTABLE.
One must create project under transaction CMOD and add all active
enhancements to it.
CMOD



ZHNC



ENH1 ENH2 ENH3
Function exits Function exits Function exits1
SMOD Menu exits Screen exits Function exits2
Screen exits Function exits3
Customer includes



BADIS

1. Every BADI has got definition that is class definition and it has also
got implementation that is class implementation. Every BADI/ Class
which defined or implemented has one or methods. Every method
has its own parameters, attributes and exceptions. One can
compare method of a CLASS/BADI to any function module.

2. Parallel development is not possible in procedural enhancement that
means two developers cannot work on the same enhancement
together. Parallel development is possible in object oriented
enhancement called BADIs (Business Add-Ins) that means two
developers can work on the same enhancement together so BADIs
can be used actively by any number of customers at the same time.

3. BADIs can be categorized as internal use and external use, internal
use BADIs can be implemented only by SAP whereas external use
BADIs can be implemented by user communities. If the system
allows implementing a BADI, then it is external use. If the system
does not allow implementing a BADI, then it is internal use BADIs

4. BADIs can be categorized as single use and multiple use, single
use BADIs cannot be implemented parallels but only once whereas
multiple use BADIs can be implemented parallels and more than
once. One can find multiple use BADIs by looking at definition of the
BADI

5. We use SE18 to view the definition of the BADI and
SE19 to implement the BADI








IDENTIFYING BADI'S:
1. Find the main program of the corresponding transaction code
2. Get the package of the program by going to the attributes of it and
copy the package name
3. Go to transaction code SE18 and do F4. Click on information system
and provide the package name as the search criteria. This search
may give result in one or more BADI's.
4. Using the same transaction code SE18, visit each of the above
BADI's to understand whether it is multiple or single use BADI's and
also understand the different methods under each of these BADI's.
5. Every method has a short description and sometimes long
descriptions for your assistance. However one can conclude whether
the BADI will work or not only when implementing the BADI's


IMPLEMENTING BADI'S:

From transaction code SE18, we can use menu options to create
BADI implementation. However SAP has also provided a separate
transaction SE19 for implementing BADIs.
All implementation should begin with Z or Y. Once the implementation
is created, the system actually creates a copy of the class created by
BADIs definition. Hence we will find that all the methods of definition are
also copied in the implementation.
Double click on the each of the methods that to wish to implement to
meet to your requirements. When you double click on a method, the
system actually creates an interface implementation of the class method.
Inside the method, one can do the necessary coding however one has
to make sure while coding BADIs, one must follow OOPS principles.
Having done the coding, activate the BADI.
Run the transaction to see whether the BADI is getting fired or not.
While developer 1 is already implementing the BADI it is possible that
another developer creates yet another implementation of the same BADI.
There by creating yet another copy of the class / BADI definition.
However the prerequisite to do this that the BADI should be Multiple use
enable.


INTERVIEW QUESTIONS:


ENHANCEMENTS

1. Explain the enhancement concept
2. What are t-codes-
SMOD-to implement and activate to test the enhancement.
CMOD-to create an enhancement project.
SE18- BADI Reputation
SE19-BADI Implementation
3. What are the different types of enhancements
4. How are enhancements different from user-exits
5. How are BADIs different from ENHANCEMENTS































NON-TECHNICAL CONCEPTS
1. ASAP METHODOLOGY
2. TYPES OF SAP PROJECTS
3. SYSTEM LANDSCAPE
4. TRANSPORT MANAGEMENT SYSTEM
5. SAP TICKETS
6. ON-LINE SERVICE SYSTEM


1. ASAP METHODOLOGY
ASAP stands for Accelerated SAP. ASAP is a software tool used for
project management in SAP implementation, ASAP helps in guiding and
making easy a SAP implementation project. Normally any SAP
implementation involves various phases
(1) PROJECT PREPARATION (PP)
(2) BUSINESS BLUEPRINT (BP)
(3) REALIZATION (RE)
(4) FINAL PREPARATION & TESTING (FP)
(5) GOLIVE & SUPPORT (GO-LIVE)

(1)
PROJECT
PREPARATION
In project preparation, high level meetings are
conducted to analyze the project scope, schedule and
budget.
The project managers from both consulting
company and Implementation Company must be a part
of this phase. The outcome of this phase will be a very
high level of timelines and budget allocation.

(2)
BUSINESS
BLUEPRINT
In business blueprint, a lot of interviews are
conducted by the functional and technical consultants
with the client side users.
They use ABAP questionnaires to conduct these
interviews. In this phase, functional consultants and a
couple of technical (ABAPERS) are required. This
phase is important because all other phases are
dependent to this one and all the requirements are
gathered by analyzing the clients AS-IS business.
During the interviews, one can also get to know
what the TO-BE business is. Once the interviews are
done, the consultants map the requirements to SAP
system gaps are identified.
The outcome of this phase is a gap analysis
report which is presented to the client side project
management office. If required, the schedule and the
budget can be adjusted.

(3)
REALIZATION
In realization, all the configuration and
development activities are carried out. One has to do
some amount of unit testing during this phase.
This is the longest phase in the ASAP
methodology. In this phase a lot of functional and
technical consultants are required to fill the gaps which
are determined in the gap analysis report.

(4) FINAL
PREPARATION
& TESTING
All the data conversion programs are executed
so that the data can be uploaded to the production
system. Rigorous testing called integration testing is
carried out during this phase.
This phase involves participation of both the
technical and functional consultants. The outcome of
this phase is the transport of all the configuration and
development from the QA box to production box

(5) GOLIVE &
SUPPORT
This is the only moment when the very first
transaction is conducted in the production system. In
terms of post go-live and support, one has to fix
production fires and if required carry out some new
developments.
Once this phase is over, the current contract is
terminated and consultants are rolled off



JAN FEB MARCH APRIL MAY JUNE
PP | BP BP |
| RE RE | RE RE | RE RE |
| FP FP |
GO-LIVE






2. TYPES OF SAP PROJECTS
TYPES OF SAP PROJECTS
1)SAP
IMPLEMENTATION
PROJECTS
In this type of projects, Customers are moving
towards SAP software. Previously they might be
used some other software.
2) SAP SUPPORT
PROJECTS
Once SAP project is implemented, it should be
supported by the consultants in day-to-day business.
In Support projects, the support team helps the
customer in day-to-day business.
3)
SAP MIGRATION
OR
UPGRADATION
PROJECTS
SAP is continuously upgrading the R/3 software.
Customers are moving from the older versions to
new versions. When the customer decides to new
version, it is called SAP Migration Projects. Now-a-
days many customers are migrating from older
versions to new versions like 4.5 or 4.6b, 4.6c to
ECC 5.0 or ECC 6.0 versions.
4)
SAP ROLLOUT
PROJECTS
In this type of projects, Customers are moving
towards SAP software by plant by plant instead
whole at a time.









3. SYSTEM LANDSCAPE
The system landscape contains all systems that were installed. The
customer can choose any landscape according to the requirement. If the
customers organization is very big, one can implement more than three
system landscapes. Mid size customers can go for two system landscape.
Three System Landscape:
Development system Quality system Production system







Client 100
Client 140 Client 040

Client 010

Client 180
Client 070

Development system contains three clients

100 can be used as configuration client.


140 can be used for development.


180 can be used for testing purpose in development system.



The Test system contains two clients

010 can be used for testing,

040 can be used for training purposes.



Production system contains one client

where the end users will be working with real time data to
support day-to-day business.


Two system landscape:
The development and test systems are combined into one system. One
client can be used for development and another can be used for quality. In
any landscape, production system will be installed on dedicated server.
One system landscape is not recommended, where all three systems can
be installed in a single

Development & Quality system Production system








Client 100
Client 140
Client 180
Client 070

Client 140
Client 180
Client 040
Client 010
Client 100
Client 070

4. TRANSPORT MANAGEMENT SYSTEM
CTS (CHANGE AND TRANSPORT SYSTEM):
The CTS is the central tool for managing changes to customizing
and repository data that we make in the IMG or ABAP workbench. a
transport request can be either customizing request or ABAP
workbench request.
A customizing request can be created by the customizing tool
IMG. An ABAP workbench request can be created by ABAP
workbench tool. Any changes or objects we develop through ABAP
workbench are stored in Repository tables of SAP database. As an
ABAP developer you will be working with ABAP workbench and thus
you create work bench requests.
A functional consultant works with configuration tool IMG (SAP
Implementation Guide) T-code SPRO, thus creating customizing
requests.
TRANSPORT ORGANIZER:
Transport organizer is the tool provided by SAP which records
and documents all changes to objects in the repository and
customizing. The transaction code for transport organizer is SE10 or
SE09.
Transport organizer is fully integrated with ABAP workbench
and customizing tool IMG. That means you can navigate in both
directions from transport organizer to ABAP workbench and reverse
also.
DEVELOPMENT CLASS:
Development classes are used to group similar work objects that are
being developed in a project. While creating development class we must
assign it to the transport layer. All the objects assigned to that
development class can be transported according to the routes defined in
the transport layer. Defining transport layer and routes is SAP BASIS
administrator job. The transport layer defines transport route between the
systems included in system landscape. The development classes are
themselves objects in the ABAP workbench.
CHANGE REQUEST:
Information source in the transport organizer that records and manages
all changes made to repository objects and customizing settings during a
development project
TASK: A task is assigned to a change request. It is the information
carrier in the transport organizer for entering and managing all changes to
repository objects and customizing settings performed by employees within
a development project.

5. SAP TICKETS
SAP Tickets are nothing but problems or issues raised by the end
customer in a company where end users are running SAP project. Once
the SAP project is implemented, support phase begins. Support team is
responsible for solving the tickets/issues in day-to-day business.
For any support project, customer will set up Help Desk. If any
problem occurs customer will call Help Desk and register the issue/Ticket.
Different companies use different software products to manage SAP
Tickets.
Remember this software is not provided by SAP. It is third party
software. There are many software products in the market like Manage
Nowet c. You can call these software products as tools.
All tools will provide the common attributes which are listed below-
1. Every user will be provided with user name and password to enter
into the tool
2. You can see the tickets assigned for a particular user name.
3. You can list all open tickets by giving the Date Range
4. You can list all closed tickets by giving the Date Range
5. You can list out all the open tickets assigned for a User
6. You can list out all the closed tickets assigned for a User
7. You can see the description of the Ticket, by entering the Ticket
Number.
8. You can see who had raised the Ticket,
9. You can see what is the problem?
10. You can see what is the severity of the Ticket?
THE SEVERITY OF THE PROBLEM TICKET:
When a Ticket is raised, it will be given severity as Severity 1,
Severity 2, Severity 3 and Severity 4. It may vary from company to
company. The severity will be decided based on the business critical
impacts. If there is the most impact on the business it will be given 1
severity, if it is the least impact then it will be given 4.

Severity 1 problem tickets should be solved in 8 hours.
Severity 2 problem ticket should be solved in 16 hours.
Severity 3 problem ticket should be solved in 15 working days.
Severity 4 problem ticket should be solved in 30 working days.
Again the number of days may vary from one company to another. All
these things will be decided when giving the contract to the IT Company.
The agreement is called as "SLA" (Service Level Agreement). The
Customer imposes fine on IT Company if a particular ticket is not solved by
the IT Company according to the SLA/Contract.


6. ON-LINE SERVICE SYSTEM (OSS)



In day-to-day business, customers who are using SAP software
encounters problem or bugs with SAP software. To resolve the issues
faced by customers, SAP has provided an on-line solution.

Any software product is not 100% pool-proofs. SAP is continuously
updating the versions for better performance and options.

We can access SAP OSS on to www.service.sap.com. Under the SAP
Support Portal, click on SAP notes search. We need user ID and password
to enter into the OSS. It will be provided by the BASIS Team in the Project.
When they create SAP User ID, they will create OSS notes ID also.
You can also register individually in the site.

After entering into SAP notes search, you can search for the problem
using keyword appropriate for your problem. If you have specific OSS
notes number with you, then you can directly enter the OSS notes number
and you can see the Notes explanation.

Before applying OSS notes number into your SAP system. You need to
check whether it is already implemented in your SAP system or not. If it is
not implemented you can go ahead.

There are some OSS notes, which we should implement manually, that
means we need to change the code in the programs/objects according to
the steps mentioned in the problem.

If the OSS notes displayed are not helpful to solve your problem. You
can write to SAP Service describing your problem. You problem will be
answered by SAP Support team.

You might also like