You are on page 1of 59

ISSUE DATE: 10.12.

2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1


REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Prepare a single document per object. Include relevent checklists in the


HELP document. Attach a checklist as separate worksheet
Do not change anything in this CHECKLIST.
For changes revert back to Quality Group

Worksheet Name Review Summary


Heading Description / Meaning
<Project Name> Write name of the project
Development ID Development ID - given by functional
Development Description Short Description of object in one sentence
Functional Consultant Write name of functional coonsultant
Technical Consultant Write name of Technical Consultant
Date of creation Object START date

Follows Convention Mark 'YES' if the document is created by following conventions else mark it 'NO'.
Object Name Write Program Name in this column
Worksheet Name Name here should match with the actual worksheet
Reviewer Write Name of the reviewer. Fill in this column even in case of self review
Review Status Mark this 'YES' for review, other than 'Self Review', done OR 'NO' if not done
Worksheet Name Review_Checklist (All other)
Heading Description / Meaning
Title or Description Write Title as written in program attributes
Self Review Write either 'YES' OR 'NO' for this heading - To be filled in by developer
Self Review Comment if
reqd. While doing self review, give comments to support 'Self Review' heading
Quality Review Write either 'YES' OR 'NO' for this heading - To be filled in by Quality reviewer
Quality Reviewer's CommenQuality Reviewer will write comments / remarks
Customer review Write either 'YES' OR 'NO' for this heading - To be filled in by customer
Customer comments Customer will write comments / remarks

Worksheet Description
Worksheet 1 & 2 Always to be 'Help' & 'Review Summary'
Name of worksheet = 'Report_Description': This name to be same as there in
Report_Review_Checklist 'Review Summary' work sheet - 'Worksheet Name'
Name of worksheet = 'FORM_Description': This name to be same as there in
FORM_Review_Checklist 'Review Summary' work sheet under heading 'Worksheet Name'
Name of worksheet = 'FM_Description': This name to be same as there in
FM_Review_Checklist 'Review Summary' work sheet under heading 'Worksheet Name'

Enhancement_Review_Ch Name of worksheet = 'EXIT_Description' OR 'BADI_Description': This name to be


ecklist same as there in 'Review Summary' work sheet under heading 'Worksheet Name'
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: CL/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Qaaq

GAZT VAT and Excise Implementation


Object Information
Development ID CR92
Development Description Mass communication program
Functional Consultant Vishal Jowhair
Technical Consultant Rohit Ranka
Date of creation 05.06.2018

Document List
Document Type Document Name
Functional Specification
Technical Specification
Test Document

Object List
Object Type Object Name
Report ZDR485_MASS_EMAIL_SMS_EXT
SmartForm
Class/Method

Review Details
Reviewer
Date of Review
Total Time Spent(in Hrs)
Review Status
Comments
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: CL/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Follows Convention

Worksheet Name
Report_Review_Checklist
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Object Type Report


Program Name ZDR485_MASS_EMAIL_SMS_EXT
Title or Description Mass Email SMS ext with Excel Upload

Review Check Comment in case of No


(Developer) (Developer)

Program Attributes
Is the Title or Program Description concise
and adequate? Yes
Is Type specified correct? Yes
Is the Authorization Group needed? No
Is Editor lock Switched OFF? Yes

Is Package as per the Program specification Yes

Program Overall check


Code inspector / EPC check conducted ? Yes
Have the coding guidelines been followed? Yes
Has Pretty Printer been used? Yes
Are Selection texts written with clear
meaning? Yes
Are Text symbols used for literal texts? Yes
Are meaningful messages given? Yes
Is the Reoprt Attached to Area Menu No

Modularization
Is program Modularized? Are Forms created
for modularization? Yes

Naming Convention Correct


Is Program Name as per standards? Yes
Are the variables named correctly e.g.
Parameter, Internal tables, constants, field
symbols, Types, local variables, Form
variables Yes
Underscore is the only special character used
in the naming of the variables Yes

Modification Change Management


Is program header completed (according to
the development guideline) Yes
Is Change History block written In Program
Header? NA

Is Begin of Modification / End of modification


Line Included as per standards? NA
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Comments
Is Inline Documentation done? Yes
Internal commenting has been done
sufficiently enough to ease program
maintenance and reliability of the ABAP
Program Yes

Language
Is everything in English? Yes

Authority Check
Is the program according to the project
specific authority concept? Yes

Programming Standards
Event Structure
Has the standard structure sequence been
followed?
SY-SUBRC Check

SY-SUBRC is checked after database


activities to ensure proper inputs when dealing
with tables (for example: READ, SELECT,
INSERT) and after FUNCTION CALL.
Appropriate warnings/errors are issued when
sy-subrc <> 0 /.
IF vs. Case
if CASE statement used, check if WHEN
OTHERS is used to capture unexpected
errors.
Check Vs Where
LOOP…WHERE is used instead of
LOOP/CHECK Yes
SQL
Where VS CHECK
Have conditions in the Where clause been
specified?
Is CHECK statement avoided?
SELECT INTO preferred to SELECT
APPEND ENDSELECT
Has Select Endselect been used in the
Program?
Primary Key Used
Full table key is specified for all SELECT and
SELECT SINGLE statements.
The ordering of the WHERE statements
match the arrangement of the keys in the
table records
UP TO 1 ROWS
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

This must be used only for data existence


check with SELECT / ENDSELECT UP TO 1
ROWS with not full key if full key available
then use SELECT SINGLE
Nested SELECTS and LOOPS

Nested selects and loops are avoided through


the use of dictionary VIEW and JOINS or by
using FOR ALL ENTRIES appendage to the
SELECT statement . In addition Sub selects
are preferred to Nested Selects. Have nested
selects been used in loops?
Has the parallel cursor method used where
ever nested loop is required?

Check for entries in the table before using in


FOR ALL ENTRIES - i.e. do IF NOT INITIAL
Check on table before FOR ALL ENTRIES
STANDARD SAP DATABASE UPDATE
Has Direct table update been avoided in the
program?

Internal tables

Internal Tables with header has not be used


Copying of Internal tables
Itab2 = Itab1 is preferred to
'Loop at Itab1 into lwa_Itab1.'
Lwa_Itab2 = lwa_Itab1.
Append Lwa_Itab2 TO Itab2.
Endloop.
Has the appropriate function for the copying of
internal tables been used?
Delete Itab lines
delete ITAB WHERE Field1 = …... is preferred
to
Loop at ITAB WHERE Field1 = …....
delete ITAB.
ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an internal
table use the DESCRIBE verb.
Nested Loop
Is the nested loop used

Performance
Column Selection

Is the Column Selection defined appropriately


Use of Partial KEY
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Using the total key is preferred.


If you can not give total key and you can give
former part of key, still the select is effective. If
you are specifying later part of key then it is
equivalent to non-key field, which is not
effective.
Is Pool or Cluster Tables accessed with Full
Primary Key?
Secondary Index Usage
When possible, in the WHERE clause the
fields of the INDEX are in the specified order
and linked by the logical AND with
comparisons for equality
Aggregates

To find the maximum, minimum, sum and


average value or the count of a database
column, use a select list with aggregate
functions instead of computing the aggregates
yourself. Network load is considerably less.
Distinct Vs SORT and DELETE ADJACENT
Duplicates

Distinct is preferred because the redundant


data is eliminated at the data base selection
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-indexed
fields. Consider using non-SQL ABAP
commands to sort the data in internal table.
FREE

The FREE command is used to release the


memory allocated to internal tables when the
program is finished processing the data in the
table and when the following conditions exist
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table contains
more than 500 rows
Collect
When working with internal tables, remember
that the COLLECT statement can be very
CPU intensive. For internal tables with less
than 50 entries, the COLLECT is more
efficient.
Field Symbols
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Are Field symbols used whenever required?

Error Logs
Has the proper methods used for logging the
possible errors like while processing the
form/final submit(master data errors, BAPI
errors, etc)?
Method to be used:
ZDC_FORM_PROCESS-
ADD_BRF_MESSAGE
Notifications
Has the methods used for sending notification
in form of SMS and Emails after updating the
master data?
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Yes
NA
No
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5

Review Check Comment


(Peer Reviewer) (Peer Reviewer)
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5
Page 1 of 1
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01
©Invenio Business Solutions
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type Interface


Idoc Type
Short Text for Idoc type
Message Type
Short Text for message type

Review Check
(Developer)

Interface Attributes
Is the Short Text of the idoc type concise
and adequate?
Is the Short Text of the message type
concise and adequate?

Check Package with idoc type specification

Idoc Header
Has the mapping been done properly?
Is Assumptions/Exceptions specified ?
Is objective of the Idoc is clearly specified?

Idoc Overall check


Do you have the Code inspector / EPC
check conducted ?
Have the coding guidelines been followed?
(0=no, 1=rouhgly,2=nearly,3=yes)
Has Pretty Printer been used?
Are Selection texts written with clear
meaning
Are Text symbols used for literal texts?
Are meaningful error messages given?
Wrapping lines - break at keywords, comma
or an operator
For bigger program blocks (e.g. IF…ENDIF)
- Is a Comment inserted in the end line
referencing the beginning line
Is CHECK statement avoided?

Naming Convention Correct


Is the Idoc Type as per standards?
Are the Message types as per standards?
Are the variables named correctly e.g.
Internal tables, constants, field symbols,
Types, local variables, Form variables
Are the DDIC Objects been named correctly
as per standards?
Underscore is the only special character
allowed in the naming of the variables

Modification Change Management


Is program header completed (according to
the development guideline)
Is Change History block written In Program
Header?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Begin of Modification / End of modification


Line Included as per standards

Comments
Is Inline Documentation done?
Internal commenting has been done
sufficiently enough and reliability of the
ABAP

Language
Is everything in English?

Programming Standards
SY-SUBRC Check

SY-SUBRC is checked after database


activities to ensure proper inputs when
dealing with tables (for example: READ,
SELECT, INSERT) and after FUNCTION
CALL. Appropriate warnings/errors are
issued when sy-subrc <> 0
IF vs. Case
if CASE statement used, check if WHEN
OTHERS is used to capture unexpected
errors.
Using Constants
Make use of constant for program specific
data
All Texts located in Text Elements?
SQL
Where VS CHECK

Always specify your conditions in the Where


clause instead of checking them yourself
with check-statements. The database
system can then use an index (if possible)
and the network load is considerably less.
Are Conditions specified in the Where
Clause?
SELECT INTO preferred to SELECT
APPEND ENDSELECT
It is always faster to use the Into Table
version of a Select statement than to use
Append statements. Has the Into Table
version been used instead of Append
statements?
Primary Key Used

Whenever possible, the full table key is


specified and SELECT SINGLE is specified
The ordering of the WHERE statements
match the arrangement of the keys in the
table records
UP TO 1 ROWS
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

This must be used only for data existence


check with SELECT / ENDSELECT UP TO 1
ROWS with not full key if full key available
then use SELECT SINGLE
Nested SELECTS and LOOPS

Nested selects and loops are avoided


through the use of dictionary VIEW and
JOINS or by using FOR ALL ENTRIES
appendage to the SELECT statement . In
addition Sub selects are preferred to Nested
Selects.
Has the parallel cursor method used where
ever nested loop is required?

Check for entries in the table before using in


FOR ALL ENTRIES - i.e. do IF NOT INITIAL
Check on table before FOR ALL ENTRIES
SAP DATABASE UPDATE
Has Direct table update avoided?
CUSTOMER DATABASE UPDATE
is NOT ALLOWED to update directly use
Function Module with update task using lock
object
Check Vs Where
LOOP…WHERE is used instead of
LOOP/CHECK
Copying of Internal tables
Has the appropriate function for the copying
of internal tables been used?
Delete Itab lines
delete ITAB WHERE Field1 = …... is
preferred to
Loop at ITAB WHERE Field1 = …....
delete ITAB.
ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an
nternal table use the DESCRIBE verb.

Performance
Column Selection
Is the Column Selection defined
appropriately
Use of NON-KEY fields
Avoid using non-key fields. They are going
to kill performance. If you need to use more
than one table to get KEY fields Still it has
far better performance. Have non-key fields
been avoided?
Use of Partial KEY
Using the total key is preferred.
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

If you can not give total key and you can


give former part of key, still the select is
effective. If you are specifying later part of
key then it is equivalent to non-key field,
which is not effective.
Pool or Cluster Tables should be accessed
with Full Primary Key
Secondary Index Usage
When possible, in the WHERE clause the
fields of the INDEX are in the specified order
and linked by the logical AND with
comparisons for equality
Aggregates

To find the maximum, minimum, sum and


average value or the count of a database
column, use a select list with aggregate
functions instead of computing the
aggregates yourself. Network load is
considerably less.
Distinct Vs SORT and DELETE
ADJACENT Duplicates

Distinct is preferred because the redundant


data is eliminated at the data base selection.
Has Distinct been used instead of Sort and
Delete Adjacent Duplicates?
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-
indexed fields. Consider using non-SQL
ABAP commands to sort the data in internal
table. Has the use of the ORDER BY clause
on a SELECT STATEMENT been avoided?
FREE
The FREE command is used to release the
memory allocated to internal tables when the
program is finished processing the data in
the table and when the following conditions
exist
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table
contains more than 500 rows
Collect
When working with internal tables,
remember that the COLLECT statement can
be very CPU intensive. For internal tables
with less than 50 entries, the COLLECT is
more efficient.
Field Symbols

Are Field symbols used whenever required?


ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
NA
No
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Comment in case of No Review Check Comment


(Developer) (Peer Reviewer) (Peer Reviewer)
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type Enhancements, UserExits, BADI's, Enhancement Spots


CMOD Project
Short Text for CMOD Project
SMOD Enhancement
SMOD Enhancement - Function Module
SMOD Enhancement - Program and Code
SMOD Enhancement - Calling Screen Name
and No.
SMOD Enhancement - Called Screen Name
and No.
SMOD Enhancement - Indclude
UserExit Include
User Exit Include - Form Name
BADI Name
BADI Implementation
Short Text for BADI Implementation
Method of BADI Used

Review Check Comment in case of No


(Developer) (Developer)
Attributes

Is the Short Text of the CMOD Project / BADI


Implementation concise and adequate?

Is Package as per the Program specification


Check Multiple Use flag with BADI
Implementation
Check Filter Dependent Flag with BADI
Implementation

Include Attributes
Is the Type specified correct - Type I for
Include Program, Screen Type: Subscreen for
Screen Exits
Is the Short Text of the Include Program or
the SubScreen Program concise and
adequate?
Editor lock Switched OFF

Overall check
Is the CMOD Project activated?
Are the Enhancements assigned to CMOD
Project?
Are the implemented Components of the
Enhancements in CMOD Project active?
Is the BADI Implementation Active?
Code inspector / EPC check conducted ?
Have the coding guidelines been followed?
(0=no, 1=rouhgly,2=nearly,3=yes)
Has Pretty Printer been used?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Are Selection texts written with clear meaning


Are Text symbols used for literal texts?
Are meaningful error messages given?

Naming Convention Correct


Is the CMOD Project / BADI Implementation
Name as per standards?
Are the variables named correctly e.g.
Internal tables, constants, field symbols,
Types, local variables, Form variables
Are the DDIC Objects been named correctly
as per standards?
Underscore is the only special character
allowed in the naming of the variables

Modification Change Management


Program header completed (according to the
development guideline)
IS Change History block written in Program
Header

Is Begin of Modification / End of modification


Line Included as per standards

Comments
Is Inline Documentation done?
Internal commenting has been done
sufficiently enough to ease program
maintenance and reliability of the ABAP
Program

Language
Is everything in English?

Authority Check
Is the project specific authority concept being
followed?

Programming Standards
SY-SUBRC Check

SY-SUBRC is checked after database


activities to ensure proper inputs when
dealing with tables (for example: READ,
SELECT, INSERT) and after FUNCTION
CALL. Appropriate warnings/errors are issued
when sy-subrc <> 0 /.
IF vs. Case
if CASE statement used, check if WHEN
OTHERS is used to capture unexpected
errors.

SQL
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Where VS CHECK
Is CHECK statement avoided?
Have conditions in the Where clause been
specified?
SELECT INTO preferred to SELECT
APPEND ENDSELECT
Has Select Endselect been used in the
Program?
Primary Key Used
Full table key is specified for all SELECT and
SELECT SINGLE statements.
The ordering of the WHERE statements
match the arrangement of the keys in the
table records
UP TO 1 ROWS
This must be used only for data existence
check with SELECT / ENDSELECT UP TO 1
ROWS with not full key if full key available
then use SELECT SINGLE
Nested SELECTS and LOOPS

Nested selects and loops are avoided through


the use of dictionary VIEW and JOINS or by
using FOR ALL ENTRIES appendage to the
SELECT statement . In addition Sub selects
are preferred to Nested Selects. Have nested
selects been used in loops?
Has the parallel cursor method used where
ever nested loop is required?

Check for entries in the table before using in


FOR ALL ENTRIES - i.e. do IF NOT INITIAL
Check on table before FOR ALL ENTRIES
SAP DATABASE UPDATE
Has Direct table update avoided?
CUSTOMER DATABASE UPDATE
is NOT ALLOWED to update directly use
Function Module with update task using lock
object

Internal tables
Internal Tables with header is used or
occours is used?
Check Vs Where
LOOP…WHERE is used instead of
LOOP/CHECK
Copying of Internal tables
Has the appropriate function for the copying
of internal tables been used?
Delete Itab lines
delete ITAB WHERE Field1 = …... is
preferred to
Loop at ITAB WHERE Field1 = …....
delete ITAB.
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an nternal
table use the DESCRIBE verb.

Performance
Column Selection

Is the Column Selection defined appropriately


Use of Partial KEY
Using the total key is preferred.
If you can not give total key and you can give
former part of key, still the select is effective.
If you are specifying later part of key then it is
equivalent to non-key field, which is not
effective.
Is Pool or Cluster Tables accessed with Full
Primary Key?
Secondary Index Usage
When possible, in the WHERE clause the
fields of the INDEX are in the specified order
and linked by the logical AND with
comparisons for equality
Aggregates

To find the maximum, minimum, sum and


average value or the count of a database
column, use a select list with aggregate
functions instead of computing the
aggregates yourself. Network load is
considerably less.
Distinct Vs SORT and DELETE ADJACENT
Duplicates
Distinct is preferred because the redundant
data is eliminated at the data base selection.
Has Distinct been used instead of Sort and
Delete Adjacent Duplicates?
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-indexed
fields. Consider using non-SQL ABAP
commands to sort the data in internal table.
Has the use of the ORDER BY clause on a
SELECT STATEMENT been avoided?
FREE

The FREE command is used to release the


memory allocated to internal tables when the
program is finished processing the data in the
table and when the following conditions exist
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

When performing direct reads, the BINARY


SEARCH is used only when the table
contains more than 500 rows
Collect
When working with internal tables, remember
that the COLLECT statement can be very
CPU intensive. For internal tables with less
than 50 entries, the COLLECT is more
efficient.
Field Symbols

Are Field symbols used whenever required?


ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
NA
No
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

serExits, BADI's, Enhancement Spots

Review Check Comment


(Peer Reviewer) (Peer Reviewer)
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type SmartForm


Layout Name
Title or Description

Review Check Comment in case of No


Layout Description
Is the Title or Program Description concise and
adequate?

Program Overall check


Have the coding guidelines been followed?
Has Pretty Printer been used?

Make use of constant for program specific data


Data selections to be done in initialisation. Do
not write SELECT queries inside.
Is meaningful names given to all nodes?

Modularization
If a block of code is executed more than once, it
should be placed in a subroutine at the bottom
of the code. This makes the code more
readable, requires less indentation, and is
easier to debug.

Naming Convention Correct


Is Program Name as per standards?

Are the variables named correctly e.g.


Parameter, Internal tables, constants, field
symbols, Types, local variables, Form variables
Underscore is the only special character
allowed in the naming of the variables

Modification Change Management


Is program header written in 'Global Definition' -
'Initialisation'
Program header completed (according to the
development guideline)
IS Change History block maintained in Program
Header for programs where in changes are
done?
Begin of Modification / End of modification Line
Included as per standards

Comments
Is Inline Documentation done?
Internal commenting has been done sufficiently
enough to ease program maintenance and
reliability of the ABAP

Language
Is everything in English?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Programming Standards
SY-SUBRC Check
SY-SUBRC is checked after every READ,
SELECT, INSERT and after FUNCTION CALL.
Appropriate warnings/errors are issued when
sy-subrc <> 0

Obsolete Statement
As per guidelines obsolete statements are not
allowed
Check for obsolete statement done?

Output Device Independent Entries


Page definitions
Is First Page, Second Page and Last Page
done as per FS?

Translation
Is translation done to all required languages?

Output Device Dependent Entries


Is page format, Orientation, style done as per
requirement?

Internal Checks
Is Page Numbering done correctly?
Has Data Overflow condition checked?
Is Outline Printing needed?
Are Margin and Line spacing done?
Is Use of Address window done?
Use of standard SAP data /structure/table types
in form interface?
Global definitions as per standards.
Is Alignment & Resolution correct as per
requirement?

Performance
Column Selection

Is the Column Selection defined appropriately


Use of Partial KEY
Using the total key is preferred.
If you can not give total key and you can give
former part of key, still the select is effective. If
you are specifying later part of key then it is
equivalent to non-key field, which is not
effective.
Pool or Cluster Tables should be accessed with
Full Primary Key
Secondary Index Usage
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

When possible, in the WHERE clause the fields


of the INDEX are in the specified order and
linked by the logical AND with comparisons for
equality
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table contains
more than 500 rows
Field Symbols
Are Field symbols used whenever required?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
NA
No
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type Workflow


Workflow No
Short Text for Workflow
Business Object No
Short Text for Business Object

Comment in case of
Review Check No
Workflow Template
Short Text for the Workflow is concise and
adequate?
If developing workflow for standared
transaction,check is there any standard Workflow is
available?
Is triggering event for workflow is active?
Is Workflow Binding contain any error?
Is User assignment dynamic?
Is General task active?

Business Object
Short Text for the BO is concise and adequate?
Naming convention for BO is followed?
If developing workflow for standared
transaction,check is there any standard BO is
available?
Business object is realesed,implemented and
generated properly?
Key field for that BO is specified Properly?

Comments
Is Inline Documentation done?
Internal commenting has been done sufficiently
enough to ease readability of the ABAP

Language
Is everything in English?

Authority Check
Is the project specific authority concept being
followed?
Authority Check Followed when Calling another
Transaction

Programming Standards
SY-SUBRC Check
SY-SUBRC is checked after database activities to
ensure proper inputs when dealing with tables (for
example: READ, SELECT, INSERT) and after
FUNCTION CALL. Appropriate warnings/errors are
issued when sy-subrc <> 0
IF vs. Case
if CASE statement used, check if WHEN OTHERS
is used to capture unexpected errors.
SQL
Where VS CHECK
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Have conditions in the Where clause been


specified?
Is CHECK statement avoided?
SELECT INTO preferred to SELECT APPEND
ENDSELECT

Has Select Endselect been used in the Program?


Primary Key Used
Full table key is specified for all SELECT and
SELECT SINGLE statements.
The ordering of the WHERE statements match the
arrangement of the keys in the table records
UP TO 1 ROWS
This must be used only for data existence check
with SELECT / ENDSELECT UP TO 1 ROWS with
not full key if full key available then use SELECT
SINGLE
Nested SELECTS and LOOPS

Nested selects and loops are avoided through the


use of dictionary VIEW and JOINS or by using FOR
ALL ENTRIES appendage to the SELECT
statement . In addition Sub selects are preferred to
Nested Selects. Have nested selects been used in
loops?
Has the parallel cursor method used where ever
nested loop is required?
Check for entries in the table before using in FOR
ALL ENTRIES - i.e. do IF NOT INITIAL Check on
table before FOR ALL ENTRIES
SAP DATABASE UPDATE
Has Direct table update been avoided in the
program?
CUSTOMER DATABASE UPDATE

is NOT ALLOWED to update directly use Function


Module with update task using lock object
Internal tables
Internal Tables with header should not be used
Occurs not allowed - Use explicit header rows
Check Vs Where

LOOP…WHERE is used instead of LOOP/CHECK


Copying of Internal tables
Has the appropriate function for the copying of
internal tables been used?
Delete Itab lines

delete ITAB WHERE Field1 = …... is preferred to


Loop at ITAB WHERE Field1 = …....
delete ITAB.
ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an nternal table
use the DESCRIBE verb.

Performance
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Column Selection
Is the Column Selection defined appropriately
Use of Partial KEY
Using the total key is preferred.
If you can not give total key and you can give
former part of key, still the select is effective. If you
are specifying later part of key then it is equivalent
to non-key field, which is not effective.
Pool or Cluster Tables should be accessed with Full
Primary Key
Secondary Index Usage

When possible, in the WHERE clause the fields of


the INDEX are in the specified order and linked by
the logical AND with comparisons for equality
A secondary index has been considered if:
Non-key fields or fields for which index s
Aggregates
To find the maximum, minimum, sum and average
value or the count of a database column, use a
select list with aggregate functions instead of
computing the aggregates yourself. Network load is
considerably less.
Distinct Vs SORT and DELETE ADJACENT
Duplicates
Distinct is preferred because the redundant data is
eliminated at the data base selection. Has Distinct
been used instead of Sort and Delete Adjacent
Duplicates?
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-indexed fields.
Consider using non-SQL ABAP commands to sort
the data in internal table. Has the use of the
ORDER BY clause on a SELECT STATEMENT
been avoided?
FREE
The FREE command is used to release the memory
allocated to internal tables when the program is
finished processing the data in the table and when
the following conditions exist
Reading Internal Tables
For READ operations, the key fields are specified
for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table contains more
than 500 rows
Collect
When working with internal tables, remember that
the COLLECT statement can be very CPU
intensive. For internal tables with less than 50
entries, the COLLECT is more efficient.
Field Symbols
Are Field symbols used whenever required?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
NA
No
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type Function Module (FM)


Function Module Name
Short Text for Function Module
Function Group Name
Short Text for Function Group

Review
Check Comment in case of No
FM Attributes
Is the Short Text of the FM concise and
adequate?
Is the Short Text of the Function Group
concise and adequate?

Is Processing Type of FM is specified correct?


Editor lock Switched OFF

Is Package with FM specification mentioned?

FM Overall check
Is the Function Group activated?
Is the FM activated?
Do you have the Code inspector / EPC check
conducted ?
Have the coding guidelines been followed?
(0=no, 1=rouhgly,2=nearly,3=yes)
Has Pretty Printer been used?

Are Selection texts written with clear meaning


Are Text symbols used for literal texts?
Are meaningful messages given?

Modularization
IS program Modularized? Are Forms created
for modularization

Naming Convention Correct


Is the FM Name as per standards?
Is the Function Group Name as per
standards?
Are the variables named correctly e.g.
Internal tables, constants, field symbols,
Types, local variables, Form variables
Are the DDIC Objects been named correctly
as per standards?
Underscore is the only special character
allowed in the naming of the variables

Modification Change Management


FM header completed (according to the
development guideline)
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

IS Change History block maintained in FM


Header for functions wherein changes are
done?
Begin of Modification / End of modification
Line Included as per standards

Comments
Is Inline Documentation done?
Internal commenting has been done
sufficiently enough to ease FM maintenance
and reliability of the ABAP

Language
Is everything in English?

Authority Check
Is the FM according to the project specific
authority concept?

Programming Standards
SY-SUBRC Check

SY-SUBRC is checked after database


activities to ensure proper inputs when
dealing with tables (for example: READ,
SELECT, INSERT) and after FUNCTION
CALL. Appropriate warnings/errors are issued
when sy-subrc <> 0
IF vs. Case
if CASE statement used, check if WHEN
OTHERS is used to capture unexpected
errors.
SQL
Where VS CHECK
Have conditions in the Where clause been
specified?
Is CHECK statement avoided?
SELECT INTO preferred to SELECT
APPEND ENDSELECT
Has Select Endselect been used in the
Program?
Primary Key Used
Full table key is specified for all SELECT and
SELECT SINGLE statements.
The ordering of the WHERE statements
match the arrangement of the keys in the
table records
UP TO 1 ROWS
This must be used only for data existence
check with SELECT / ENDSELECT UP TO 1
ROWS with not full key if full key available
then use SELECT SINGLE
Nested SELECTS and LOOPS
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Nested selects and loops are avoided through


the use of dictionary VIEW and JOINS or by
using FOR ALL ENTRIES appendage to the
SELECT statement . In addition Sub selects
are preferred to Nested Selects. Have nested
selects been used in loops?
Has the parallel cursor method used where
ever nested loop is required?

Check for entries in the table before using in


FOR ALL ENTRIES - i.e. do IF NOT INITIAL
Check on table before FOR ALL ENTRIES
SAP DATABASE UPDATE
Has Direct table update been avoided in the
program?
CUSTOMER DATABASE UPDATE
is NOT ALLOWED to update directly use
Function Module with update task using lock
object
Internal tables
Internal Tables with header should not be
used

Occurs not allowed - Use explicit header rows


Check Vs Where
LOOP…WHERE is used instead of
LOOP/CHECK
Copying of Internal tables
Has the appropriate function for the copying
of internal tables been used?
Delete Itab lines
delete ITAB WHERE Field1 = …... is
preferred to
Loop at ITAB WHERE Field1 = …....
delete ITAB.
ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an nternal
table use the DESCRIBE verb.

Performance
Column Selection

Is the Column Selection defined appropriately


Use of Partial KEY
Using the total key is preferred.
If you can not give total key and you can give
former part of key, still the select is effective.
If you are specifying later part of key then it is
equivalent to non-key field, which is not
effective.
Pool or Cluster Tables should be accessed
with Full Primary Key
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Secondary Index Usage


When possible, in the WHERE clause the
fields of the INDEX are in the specified order
and linked by the logical AND with
comparisons for equality
A secondary index has been considered if:
Non-key fields or fields for which index s
Aggregates

To find the maximum, minimum, sum and


average value or the count of a database
column, use a select list with aggregate
functions instead of computing the
aggregates yourself. Network load is
considerably less.
Distinct Vs SORT and DELETE ADJACENT
Duplicates
Distinct is preferred because the redundant
data is eliminated at the data base selection.
Has Distinct been used instead of Sort and
Delete Adjacent Duplicates?
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-indexed
fields. Consider using non-SQL ABAP
commands to sort the data in internal table.
Has the use of the ORDER BY clause on a
SELECT STATEMENT been avoided?
FREE

The FREE command is used to release the


memory allocated to internal tables when the
program is finished processing the data in the
table and when the following conditions exist
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table
contains more than 500 rows
Collect
When working with internal tables, remember
that the COLLECT statement can be very
CPU intensive. For internal tables with less
than 50 entries, the COLLECT is more
efficient.
Field Symbols

Are Field symbols used whenever required?


ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
NA
No
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Object Type Method


Method Name
Short Text for Method
Class Name
Short Text for Class

Review
Check Comment in case of No
Class Attributes
Is the Short Text of the Method concise and
adequate?
Is the Short Text of the Class concise and
adequate?
Is Class Type specified correct?
Check Package with Class specification

Method Header
Is the Header maintained?
Is Assumptions/Exceptions specified ?

Is objective of the method is clearly specified?

Method Overall check


Is the Class activated?
Is the Method activated?
Do you have the Code inspector / EPC check
conducted ?
Have the coding guidelines been followed?
(0=no, 1=rouhgly,2=nearly,3=yes)
Has Pretty Printer been used?

Are Selection texts written with clear meaning


Are Text symbols used for literal texts?

Naming Convention Correct


Is the Method Name as per standards?
Is the Class Name as per standards?
Are the variables named correctly e.g.
Internal tables, constants, field symbols,
Types, local variables, Form variables
Are the DDIC Objects been named correctly
as per standards?
Underscore is the only special character
allowed in the naming of the variables

Modification Change Management


Method header completed (according to the
development guideline)
IS Change History block maintained in
Method Header for functions wherein
changes are done?
Begin of Modification / End of modification
Line Included as per standards
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Comments
Is Inline Documentation done?

Internal commenting has been done


sufficiently enough and reliability of the ABAP

Language
Is everything in English?

Authority Check
Is the Method according to the project specific
authority concept?

Programming Standards
SY-SUBRC Check

SY-SUBRC is checked after database


activities to ensure proper inputs when
dealing with tables (for example: READ,
SELECT, INSERT) and after FUNCTION
CALL. Appropriate warnings/errors are issued
when sy-subrc <> 0
IF vs. Case
if CASE statement used, check if WHEN
OTHERS is used to capture unexpected
errors.
SQL
Where VS CHECK

Always specify your conditions in the Where


clause instead of checking them yourself with
check-statements. The database system can
then use an index (if possible) and the
network load is considerably less. Are
Conditions specified in the Where Clause?
Is CHECK statement avoided?
SELECT INTO preferred to SELECT
APPEND ENDSELECT
Has Select Endselect been used in the
Program?
Primary Key Used

Whenever possible, the full table key is


specified and SELECT SINGLE is specified
The ordering of the WHERE statements
match the arrangement of the keys in the
table records
UP TO 1 ROWS
This must be used only for data existence
check with SELECT / ENDSELECT UP TO 1
ROWS with not full key if full key available
then use SELECT SINGLE
Nested SELECTS and LOOPS
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Nested selects and loops are avoided through


the use of dictionary VIEW and JOINS or by
using FOR ALL ENTRIES appendage to the
SELECT statement . In addition Sub selects
are preferred to Nested Selects. Have nested
selects been used in loops?
Has the parallel cursor method used where
ever nested loop is required?

Check for entries in the table before using in


FOR ALL ENTRIES - i.e. do IF NOT INITIAL
Check on table before FOR ALL ENTRIES
SAP DATABASE UPDATE
Has Direct table update avoided?
CUSTOMER DATABASE UPDATE
is NOT ALLOWED to update directly use
Function Module with update task using lock
object
Check Vs Where
LOOP…WHERE is used instead of
LOOP/CHECK
Copying of Internal tables
Has the appropriate function for the copying
of internal tables been used?
Delete Itab lines
delete ITAB WHERE Field1 = …... is
preferred to
Loop at ITAB WHERE Field1 = …....
delete ITAB.
ENDLOOP.
Describe Vs count = count + 1
To find out how many entries are in an nternal
table use the DESCRIBE verb.

Performance
Column Selection

Is the Column Selection defined appropriately


Use of Partial KEY
Using the total key is preferred.
If you can not give total key and you can give
former part of key, still the select is effective.
If you are specifying later part of key then it is
equivalent to non-key field, which is not
effective.
Pool or Cluster Tables should be accessed
with Full Primary Key
Secondary Index Usage
When possible, in the WHERE clause the
fields of the INDEX are in the specified order
and linked by the logical AND with
comparisons for equality
A secondary index has been considered if:
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Aggregates

To find the maximum, minimum, sum and


average value or the count of a database
column, use a select list with aggregate
functions instead of computing the
aggregates yourself. Network load is
considerably less.
Distinct Vs SORT and DELETE ADJACENT
Duplicates
Distinct is preferred because the redundant
data is eliminated at the data base selection.
Has Distinct been used instead of Sort and
Delete Adjacent Duplicates?
Order By Vs SORT ITAB

Avoid the use of the ORDER BY clause on a


SELECT statement that sorts by non-indexed
fields. Consider using non-SQL ABAP
commands to sort the data in internal table.
Has the use of the ORDER BY clause on a
SELECT STATEMENT been avoided?
FREE

The FREE command is used to release the


memory allocated to internal tables when the
program is finished processing the data in the
table and when the following conditions exist
Reading Internal Tables
For READ operations, the key fields are
specified for READ access explicitly
When performing direct reads, the BINARY
SEARCH is used only when the table
contains more than 500 rows
Collect
When working with internal tables, remember
that the COLLECT statement can be very
CPU intensive. For internal tables with less
than 50 entries, the COLLECT is more
efficient.
Field Symbols

Are Field symbols used whenever required?

Error Logs
Has the proper methods used for logging the
possible errors like while processing the
form/final submit(master data errors, BAPI
errors, etc)?
Method to be used:
ZDC_FORM_PROCESS-
ADD_BRF_MESSAGE
Notifications
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Has the methods used for sending notification


in form of SMS and Emails after updating the
master data?
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Yes
No
NA
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Compatibility Report for Code Review Checklist V 01.00.xls


Run on 29-09-2015 15:13

The following features in this workbook are not supported by earlier versions of
Excel. These features may be lost or degraded when opening this workbook in
an earlier version of Excel or if you save this workbook in an earlier file format.

Significant loss of functionality # of occurrences

One or more cells in this workbook contain data validation rules which refer to 5
values on other worksheets. These data validation rules will not be saved.

Report_Review_Checklist'!B27

Report_Review_Checklist'!B7:B

FORM_Review_Checklist'!B6:B

FunctionModule_Review_Check

Enhancement_Review_Checklis
ISSUE DATE: 10.12.2015; ISSUE: 02 REF ID: FM/CRC/01 Page 1 of 1
REV DATE: 10.12.2015; REV: 00 ISO 9001: 2008; CL 7.5 ©Invenio Business Solutions

Version

Excel 97-2003

Excel 97-2003

Excel 97-2003

Excel 97-2003

You might also like