You are on page 1of 36

Real Time Questions

We Never Compromise in Quality Do You?

Friends ! Please Remember , this is the Only Area , Where the Interviewer Can
estimate your Real time Project Experince. So Please be Careful while givng the
Answers for these Kind of Questions.

1. What is SAP R/3 Real time Landscape ?

Landscape : is the arrangement for the servers

DEVELOPMENT ---> QUALITY ----> PRODUCTION Servers

Custom Transport Custom Transport Custom


Developments Developments Developments

Development Quality/Testing Production/Go-Live

DEVELOPMENT : is where the consultants do the customization as per the company's


requirement and also the Custom Developments by ABAPers.

Note : ABAPers always get access Only to Development Server for Custom Developments.

QUALITY : is where the core team members and other members test the customization and
the Custom Developments.

PRODUCTION : is where the live data of the company is recorded.

Note : A request will flow from Dev->Qual->Prod and not backwards.

Sandbox server: In the initial stages of any implementation project, You are given a and
box server where you do all the configuration/customization as per the companies business
process.

1. Development Server: - Once the BBP(Business Blue Print) gets signed off, the
configuration is done is development server and saved in workbench requests, to be
transported to the Quality/Test server.
2. QUALITY : is where the core team members and other members test the customization
and the Custom Developments and Transport to Production Server.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

3. Production Server: This is the last/ most refined client where the user will work after
project GO LIVE. Any changes/ new development is done is development client and the
request is transported to production.

These three are landscape of any Company. They organised their office in these
three way. Developer develop their program in Development server and then
transport it to test server. In testing server tester check/test the program and
then transport it to Production Server. Later it will deploy to client from
production server.

2. What is Size of Your Team ?


The Team Size Can vary from 10 to 100 and 200 etc..
The Team Size , generally refers to Only the ABAP Team
And the Project size Includes all the teams from each Module.

Note : There is no stringent rules on the team Size.


You Can give any Number BUT Be CONFIDENT of the answer.

3. What is Your Role in the Current Project ?


To be frank, it depends on your Experience.
As we already Discussed, the answers are prepared for the Candidates those appear
for the interview with 2 to 3 Years Of Experience.

The Generic roles with 2 to 3 Years experience

• Analyze FS and Prepare Brief TS


• Prepare the Detailed TS from the FS or Brief FS.
• Coding
• Discussions with Functional People while Preparing the TS to understand more
about the FS.
• Code Review
• Transporting the Custom Developments.

Note : If you are more Confident, You can also Project yourself as a Team Lead for
a Small Team.

4. What is FS(Functional Specification) ?


Functional Specification is the Business Requirement Specification Document which is
Prepared by the Functional Consultant.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

This is also Called as GAP (The GAP Between the Current Organization’s Requirement
and the Solutions available in SAP) .

This Can be Prepared Only after discussing


With end users and understand their requirements and Document the
End users/Client requirements.

Note : It is Simply a MS word Document which Carries the Client’s requirement.

5. What is TS(Technical Specification) ?

Is a Document , Prepared by the Technical Consultant (ABAPer).


This Contains all the technical details such as the technical solution for the
Requirement.

The Detailed Technical Specification Contains all the details such as


Starting from Designing Selection Screen, Declarations, all the Function
Modules used and the Processing Logic to meet the Customer requirements, Unit Test
Cases etc.

6. What are Delivery Documents to be prepared to Deliver the Custom Development ?

Note : FS is the Initial Document to start the Process.

List Of Delivery Documents :


o Brief and Detailed Technical Specification.
o UTP (Unit Test Plan)
o Document which provides the Transport request Details.
And You can have More documents which really depends on the The Project.

7. How to Transport your Object(Custom Development)


From the Current Environment to the Other Environment ?

Note : To Transport the Custom Development from One Environment(DEV) to


another Environment(TEST) , the Object should be Eligible for transport.

Eligibilty1 :
The Object should be transportable Object(Not Local Object), i.e. it should not be saved
in Development Class/Package $TMP(Local Object).

Eligibilty2 :
Each Development should be linked with one Transport Request No.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

And Each Request No has one Task No , Which Actually carry the
Custom Developments.

Note1 : To Transport the Developments, We need to release the Corresponding


Task and Request.(Task Should be Released Before the Request) and
The copy of the development will be migrated as per the Configuration(Routings )
Defined in TMS(Transport Management System).

Note 2: Release Procedure :

Execute SE09 -> Right Click on the Task and Click On Release Directly Option
And repeat the same for Transport Request No Also.

8. What is Naming Standards and how it helps in Custom Development ?

Naming Standards Contains the rules to Provide the Names


For all the Custom Developments and the Declarations etc.

Ex:
Custom Program Names,
Custom Table Names,
Custom Data Elements , Domain Names,
Functional Module Names etc.

Note : This is the First Document you receive when You join in any Project.

Objective :
The purpose of this document is to articulate a common set of standards and procedures
for naming, development, and documentation of custom solutions with the goal of
maximizing the quality, value and maintainability of each custom solution.

SAP OBJECT NAMING CONVENTIONS

FUNDAMENTAL RULES

As of Release 4.0, SAP customers and partners can obtain their own namespace for their
customer developments, which are to be delivered to independent third parties. Thus
naming conflicts can be avoided during the delivery.

Development Namespaces

Standard SAP Partner/Customer

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

A – X, 1 – 8 Before 4.0: Z_
As of 4.0: /<3 – 8 digits>/

Ex : /EMAX/ - For all eMAX Custom Developments.

Reference(Source) Tables for all Naming Conventions:

PROGRAM TYPES

C Conversion
D Data Warehouse
G General Functionality/Other
I Inbound Interfaces
O Outbound Interfaces
F Inbound/Outbound Interfaces
P Print Program (SAPScript)
N Include
R Report
S System Maintenance
T Data Dictionary Maintenance
U User Exit/Validation Subroutine Pool
X Temporary, Demo or Test programs

Work Streams and Process Streams

HR HumanResources
MM Materials Management
FI Finance
SD Sales Distribution
PP Production Planning
BW BusinessInformationWarehouse
APO Adnace Planner &Optimizere etc..

General Naming Conventions:

Position Description
1–5 Name Space(/EMAX/)
6 -7 Process/Module (MM/SD/HR)

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

8 Program Type
9 – possible length descriptive text;
it is recommended to start with an underscore
‘_’ In general use only Characters, Digits and
underscore (and slash for Namespace) for
Object Identifiers to avoid problems (for
example conflicts with wildcard characters,
codepages etc.)

Note : In Realtime we receive a Document with all these details, we need to

Simply follow the Same While Creating the Custom Development Objects.

9. What is the Coding Standards and how it helps in Custom Developments?


Coding Standards are the rules to develop the Source Code.
The Objective of the Coding Standards are to Delivery the Quality Source Code.

Note : Even though each project has their own Coding Standards , all most
All the project follows the Similar coding Standards Because it
Contains Dos and Don’ts.

Program Internal Objects Naming Conventions

Internal program objects, such as variables, have to adhere to the following naming
conventions, regardless if they occur in Reports, Methods, Workflow, etc.

Program Element Use Syntax


Types General TY_*
Constants General C_*
Variable Counters CNT_*
Flags FLG_*
Sums SUM_*
All others V_*
Data references Dynamically created DR_
data objects
Object references ABAP Objects O_
Interface references ABAP Objects IF_
Field-Symbols Dynamic symbol <*>
Structures All kinds of work areas WA_* or REC_* (or
STRUCT_*)
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Program Element Use Syntax


Internal tables Internal tables:
- Standard table I_*
- Sorted table IS_*
- Hashed table IH_*
Copy of database table Y_* or Z_*1
Ranges General R_*
Local declaration Statics ST_*
All others L_xxx_*
xxx prefix (e.g. CNT, TY, I,
etc.)
Select Options in selection-screens S_*
Parameters in selection-screens P_*
- Radio Buttons RB_*
- Check Boxes CB_*
Other Screen Elements - Push Buttons PB_*
(Dynrpo) - Radio Buttons RB_*
- Check Boxes CB_*
- Controls for tabstrip TS_*
- Controls for TC_*
tablecontrol OK_CODE
- OK - Field
Formal parameters interface of FORM FP_*
routines
Local classes ABAP Objects LCL_*
Local interfaces ABAP Objects LIF_*

Note: The asterisk in the table above signifies a descriptive name of your choosing.
Consider using an underscore (_) to connect multi-word variable.

MANDATORY ABAP RULES

Developments will be inspected by QA after these mandatory rules.

Every object must be checked against this list of rules before it is delivered. This Process is
ensured by the QA(Quality Analyst) from ODC(Offshore Development Center).

Violations against this list of Mandatory rules must be analyzed and Documented.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

Development
process
Use the code inspector or the extended syntax check and fix all
errors and warnings.
Use available consistency and layout check features in the screen
painter and menu painter and fix all errors and warnings.
SAP-delivered objects, including tables, ABAP programs, Dynpros,
SAP transactions, etc. cannot be modified according to the current
Program Modification Policy.
Re-usability
Program logic, which is a candidate for reusability has to be made
available to other programs by defining them with the function
builder or class builder.
Program
structure
Use the standard pattern for all programs – Use header part of the
standard pattern for all other development objects containing ABAP
source code.
Program logic must be structured, simple and short:
1. Declaration including class definition (possibly in TOP include)
2. Main Processing
- Read data and store in internal data objects (e.g. int. table)
- Process data
- Output data
3. Subroutines / class implementation (possibly in include)
Don't mix code and declaration in the processing part.
Use pretty printer.
Keep program length to a minimum. Each program should handle
one discrete problem.
Start each new command or clause on a new line. Do not put
multiple commands on the same line. If a statement continues past
one line, indent all subsequent lines.
Skipped lines and indention should be used to promote clarity
between sections of code as well as between definitions and
processing. Keep logical sections together by using empty lines or
comment lines.
In every program a default message class must be specified.
Data
declaration
Global data must be encapsulated in a TOP-Include in general. The
include name should be the same as the program name with the
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

suffix ‘_TOP’. Exceptions are small programs.


Data objects must be declared with an appropriate reference to a
DDIC TYPE or a program internal TYPE. Don't define data objects
with the option LIKE.
The TABLES statement is not allowed except for a DYNPRO
interface.
Don't use literals – always use constants.
Internal tables must not have header lines. Also, don't use the
addition OCCURS as it is no longer supported in the ABAP OO
context. Use INTIAL SIZE instead.
Only specify an INITIAL SIZE for small internal tables (< 4kB of
data) where the number of expected rows is known, otherwise omit
this addition.
Internal tables must be defined with the appropriate table type based
on usage (HASHED, SORTED, STANDARD).
Follow the naming conventions for all internal program objects as
per chapter 'Naming conventions for program internal objects'.
Always keep the SAP names. DO NOT “translate”. If you need the
same type of data from different tables like document numbers for
different documents, prefix the name with the table name like:
WA_VBAK_VBELN “Sales Order No.
WA_LIKP_VBELN “Delivery No.
Multi language
capability
Use text elements, selection texts and messages to define language
specific text. Do not use literals or constants for texts. Allow
translatability:
Modularization
Keep the main program short: Work with reusable, structured and
small FORMS or METHODS – Even if they are not re-used
(INCLUDES are not modularization units).
Repetitive code must be put into a modularization unit. The choice
of modularization unit must take reusability into consideration
(reuse library)
Use self-explanatory English names for modularization units such
as subroutines, methods, etc. Use underscores (_) to connect multi-
word modularization unit names.
Subroutine interface parameters (formal parameters) must be typed.
Don't pass an internal table using the TABLES addition of the
FORM / PERFORM statement because they have no header line
and a header line will automatically be created – use the addition
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

USING or CHANGING instead.


Don't use global variables in subroutines. Always pass actual
parameters to the subroutine.
Do not use unreleased SAP function modules, which do updates to
SAP standard tables. Be aware that SAP function modules not
released for external use can be changed by SAP without further
notice.
External PERFORM must NOT be used.
Don't use INCLUDE in methods. Use private methods for
modularization in BADIs.
Don't use macros as they reduce readability and make debugging
more difficult
When defining a new function module: Don't use the “TABLES”
section in the function module interface. Instead use DDIC table
types as importing, exporting or changing parameters.
Documentation
EMAX program Every program object must begin with a program header. This
header includes all objects containing ABAP source code (e.g. Reports,
Includes, function modules, etc.)
Copied programs shall have a reference to the cloned program.
Declaration All data objects must be documented.
Modularization All internal modularization units including their interface (FORMS,
units METHODS) must be documented with a short description.
Source code Source code must be documented every 15-25 lines: Don't repeat
the source code in the documentation, explain in business language.
Modifications Document all code modifications (custom programs and SAP
programs): Update the change history in the program header and
document each change. See examples in chapter
'Recommendations'.
Dependent If there are objects that are related to the same development, then
objects they should be listed in the header comment, this is especially
relevant for Workplace developments.
For programs and routines that are called from specific locations,
including user exits, the documentation must indicate the calling
program or routine.
Operations
COMPUTE Don't use COMPUTE statement as well as “ADD”, “DIVIDE”, etc.
to make code more readable → X = X + 2.
IMPORT Use IMPORT/EXPORT TO/FROM MEMORY only if no other
EXPORT technique is available for data exchange. Always use the addition
ID. It must be documented where data is used (IMPORT: Where
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

was data exported, EXPORT: Where will data be imported).


Also, use a business term for the Memory ID.
IF – CASE For better readability, use CASE instead of IF, especially if more
than 4 different values are checked. To optimize IF and CASE
structures, always test values in order of the likelihood of each
value occurring.
General
Obsolete Don't use obsolete statements or obsolete variants of statements (see
Statements online help for details)
Rule: Avoid using ABAP language, which is not supported in the
ABAP Objects context.
SQL
Follow the "golden rules" for SQL programming:

Keep hit-set small • Use good (possibly positive)


WHERE clause
• Do not use SELECT ...
CHECK ... (incorporate CHECK
into WHERE clause)
• Do not use SELECT without
WHERE clause for tables that
grow constantly (BSEG, MKPF,
VBAK, etc.)
Keep amount of data • Do not use SELECT * (use
to be transferred small SELECT f1, f2, etc. )
• Use aggregates (SUM, AVG,
etc.)
• Update only the fields, which
have been changed
Keep number of DB • Do not use SELECT ... APPEND
accesses small ... ENDSELECT (Use array
operations (e.g. INTO TABLE)
• No SELECT within loops (load
data into int. table and read
record with READ TABLE ...
WITH TABLE KEY ...)
• Do not use UPDATE, INSERT,
etc. within loops (use UPDATE,
INSERT, etc. FROM
TABLE ...)

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

Keep overhead in DB • Use of primary or secondary DB


small index appropriately
Avoid unnecessary • No re-reads
DB accesses • Use table buffering
• Don't ORDER BY (sort data in
internal table e.g. by using a
SORTED internal table)

Avoid using 'SELECT … INTO CORRESPONDING FIELDS' as


the associated overhead with 'CORRESPONDING FIELDS' could
be significant.
Check the return code after every SQL statement
NEVER use native SQL.
NEVER update SAP standard DB tables in custom programs.
When creating a program that writes new or updates existing
records you MUST secure that your program handles DB commits
at a reasonable frequency.
Do not create lock objects for SAP standard tables
Working with
internal tables
Direct access to an internal table within loops must be optimized by
enabling hashed- or binary search (READ TABLE ... WITH
TABLE KEY or LOOP ... WHERE)
Error
Handling
All programs must include proper error handling to avoid
undesirable terminations. This means that the return code (SY-
SUBRC) must be checked after every statement in the program that
changes it.
Always handle all exceptions of a function module call. Only if it is
ensured, that the function module actually issues messages, handle
the exceptions with the default message statement. Otherwise
handle all exceptions with your own error messages.
In dialog programs, to handle a lock entry failure, raise an error
message (type E) preventing any further progress but leaving the
user on the current screen. The user can take an alternative action or
continue to try to lock the object. To minimize the impact on users,
limit retries.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Rule OK

DDIC
If no special requirements exist for maintenance of custom table
contents always create the table maintenance and associate a
transaction code.
Dynpro
programming
Use Data Dictionary names (short, medium, long) for field text on
screens where applicable.
Use 'SAVE_OK_CODE' as the field name when saving the OK
Code field. It is recommended that you use a backup version of the
OK Code field to avoid sending a screen that already has a function
code.
Screen numbering must follow functionality, such as:
9000 – Initial screen
9100 – Block 1
9110 – Sub-functionality of Block 1
9120 – Sub-functionality of Block 1
Selection
screen design
Screen numbering for additional selection screens has to follow
rules for regular dynpros.
Report output
design
Include the following information in the output list to give users a
clear indication as to what the report consists of:
• End-User Reports: selection criteria, entries found,
requester, report name, date/time, exceptions, parameters,
etc.
• Conversion/Interface Reports: number of records read,
number of records processed, number of records written,
date/time, transactions posted, etc.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Coding Guidelines(Standards) :

ABAP Programming Hints and Examples :

Category Hints and recommendations


Working with internal Working with field-symbols increases the performance by 30%-
tables: Field-Symbols 50% when processing internal tables:

DATA: i_customer TYPE SORTED TABLE OF ty_customer


WITH UNIQUE KEY kunnr.

FIELD-SYMBOLS: <cust> TYPE ty_customer.

LOOP AT i_customer ASSIGNING <cust>.


WRITE: / <cust>-KUNNR,
<cust>-NAME1.
ENDLOOP.

Working with field-symbols increases the performance when


updating internal tables. Also no modify is required.

CONSTANTS: c_x TYPE char1 VALUE 'X'.

DATA: i_customer TYPE SORTED TABLE OF ty_customer


WITH UNIQUE KEY kunnr.

FIELD-SYMBOLS: <cust> TYPE ty_customer.

LOOP AT i_customer ASSIGNING <cust>.


<cust>-MARKED = c_x.
ENDLOOP.

Internal table types Overview

Table type Usage

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


STANDARD Memory dump; no sorting, no reading
required, fill sequentially, process sequentially,
access time linear
SORTED Sorted output, unique/non-unique key possible,
performance optimized read/loop with
partial/full key, access time logarithmic
HASHED Look-up table, unique key only, performance
optimized reads with partial/full key, access
time constant

Catching system- Catching a "short-dump"


exceptions
CATCH SYSTEM-EXCEPTIONS ARITHMETIC_ERRORS = 5.

v_res = v_fact_save = v_fact.


v_fact = v_fact – 1.
DO v_fact TIMES.
v_res = v_res / v_fact. "<- COMPUTE_OVERFLOW
v_fact = v_fact – 1.
ENDDO.

ENDCATCH.

IF sy-subrc = 5.
WRITE: / TEXT-001. "'Overflow!
ELSE.
WRITE: / TEXT-002,
v_fact_save,
TEXT-003,
v_res.
ENDIF.

Note: List of catchable exceptions: See Help.


CALL FUNCTION error When a function call is inserted into the source code using the
handling pattern button, then default error handling is copied as follows:

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-
MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


Replace default message statement with specific error handling.

e.g.

CASE sy-subrc.
WHEN 1.
MESSAGE e006(/emax/msgid) WITH v_storage.
* Packing Storage type & does not exists
WHEN 2.
...
ENDCASE.

Performance optimized Keep the hit-set small:


SQL Don't access records from the DB to the application server memory,
which is are not used for further processing.
Don't Do

SELECT CARRID CONNID SELECT CARRID CONNID


FROM SBOOK INTO FROM SBOOK INTO
WA_SBOOK. WA_SBOOK
CHECK: WHERE CARRID = 'LH'
WA_SBOOK-CARRID = AND
'LH' AND CONNID = '0400'.
WA_SBOOK-CONNID = ENDSELECT.
'0400'.
ENDSELECT.

Performance optimized Keep amount of data to be transferred small:


SQL Don't transfer data from the DB to the application server memory,
which is not used for further processing
Don't Do

SELECT * SELECT DOMNAME


FROM DD01L FROM DD01L
INTO WA_DD01L INTO WA_DD01L-
WHERE DOMNAME LIKE DOMNAME
'CHAR%' WHERE DOMNAME LIKE

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


AND AS4LOCAL = 'A'. 'CHAR%'
ENDSELECT. AND AS4LOCAL = 'A'.
ENDSELECT.

Performance optimized Keep number of DB accesses small


SQL Transfer data from DB server to application server at once. Multiple
smaller transports are more expensive.

Don't Do

DATA WA_T006 TYPE T006. SELECT *


CLEAR I_006[]. FROM T006
SELECT * INTO TABLE I_006.
FROM T006
INTO WA_T006.
APPEND WA_T006 TO
I_006.
ENDSELECT.

Performance optimized Keep number of DB accesses small


SQL Avoid SELECT SINGLE ... between LOOP and ENDLOOP,
especially for larger tables (>100 rows). It is more efficient to load
data from multiple DB tables into internal tables and process them
in the application server memory.

Don't Do

DATA:
I_SFLIGHT TYPE TABLE FIELD-SYMBOLS:
OF SFLIGHT, <SF> TYPE SFLIGHT,
WA_SPFLI TYPE SPFLI. <SP> TYPE SPFLI.

FIELD-SYMBOLS: SELECT * FROM SFLIGHT


<SF> TYPE SFLIGHT. INTO TABLE I_SFLIGHT.

SELECT * FROM SFLIGHT SELECT * FROM SPFLI

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


INTO TABLE I_SFLIGHT. INTO TABLE I_SPFLI
FOR ALL ENTRIES
LOOP AT I_SFLIGHT IN I_SFLIGHT
ASSIGNING <SF>. WHERE CARRID =
I_SFLIGHT-CARRID
SELECT SINGLE * AND CONNID =
FROM SPFLI I_SFLIGHT-CONNID.
INTO WA_SPFLI
WHERE CARRID = LOOP AT I_SFLIGHT
<SF>-CARRID ASSIGNING <SF>.
AND CONNID =
<SF>-CONNID. READ TABLE I_SPFLI
ASSIGNING <SP>
ENDLOOP. WITH TABLE KEY
CARRID = <SF>-CARRID
CONNID = <SF>-
CONNID.

ENDLOOP.

Performance optimized Keep number of DB accesses small


SQL If possible try to retrieve the data with one SQL statement (e.g.
JOIN, sub query, etc.). Avoid nested select statements.

Don't Do

SELECT * SELECT P~CARRID


FROM SPFLI P~CONNID
INTO WA_SPFLI. S~FLDATE
INTO TABLE I_FLI
SELECT * FROM SPFLI AS P
FROM SFLIGHT INNER JOIN SFLIGHT AS F
INTO WA_SFLIGHT ON P~CARRID =
WHERE CARRID = F~CARRID
WA_SPFLI-CARRID AND P~CONNID =
AND CONNID = F~CONNID.
WA_SPFLI-CONNID.
ENDSELECT.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


ENDSELECT.

Performance optimized Keep overhead in the DB small


SQL Always take advantage of existing DB indexes. Use a good and
simple where – clause: Positive (=, >, <, etc.). Make sure an index
can be used from the left to the right.

If no index can be used, then the DB system executes a full table


scan.

Don't Do

DATA: WA_MSG TYPE DATA: WA_MSG TYPE


T100. T100.

SELECT * SELECT *
FROM T100 FROM T100
UP TO 1 ROWS UP TO 1 ROWS
INTO WA_MSG INTO WA_MSG
WHERE SPRSL = SY- WHERE SPRSL = SY-
LANGU LANGU
AND MSGNR = '999' AND MSGNR = '999'
AND ARBGB <> 'V0'. AND ARBGB = 'V0'.

ENDSELECT. ENDSELECT.

Performance optimized Avoid unnecessary DB accesses


SQL
The access time is accelerated if buffered tables are accessed.

The following statements cannot use SAP table buffer support:

- BYPASSING BUFFER
- ORDER BY
- SELECT DISTINCT
- JOIN and SUBQUERIES
- aggregate functions (e.g. SUM, AVG, MIN, MAX.)
- WHERE ... IS [NOT] NULL

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations

Don't Do

SELECT DISTINCT * SELECT SINGLE *


FROM T100 FROM T100
INTO T100_WA INTO WA_T100
WHERE SPRSL = 'D' WHERE SPRSL = 'D'
AND ARBGB = '00' AND ARBGB = '00'
AND MSGNR = '999'. AND MSGNR = '999'.
ENDSELECT.

SQL – Existence-check Check DB table for existence of rows for a given condition.

Don't Do

SELECT SINGLE DATA:


COUNT( * ) V_TABNAME TYPE
FROM DD02L TABNAME.
WHERE MASTERLANG =
'E'. SELECT TABNAME
INTO V_TABNAME
FROM DD02L
UP TO 1 ROWS
WHERE MASTERLANG =
'E'.
ENDSELECT.

Note: Our example uses a DB table with 150000 rows. The UP TO


1 ROWS example is 600 times faster.
LUW control Check return code after inserts, updates, delete and modify.
Avoid implicit commit:

UPDATE sflight
SET seatsocc = seatsocc + 1
WHERE carrid = c_lufthansa.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


IF sy-subrc = 0.
COMMIT WORK.
MESSAGE s009(bc_bor).
* Change successful
ELSE.
ROLLBACK WORK.
MESSAGE i008(bc_bor).
* Error when changing
ENDIF.

LUW control Updates are carried out by function module in update task:

* Log V1 update module in LUW


CALL FUNCTION 'Y_UPDATE_SFLIGHT'
IN UPDATE TASK
EXPORTING
im_sflight = wa_sflight.

* Start update task


COMMIT WORK.

FUNCTION y_update_sflight.
*"----------------------------------------------------------*"*"Update
function module:
*"
*"*"Local interface:
*" IMPORTING
*" VALUE(IM_SFLIGHT) TYPE SFLIGHT
*"----------------------------------------------------------
UPDATE sflight FROM im_sflight.

IF sy -subrc <> 0.
MESSAGE a008(bc_bor). " <-- ROLLBACK if called in
" update task
* Error when changing
ENDIF.

ENDFUNCTION.

LUW control When creating a program that writes new or updates existing
records you MUST secure that your program handles DB commits

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


at a reasonable frequency.

As a general rule, you should do a commit every 1000 or 10 000


records. If your program is running for a long period of time
without doing a commit, the database and eventually the whole
system will be deadlocked. Shutting down the system is the only
option left to terminate the execution as your program consumes all
resources.

Regarding commit be aware of the enqueue / dequeue logic for


table locks and ensure that only consistent data is updated with
commit work!
Calculations When performing calculations in ABAP, the amount of CPU time
used depends on the data type. In very simple terms, Integers
(type I) are the fastest, Floating Points (type F) require more
time, and Packed (type P) are the most expensive. Normally,
Packed number arithmetic is used to evaluate arithmetic
expressions. If, however, the expression contains a floating point
function, or there is at least one type F operand, or the result field
is type F, floating point arithmetic is used instead for the entire
expression. On the other hand, if only type I fields or date and
time fields occur, the calculation involves integer operations.

Since floating point arithmetic is relatively fast on SAP hardware


platforms, it should be used when a greater value range is needed
and rounding errors can be tolerated.

Rounding errors may occur when converting the external (decimal)


format to the corresponding internal format (base 2 or 16) or
vice-versa.

Operations Avoid MOVE-CORRESPONDING wherever possible:

Moving identical structures:


Avoid Better
MOVE-CORRESPONDING struct_yyy = struct_xxx.
struct_xxx TO struct_yyy.

Moving identical internal tables (without header lines)


Recommendation
i_yyy = i_xxx.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations

Moving identical internal tables (with header lines)


Recommendation
i_yyy[] = i_xxx[].

CHECK Avoid CHECK within user-exits

Avoid Better

CHECK sy-subrc = 0. IF sy-subrc = 0.


PERFORM ...
ENDIF.

CHECK sy-subrc = 0
is the same as
IF sy-subrc <> 0. EXIT. ENDIF.

→ Negative result of a CHECK leaves the processing block or


modularization unit (e.g. FORM, FUNCTION MODULE,
EVENT), unless CHECK is within a loop (LOOP ... ENDLOOP,
SELECT ... ENDSELECT). Especially within INCLUDE
programs, CHECK may be dangerous.

Hint: If it is desired to leave a processing block, use RETURN

DESCRIBE Checking if an internal table is empty

Don't Do

DESCRIBE i_xxx LINES IF i_xxx IS INITIAL.


v_lin.
IF v_LIN = 0. ENDIF.
...
ENDIF. *) i_xxx has no header line

FREE / CLEAR / Deleting rows of an internal table


REFRESH
Internal table is no longer used (memory can be released)
Do

FREE i_xxx.
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations

Internal table is used again


Don't Do

FREE i_xxx. CLEAR i_xxx.

*) i_xxx has no header line

TABLES Don't use the TABLES statement (except for Dynpro interface)

Example: Referencing table work areas in SELECT-OPTIONS


Don't Do

TABLES: KNA1. DATA:


V_KUNNR TYPE KNA1-
SELECT-OPTIONS: KUNNR.
S_KUNNR FOR KNA1-
KUNNR. SELECT-OPTIONS:
S_KUNNR FOR V_KUNNR.

CONSTANTS Use self explaining constant names

Don't Do

CONSTANTS: CONSTANTS:
C_7512 TYPE KSCHL C_COND_TYPE_DISCOUN
VALUE '7512'. T
TYPE KSCHL
VALUE '7512'.

RANGES Use ranges without header lines

Don't Do

RANGES: DATA:
r_matnr FOR MATNR. R_MATNR TYPE RANGE
OF MATNR,
WA_R_MT LIKE
LINE OF R_MATNR.
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations

REPORT Statement Always define a message class in the REPORT statement:

REPORT /EMAX/RGTIST_TEST_PROG
NO STANDARD PAGE HEADING
LINE-SIZE 164
LINE-COUNT 65(2)
MESSAGE-ID /EMAX/RGTIS_TST_MCLSS.

MESSAGE in function Use MESSAGE ... RAISING <exception> in Function modules.


modules The calling module should handle exceptions and process
messages. Don't use MESSAGE otherwise in RFC function
modules (the message statement has no effect in these
circumstances).
MESSAGE within Issuing a MESSAGE within SELECT ... ENDSELECT loops will
SELECT ... ENDSELECT produce a short-dump. When the data is still needed after the select,
use SELECT ... INTO TABLE ... and do checking after the select.
If the data is not needed after the select, do checking within the
SELECT ... ENDSELECT loop but send messages thereafter.
MESSAGE design If you define messages the long text should help the user to analyze
the situation and solve possible problems. Be specific enough.

If a message does not require a long-text, then mark it as 'self-


explanatory'.

For reasons of translation do never combine text-elements to create


a sentence. Sequence of words in a sentence might be completely
different in another language.
Documentation All form routines should have an initial remarks section where you
describe:
• What the form routine does
• Input/output parameters

*&-----------------------------------------------------------------*
*& Form GET_LAST_RUNDATE_TIME *
*&-----------------------------------------------------------------*
* This form is to read table ZZLRT where last run time and date *
* of this ABAP program is stored. *
*------------------------------------------------------------------*
* Parameters / Tables: *
* --> FP_JOBID Job name used to run this ABAP *

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


* <-- FP_REPID ABAP name *
*------------------------------------------------------------------*
FORM GET_LAST_RUNDATE_TIME
USING
FP_JOBID TYPE ty_jobid
FP_REPID TYPE sy-repid.

...

ENDFORM “Form GET_LAST_RUNDATE_TIME

Program Modifications All program revisions (changes) must be well documented


according to the following rules. Revisions should be documented
at the beginning of the program as in the program template

Single line changes:


Copy the line and convert the original line to a comment line and
note it with the revision number. Make the changes and then also
mark the new line with the revision number.

FORM GET_LAST_RUNDATE_TIME
USING
FP_JOBID TYPE ty_jobid "MOD-001
FP_REPID TYPE sy-repid.

Multiple line changes:


Add a comment line at the beginning and the end of the block to be
changed, this comment should contain the revision number and
Start/End of changes. The block to be changed should be copied.
The original statements should be commented out, then changes
should be made in the copied block of code.

FORM GET_LAST_RUNDATE_TIME
USING
*MOD-001 BEGIN: <DESCRIPTION OF CHANGE>
FP_JOBID TYPE ty_jobid
FP_REPID TYPE sy-repid.
*MOD-001 END

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Category Hints and recommendations


Revision comments during development changes are not helpful.
Too many revision comments make program harder to read.

Note: Modification numbers have to be unique within a function


group or global class. Therefore a list of modifications for the
function group must be placed in the top include.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

10. What is Code Review ?


Before we send the source Code for testing , it should be reviewed First to avoid
the frequent changes in the Source Code.

Code Should be reviewed by another Sr.Team Member.


The Objective of the Source Code is to make sure that the Custom
Program should follow both Naming and Coding Standards.

11. What are the Different Types Of Projects in SAP ?


There are three types Of Projects in SAP.
a. Implementation Project
b. Upgradation Project
c. Support Project

Implementation Project :

SAP Project which starts from the Scratch i.e. Moving to the SAP Software from the
Old System.

Which Contains all the below activities

a) Configure the SAP System according to the Client’s Organizational Unit.


b) Gather the requirements from the end users and Fix the GAPs(the differences between
the Customer requirement and the solution offered in SAP ) and Prepare the
Functional Specification.
c) Develop the Solutions either through configure the System or through
Custom Developments(Programs).
d) Test the Configuration or Programs.
e) Transport the Custom Developments to Quality/Testing Server.
f) Test custom developments again in the Testing Environment and transport it
g) Transport it from Testing Server to Production Server.(Go-Live)
h) End User Training.

Upgradation Project :

It Starts , After Completing the First level Implementation , for the further
Developments and also to Change the Custom Programs to improve the Performance of
the Programs and to Move from Current SAP Version to the Latest Version.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Activities :

1) Develop the Custom Developments to meet the new Customer Requirements.


2) Change the Existing Programs to Improve the Performance of the Custom Programs.
3) Testing and Transportation is required here also.

Support Project :

Note : This Phase Starts after Go-Live.

The Projects , which supports the Client after Implementation. This is


Post Go-live Activities.

Activities :

1) Provide the 24 * 7 Support to the Client/Customer’s Day-to-Day Business.


2) Analyze the Tickets/Issues .
3) Solve the Tickets by changing the related Development.
4) Test it and Migrate it

10. Whom to you Communicate for the Issues / More information


About Functional Specification ?

To the Functional Owner (Functional Consultant ) who prepared the Functional


Specification.

11. When do you Communicate with End Users ?


Ans : In the Ideal Cases, The ABAPers Never Communicate to the end users from Off-
shore. ABAPer Often Communicate with them from Onsite
To check the technical feasibility of the user requirements .

12. What is Go-Live Activity ?


Go-Live is the Activity of transporting custom Developments from
Testing Environment to the Production Environment.

13. What is Full Life-Cycle Implementation ?

Full Life-Cycle Implementation is ,


Transport the Custom Developments from Development to Testing and from
Testing to Production.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

So that , in One Project Implementation , We can Many Full-Life Cycle Implementations.

Ex : Migrating all the SD Custom Developments to Production ,(Cycle1)


Migrating all the MM Custom Developments to Production , (Cycle2)
Migrating all the FI Custom Developments to Production (Cycle3), etc.

14. What is Change Request ?


It is not the different type of transport request no.
And it is not at all a transport request.
The Functional Specification for the custom Development is Called
Work Request and if the Specification is Changed to meet the additional requirements
then we call
Changed Specification as Change Request.

15. What is the time required to Develop a Report ?


It Completely depends on the Complexity of the Report.

It Can Start from 1 Days to <n> Days.


In General ,
The Low Complexity report takes 1 to 3 Man Days,
The medium Complexity report takes 4 to 7 Man Days,
The medium Complexity report takes 7 to <n> Man Days.

16. What is Onsite and Offshore ?

Onsite : Is the Client’s Place. Some Functional Consultants and Senior


Technical(ABAP) Consults works here.

Role of Functional Consultants :

a) Functional consultants Customize the SAP System i.e. Define the Client’s
Organization Structure in SAP.

b) The Functional Consultants Discuss with the End Users and Gather the requirements
and Analyze them and Suggest the already available Solutions in SAP and train them on
the same at end of the Project Implementation through End User Training.

c) Functional Consultants Fix the GAPs (The Differences Between the Current
Requirements and the Solutions available in SAP, Because the SAP Solutions may fit to
the User Requirements Exactly.

d) Document the Above requirement i.e. FS(Functional Specification).

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

e) Test the Custom Development with Functional Test Cases and also Prepare the Test
Data .

ODC(Offshore Development Center ) :

Is the Software Organization which implements SAP for the Clients .


Ex: Satyam Computers, Infosys, CAP Gemini etc..

17. What is Issue Log ?


Ans : It is the Document to Log all the Issues

SNO ISSUE DEVLOPVER RESOLUTION DATE


1 28.06.07

And the Same will be sent to the Onsite for Resolution.

18. What is Flow of Work in your Project ?


Ans : It Includes all the area where the ABAPer Involves.

 Receive the Functional Specification from Onsite.


 Either we receive the FS Directly from the Technical Consultant through Mail or we need
to Download the Same from the Client’s Site If Available.

 Analyze the FS and Prepare the Brief and Detailed Technical Specification.

 Log the Issues in a Issue Log. (an EXCEL Document to Maintain the Issues) and Send
the same to the onsite.

 Send the TS to Onsite for Validation .Start the Coding Simultaneously.

 Discuss with Onsite people for the Issues Clarification if the Issues not resolved in time.
(When the Issue is not turned back from Onsite with Solutions in Time).
 After Completion of the Source Code,
o Send it for Code Review and Prepare the other Delivery Documents
 Rework after Code review and Quality Check and Complete it.
 Inform to your team lead about the Completion of the Same
So that we can ask the Onsite People for Testing.
 Rework After Testing if Any.
 Release the Custom Development (Corresponding Request No) .

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

19. Who is your Team Lead , Project Lead, Project Manager ?


Ans : If Possible, try to gather the Correct information. If it is
Really difficult to gather then give Some other friends details who can handle the
situation effectively.

20. Explain the Tickets in Support Projects ?

Ans : The Issues that takes place after Go-Live(Support) are Called Tickets.
Tickets come into Picture in Support Projects Only.

Note :The Tickets are divided into the below types base on their Complexity.

1. Critical.
2. Urgent.
3. High.
4. Medium
5. Low.

The response times and resolution times again are defined based on the clients
requirement and the charges and .

1) First Level Ticketing:

Not severe problem. Routine errors. Mostly handled by Service desk arrangement of the
company (if have one).

Eg: a) Say Credit limit block in working on certain documents?


b) Pricing Condition Record not found even though conditions are maintained?
c) Unable to print a delivery document or Packing list?

Note : In the 4th phase of ASAP Implementation Methodology( i.e. Final Preparations for
GO-LIVE) SAP has clearly specified that a Service desk needs to be arranged for any
sort of Implementation for better handling of Production errors.

Service desk lies with in the client.

2) Second Level Ticketing:

Some sort of serious problems. Those Could not be solved by Service Desk. Should be
referred to the Service Company .

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

Eg: a) Credit Exposure (especially open values) doesn't update perfectly to KNKK Table.

b) Inter company Billing is taking a wrong value of the Bill.


c) Need a new order type to handle reservation process
d) New product has been added to our selling range. Need to include this into SAP.
(Material Masters, Division attachments, Stock Handling etc.)

3) Third Level Ticketing:

Problems could not be solved by both of the above, are referred to Online Service
Support (OSS) of SAP Itself. SAP tries to solve the Problem, sometimes by providing the
perfect OSS Notes, fits to the error and rarely SAP logs into our Servers (via remote log-
on)for post mortem the problem. (The Medical check-up client, connections, Login id
and Passwords stuff are to be provided to SAP whenever they need or at the time of
opening OSS Message.)

There are lots of OSS Notes on each issue, SAP Top Notes and Notes explaining about
the process of raising a OSS Message.

Sometimes SAP Charges to the client / Service company depending on the Agreement
made at the time of buying License from SAP.

Eg: 1) Business Transaction for the Currency 'EUR' is not possible. Check OSS Note -
This comes at the time of making Billing.
2) Transaction MMPI- Periods cannot be opened – See OSS Note.

There are many other examples on the issue.

4) Fourth Level Ticketing:

Where rarely, problems reach this level.

Those problem needs may be re-engineering of the business process due to change in the
Business strategy. Upgradation to new Version.

27) What is Extended Program Check(EPC) ?

Ans
Doing an EPC would ensure the removal of mistakles we tend to overlook when we do the code-
walk-through or initial testing.
The program, although syntactically correct may have some unnecessary code, unused variables

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

etc.

EPC, advantages are

With the help of EPC we can find out the


1. Absolete(Out Dated) stmts
2. Authorization checks
3. Problematic Statements
4. Any hidden messages
through this we can increase the consistency of the program and the performance can also be
increased.

For this Execute SE38 then program then check  EPC

Difference Between EPC and Code Inspector :

Code inspector is the tool that gives you a picture of what could be the pain points in terms of
performance of the program. It tells you the execution time, etc, that determine the performance
of the program.

SCI Checks for the following:

1)Syntactical check
2)Security check
3)Performance check
4)Search Function

Extended Program Check give information of the possible errors that can cause a short dump
of the program during execution like Call function interface errors, Program interface errors,
etc. Also info about the translations and texts is given in it

Extended Program check

1)Any obsololete stmnt used or not


2)Syntactical check
3)Any unused code in the program like routines

28) What is ASAP Methodology ?


Ans : The ASAP solution was developed to ensure the successful, on-time delivery of a
project. SAP delivers the AcceleratedSAP (ASAP) methodology for project management and
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

system implementation.
Developed by SAP to optimize the success of implementing the SAP Business Suite, ASAP
streamlines the implementation by providing templates, methods, tools, and accelerators that
have been built on the success of thousands of previous SAP implementations.

The ASAP methodology adheres to a specific road map that addresses the following five
general phases:

1. Project Preparation, in which the project team is identified and mobilized, the project
standards are defined, and the project work environment is set up;

2. Blueprint, in which the business processes are defined and the business blueprint
document is designed;

3. Realization, in which the system is configured, knowledge transfer occurs, extensive unit
testing is completed, and data mappings and data requirements for migration are defined;

4. Final Preparation, in which final integration testing, stress testing, and conversion testing
are conducted, and all end users are trained; and

5. Go-Live and Support, in which the data is migrated from the legacy systems, the new
system is activated, and post-implementation support is provided.

ASAP incorporates standard design templates and accelerators covering every functional area
within the system, as well as supporting all implementation processes.

29. What is Code Inspector ?


Ans : The Code Inspector (transaction code SCI) is a tool for checking Repository objects
regarding performance, security, syntax, and adherence to name conventions.

Using the Code Inspector (transaction code SCI), you can check individual objects or Set Of
Objects for performance, security, syntax, and adherence to name conventions.

There are messages that are always important, that always need action,
like:
-> performance error and warning messages regarding missing index
support;
-> select single statements without fully qualified key
-> calling functions with a wrong interface (will lead to runtime
errors)
-> submitting programs and calling transactions that do not exist

-> using obsolete statements (like on change) and functions (like

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?

ws_download)
-> subroutines with not typed formal parameters
-> bad error handling: no checking of return codes after SQL statements,
CALL FUNCTION statements etc
-> inefficient internal table use (sequential access to internal tables
will lead to serious performance problems if the internal table is large
and the access is done repeatedly)

30) What is OSS Note ?

Ans : Problems could not be solved by both of the above, are referred to Online Service
Support (OSS) of SAP Itself. SAP tries to solve the Problem, sometimes by providing the
perfect OSS Notes, fits to the error and rarely SAP logs into our Servers (via remote log-
on)for post mortem the problem. (The Medical check-up client, connections, Login id and
Passwords stuff are to be provided to SAP whenever they need or at the time of opening OSS
Message.)

There are lots of OSS Notes on each issue, SAP Top Notes and Notes explaining about the
process of raising a OSS Message.

Sometimes SAP Charges to the client / Service company depending on the Agreement made
at the time of buying License from SAP.

Note : We Can check all the available OSS Notes through SAP Transaction SNOTE.

eMax Technologies, Ameerpet, Hyderabad


Ph.No: +91-40-66976727