Professional Documents
Culture Documents
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.
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.
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.
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.
Note : If you are more Confident, You can also Project yourself as a Team Lead for
a Small Team.
This is also Called as GAP (The GAP Between the Current Organization’s Requirement
and the Solutions available in SAP) .
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.
And Each Request No has one Task No , Which Actually carry the
Custom Developments.
Execute SE09 -> Right Click on the Task and Click On Release Directly Option
And repeat the same for Transport Request No Also.
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.
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
A – X, 1 – 8 Before 4.0: Z_
As of 4.0: /<3 – 8 digits>/
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
HR HumanResources
MM Materials Management
FI Finance
SD Sales Distribution
PP Production Planning
BW BusinessInformationWarehouse
APO Adnace Planner &Optimizere etc..
Position Description
1–5 Name Space(/EMAX/)
6 -7 Process/Module (MM/SD/HR)
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.)
Simply follow the Same While Creating the Custom Development Objects.
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.
Internal program objects, such as variables, have to adhere to the following naming
conventions, regardless if they occur in Reports, Methods, Workflow, etc.
Note: The asterisk in the table above signifies a descriptive name of your choosing.
Consider using an underscore (_) to connect multi-word variable.
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.
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
Category Rule OK
Category Rule OK
Category Rule OK
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.
Coding Guidelines(Standards) :
ENDCATCH.
IF sy-subrc = 5.
WRITE: / TEXT-001. "'Overflow!
ELSE.
WRITE: / TEXT-002,
v_fact_save,
TEXT-003,
v_res.
ENDIF.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-
MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
e.g.
CASE sy-subrc.
WHEN 1.
MESSAGE e006(/emax/msgid) WITH v_storage.
* Packing Storage type & does not exists
WHEN 2.
...
ENDCASE.
Don't Do
Don't Do
DATA:
I_SFLIGHT TYPE TABLE FIELD-SYMBOLS:
OF SFLIGHT, <SF> TYPE SFLIGHT,
WA_SPFLI TYPE SPFLI. <SP> TYPE SPFLI.
ENDLOOP.
Don't Do
Don't Do
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.
- BYPASSING BUFFER
- ORDER BY
- SELECT DISTINCT
- JOIN and SUBQUERIES
- aggregate functions (e.g. SUM, AVG, MIN, MAX.)
- WHERE ... IS [NOT] NULL
Don't Do
SQL – Existence-check Check DB table for existence of rows for a given condition.
Don't Do
UPDATE sflight
SET seatsocc = seatsocc + 1
WHERE carrid = c_lufthansa.
LUW control Updates are carried out by function module in update task:
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
Avoid Better
CHECK sy-subrc = 0
is the same as
IF sy-subrc <> 0. EXIT. ENDIF.
Don't Do
FREE i_xxx.
eMax Technologies, Ameerpet, Hyderabad
Ph.No: +91-40-66976727
Real Time Questions
We Never Compromise in Quality Do You?
TABLES Don't use the TABLES statement (except for Dynpro interface)
Don't Do
CONSTANTS: CONSTANTS:
C_7512 TYPE KSCHL C_COND_TYPE_DISCOUN
VALUE '7512'. T
TYPE KSCHL
VALUE '7512'.
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?
REPORT /EMAX/RGTIST_TEST_PROG
NO STANDARD PAGE HEADING
LINE-SIZE 164
LINE-COUNT 65(2)
MESSAGE-ID /EMAX/RGTIS_TST_MCLSS.
*&-----------------------------------------------------------------*
*& 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 *
...
FORM GET_LAST_RUNDATE_TIME
USING
FP_JOBID TYPE ty_jobid "MOD-001
FP_REPID TYPE sy-repid.
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
Implementation Project :
SAP Project which starts from the Scratch i.e. Moving to the SAP Software from the
Old System.
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.
Activities :
Support Project :
Activities :
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.
e) Test the Custom Development with Functional Test Cases and also Prepare the Test
Data .
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.
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) .
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 .
Not severe problem. Routine errors. Mostly handled by Service desk arrangement of the
company (if have one).
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.
Some sort of serious problems. Those Could not be solved by Service Desk. Should be
referred to the Service Company .
Eg: a) Credit Exposure (especially open values) doesn't update perfectly to KNKK Table.
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.
Those problem needs may be re-engineering of the business process due to change in the
Business strategy. Upgradation to new Version.
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
etc.
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.
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
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.
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
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)
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.