0% found this document useful (0 votes)
126 views41 pages

Guidelines For Filling Up The Checklist

1. The document provides guidelines for filling out checklists when submitting ABAP code for review. It includes guidelines around naming conventions, coding standards, documentation requirements, testing procedures and transport processes. 2. Developers are instructed to adhere to naming conventions and coding standards, fill out review checklists completely, attach screenshots and documentation, and ensure code review and testing is performed before moving code to production systems. 3. The guidelines also provide requirements for code reviews, testing, and transport procedures for new developments, changes to existing code, and moving changes between systems. Proper documentation of issues and sign-off from reviewers is required.

Uploaded by

Sunil Undar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views41 pages

Guidelines For Filling Up The Checklist

1. The document provides guidelines for filling out checklists when submitting ABAP code for review. It includes guidelines around naming conventions, coding standards, documentation requirements, testing procedures and transport processes. 2. Developers are instructed to adhere to naming conventions and coding standards, fill out review checklists completely, attach screenshots and documentation, and ensure code review and testing is performed before moving code to production systems. 3. The guidelines also provide requirements for code reviews, testing, and transport procedures for new developments, changes to existing code, and moving changes between systems. Proper documentation of issues and sign-off from reviewers is required.

Uploaded by

Sunil Undar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
You are on page 1/ 41

Guidelines for filling up the

1
Please ensure that the ABAP code section is filled up mandatorly when filling for Enhancement
2 Developer should adhere to the Naming Conventions and Coding standards .
3 Please ensure that review checklist is revised whenever new changes are made or code is upd
4 Developer should fill this checklist and send it to reviewer for Code review
5 For any item if you select N/A or No, please ensure that you provide a proper comment
6 Attach the SLIN screenshot and in case of unavoidable issues, please document them in the re
7 Attach the Code Inspector screenshot and in case of unavoidable issues, please document the
8 Move to Production will be approved only if OTC will have the attached final confirmation mail f
9 DO NOT RELEASE your TR unless it is reviewed

Process for New Enhancements(Technical/Functiona


1 Code Review should be done in Development system for all the scratch/new developments bef
2 Developer should make sure Code Inspector has no errors before transporting any change to A
3 Above steps to be performed again if any code changes are required after Functional Testing/U

Process for Changes in Existi


1 Code Review should be done in Development system before transporting the changes to acce
2 Once the code changes are completed in development system , developer should send it for re
3 Above steps to be performed again if any code changes are required after Functional Testing/U
s for filling up the checklist

lling for Enhancement , Interfaces & Conversion, SAP Forms, Webdynpro, Workflows.
rds .
e made or code is updated
w
oper comment
ocument them in the relevant section
, please document them in the relevant section
nal confirmation mail from the Code Reviewer

chnical/Functional Developments) and Projects(ND)


new developments before transporting changes to acceptance/quality system
orting any change to Acceptance
er Functional Testing/UAT

Changes in Existing Solution


g the changes to acceptance/quality system
er should send it for review. Review will be done only for the changed part.
er Functional Testing/UAT
SAP ABAP Development Standards and Naming Conventions

Refer here for Naming Conventions and Standards

Volvo_ABAP
Development
Standards.pdf
Naming Conventions
Code Review Checklist - ABAP

Project Name sap MF Maintiance


CR no# / Remedy case no# : INC001815239/20038416

Object Name(s), Object Type(s) ZFINGPO1

Related Objects 200 client

S.No. Description
1. Naming Conventions and Declarations
1.1 Is the name of object and the declarations inside are as per the naming standards of Volvo
1.2 Has all the objects (Main Program/Includes/Tables/Structures/Domains/Dataelements/Tcode/Screens) assigned to proper Package and
Transport Request?
1.3 Version conflict (between DEV and Production system) is checked before changing the object ?

1.4 Is keyword Constant used for non-modifiable declarations


1.5 Modification History maintained or not

2. General
2.1 Is coding sequence of events in appropriate order?
2.2 Are text elements being maintained in required languages and hard coded information removed
2.3 Is formatting of amount and quantity fields done by using CURRENCY and UNIT options
2.4 Is clearing of work areas done, wherever required?
2.5 Split your coding into manageable pieces. Modularize your functions (function modules, methods) and encapsulate them with clearly defined
input and output parameters. Is your code modularized ?
2.6 Avoid use of external PERFORMs.
2.7 Use compare operators (=, <, >, <>) instead of EQ, NE, LT, GT
2.80 Is Hard coding avoided ?
2.9 Internal Tables/Ranges declared without header lines?
2.10 Is unnecessary code removed ?
2.11 Is CASE statements used instead of IF statements? CASE statements bring clarity to the conditional constructs and are a little faster than IF
statements. Each CASE/ENDCASE block must contain a statement block following WHEN OTHERS.
2.12 Has DESCRIBE statement been used instead of count inside the LOOP..ENDLOOP
2.13 Obsolete Statements not used - For more information refer to Online Help and put OBSOLETE as the keyword
- ON CHANGE OF not used
- TABLES * not used
- Operators ><, =<, => not used (Instead use <>,<=, >=)
2.14 Function Modules not released have not been used?
2.15 Is FREE MEMORY ID 'XXXX' used after the IMPORT. (Delete the data clusters if not required further)
2.16 Is SY-SUBRC message handling done ?

3. Data types/Variables
3.1 Don’t use data definitions without object reference
3.2 Avoid global declarations whenever possible
3.3 Do not use type pools, instead use types in the dictionary.
Avoid “TABLES“-commands wherever possible and do not use tables parameters for function modules or forms(except for a DYNPRO
3.4 interface)
3.5 Avoid Type ANY since it usually leads to missing transparency and static checks cannot usually be done

4. Multi-lingual Program Support


4.1 Use Text elements or report title to define list headings.
4.2 Any constant texts which appears in the output screen must be defined in program text elements instead of within program code
4.3 Use the addition 'AS TEXT' within SORT statements to ensure that the sort sequence considers language specific characters

5. OO ABAP
5.1 When calling the class method object reference has to be checked(IF l_obj_ref_to class is not initial….)
5.2 Try and Endtry block has to be used if in case particular calling method has exceptions
5.3 CATCH block has to be defined for each and every exception defined for that method
5.4 Make sure that you have called the method get_text() to capture the error message of the exception raised and is reported properly
5.5 Avoid calling method with out handling the Exceptions
5.6 The use of the interface component selector ~ is not recommended;Avoid Accessing Interface components
When you access data that is global for a method inside the method, it is a good idea to distinguish it from the methods local data via the
5.7 appropriate selectors

6. Selection Screen
6.1 Are all the possible screen validations done ?
6.2 Avoid the use of ‘DEFAULT’ values for parameters/selection screen fields. Create variants, where possible.
6.3 Are validations of select-options or parameters done at the ‘AT SELECTION-SCREEN’ event.
6.4 Variables that change frequently (like date etc) should be defined as Variable Variant using table TVARVC

7. Database Read/Write
7.1 Avoid using Native SQL, Logical Database
7.2 Use INDEXes for large databases
7.3 Instead of Nested Selects,use ABAP JOINS or FOR ALL ENTRIES or VIEWS(dictionary)
7.4 Logging database changes for a table must not be activated by default
7.5 Have all the keys been mentioned in SELECT SINGLE.?
7.6 Has SELECT UPTO 1 ROWS …. ENDSELECT for non data base key field selection?
7.70 SELECT * has NOT been used
7.8 Aggregate clauses are NOT used in SELECT. (viz. SUM, COUNT, ORDER BY, GROUP BY)
7.90 CHECK statement is not used in SELECT - ENDSELECT loop
7.10 Has the internal table used in the "FOR ALL ENTRIES IN " been checked for emptiness ?
7.11 Are all SELECTs coded outside LOOP - ENDLOOP?
7.12 Avoid using Select Distinct, Use DELETE ADJACENT. Make sure that internal table is sorted before using DELETE
7.13 Use Modify Statement to update the database only when you are sure that the operation involves both INSERT and UPDATE
7.14 Has Lock mechanism handled properly ?
7.15 Appropriate use of Commit Work
- Use COMMIT WORK if you want to commit all the d/base updates that were made during the current dialog step
- Use COMMIT WORK if you want to permananently save the changes even if the transaction terminates in between
- Use COMMIT WORK if you want to execute all subroutines registered using PERFORM ON COMMIT
- Keep in mind that implicit d/base commit happens on its own when the transaction ends or when there is a screen change
7.16 Appropriate use of ROLLBACK WORK
- Use ROLLBACK WORK if you want to roll back all the d/base updates that were made during the current dialog step
- To trigger a d/base roll back and end current database LUW
- To undo all the changes made in current dialog step
- Keep in mind that all implicit d/base commits can be rolled back to ensure d/base consitency. If COMMIT WORK is already issued,
changes cannot be rolled back using ROLLBACK WORK. Click to follow
7.17 Limit the INNER JOIN to 3 tables
7.18 When reading TEXT tables, has SY-LANGU been specified in the WHERE clause

8. Internal Table
8.1 Use Field symbols instead of work area with LOOP statement when modifying records of internal table
8.2 Detach a field-symbol explicitly with UNASSIGN
8.3 Is the Binary search clause used with the read table statement ?
8.4 Internal tables must be defined with the appropriate table type based on usage (HASHED, SORTED, And STANDARD).
8.5 Has the clause "INTO TABLE <Internal table>" been used instead of INTO CORRESPONDING FIELDS OF INTERNAL TABLE ?
8.6
Has the clause "APPENDING TABLE Internal table" been used instead of APPENDING CORRESPONDING FIELDS OF internal table
8.7 Have the internal tables been sorted by appropriate keys before being looped at or being used in a read statement ?
8.8 Appropriate message classes and types used
8.9 In a where clause have the fields been put in the same order as the existing index ?
8.10 Has "delete from internal table" been used instead of deleting the records inside a loop ?
8.11 Has the transporting clause been used along with the 'MODIFY internal table ' statement ?
8.12 In case of mass updation has the modify table from tab been used instead of using modify statement inside a loop ?
8.13 If the
In development
programs where includes
file(s) areBDC,
readhave
from the user default
or written settings
to, does been taken
the program into
check foraccount while posting
the emptiness numeric
of the file valuesterminate
and hence ? without
8.14 proceeding further ?
8.15 Has all the exceptions are handled during a CALL FUNCTION ?

9. Data Dictionary
9.1 Is enhancement category mentioned?
9.2 Label maintained for the data elements?
9.3 Has table maintainance generator and t-code been provided for custom tables requiring maintainance by users?
9.4 Has appropriate size category been used?

11. Error Handling


11.1 Are ‘divide by zero’ errors checked, by checking value of the divisor to be nonzero before each division
11.2 Are size errors being checked, by ensuring that the sizes of variables used for storing totals and additions are large enough to hold anticipated
maximum values

11.3 Use MESSAGE INTO to get the message references generated in transaction SE91.
11.4 Replace default message statement with specific error handling.
11.50
Use MESSAGE ... RAISING <exception> in Function modules. The calling module / program should handle exceptions and process messages.

12. Extended Check and Clean Up


12.1 Have following been removed :
·      Unused variables
·      Unused text elements
·      Unused tables from TABLES statement
·      Commented out parts of the code
·      Code segments which do nothing
12.2 Is extended program check completed and all errors/warnings removed
12.3 Use tools like EPC (txn SLIN) and Code Inspector to perform thorough check on the code.

Check Successful

Comments /Required Action: review as on 12/07/2017


1
2
3
4
5
Developer sunil undar
Reviewed by

Review Date 12.06.2018


1.FD2K950305
Transport# 2.FD2K950623

Self Review Peer Review Comments

YES
YES

YES

YES
YES

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A
N/A
N/A

N/A

N/A

N
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A

N/A
N/A

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A
N/A
N/A
N/A
N/A

N/A

N/A

N/A
N/A
N/A

YES
YES
YES
YES
YES
YES
YES
YES
Code Review Checklist - Enhancements

Project Name Developer


CR no# / Remedy case no# : Reviewed by
Object Name(s), Object
Type(s) Review Date

Related Objects Transport#

S.No. Description Self Review Peer Review


1. Naming Conventions and Declarations
1.1 Is the name of object and the declarations inside are as per the naming standards of Volvo
1.2 Has all the objects assigned to proper Package and Transport Request?
1.3 Version conflict (between DEV and Production system) is checked before changing the object ?
1.4 Is keyword Constant used for non-modifiable declarations
1.5 Modification History maintained or not

2. General
2.1 Is formatting of amount and quantity fields done by using CURRENCY and UNIT options
2.2 Is clearing of work areas done, wherever required?
2.3 Split your coding into manageable pieces. Modularize your functions (function modules, methods) and
encapsulate them with clearly defined input and output parameters.
2.4 Avoid use of external PERFORMs.
2.5 Avoid use of PERFORM ON COMMIT.
2.6 Use compare operators (=, <, >, <>) instead of EQ, NE, LT, GT
2.7 Avoid ‘Hard Coding’
2.8 Avoid COMMIT WORK /ROLL BACK

3. BTEs
3.1 Correct type of BTE Interface is used or not (Process or P&S) ?

4. User Exits
4.1 Do not use CALL..SUBMIT,COMMIT WORK/ROLLBACK,STOP,REJECT,MESSAGE I,MESSAGE W statements

5. BAdis
5.1 Use the new Badi instead of the older one ,if the new one serves the purpose
5.2 Migrate Classic Badis to new BAdi (enhancement spot ) wherever possible
5.3 For Filters,each method created in the interface, the filter value must be defined as the importing parameter so
that the application program can provide the filter value to the enhancement method

5.4 For Coding,ABAP OO constructs only have to used since Badi is based on ABAP Objects

6. Implicit Enhancements
6.1 Use Implicit Enhancements as the last resort only if no Badis,Explicit Enhancements,BTEs are available.

7. Error Handling
7.1 Are ‘divide by zero’ errors checked, by checking value of the divisor to be nonzero before each division
7.2 Are size errors being checked, by ensuring that the sizes of variables used for storing totals and additions are
large enough to hold anticipated maximum values
7.3 Is SY-SUBRC check performed whereever required ?
7.4 Use MESSAGE INTO to get the message references generated in transaction SE91.

8. Clean Up
8.1 Have following been removed :
·      Unused variables
·      Unused text elements
·      Unused tables from TABLES statement
·      Commented out parts of the code
·      Code segments which do nothing

Check Successful
Comments /Required Action:
Comments
Code Review Checklist - Interfaces & Conversions

Project Name
CR no# / Remedy case
no# :
Object Name(s), Object
Type(s)

Related Objects

S.No. Description
1. Naming Conventions and Declarations
1.1 Is the name of object and the declarations inside are as per the naming standards of Volvo
1.2 Has all the objects assigned to proper Package and Transport Request?
1.3 Version conflict (between DEV and Production system) is checked before changing the object ?
1.4 Is keyword Constant used for non-modifiable declarations
1.5 Modification History maintained or not

2. File Interface -FrontEnd/Application Server


2.1 For File/directory location always use LOGICAL FILE(for Platform Independent File names)
2.2 For import /export ,employ the methods of the new GUI Class(CL_GUI_FRONTEND_SERVICES) instead of the old
2.3 upload/download
With OPEN DATASETs function modules(
specify WS_UPLOAD )
the MODE,ENCODING etc

3. BDC/Call Transaction
3.1 There should not be usage of BDC / Call Transaction for Transactions with Enjoy SAP controls and Multiline elements such as
Table Controls
3.2 Has newer tools like BAPIs,Idoc been used if applicable
3.3 If the development includes BDC, have the user default settings been taken into account while posting numeric values ?

4. LSMW
4.1 Usage of appropriate technique for uploading data within an LSMW migration object (BDC / BAPI / Idoc / Direct Input) based on the
Application Data to be uploaded
4.2 Usage of Mapping Rules, User Defined Routines and Mapping Table in case of repetitive and mapping across multiple LSMW
migration objects to ensure reusability
4.3 Validations performed on the data before upload with appropriate messaging
4.4 Mapping and Translation Rules between Flat File Structure and SAP Target Structure Fields (fields of BDC Screen, BAPI, Idoc, DI
Program) clearly documented in Tech Spec
4.5 Error Handling procedure to be described from a technical perspective (Sequence of steps / Batch jobs to be run / Impact of
reprocessing a failed Idoc on the application data)

5. BAPI
5.1 After calling BAPIs ,the code needs to call BAPI TRANSACTION COMMIT
5.2 Has the Standard SAP Object(Purchase Order etc) been extended with custom fields, if yes then these fields need to be via BAPI
Extensions?
5.3 For BAPI interfaces , with a few exceptions, only the internal SAP data format should be used

6. Idoc
6.1 When both sending and receiving systems are SAP,ensure that the Idoc versions are compatible
For Custom Idocs: Usage of Custom Message Types / Idoc Types is to be clearly justified means standard is not relevant for the
requirement
6.2
Is Error Handling taken care ? Error Handling procedure to be described from a technical perspective (Sequence of steps / Batch
jobs to be run / Impact of reprocessing a failed Idoc on the application data)
6.3
6.4 No COMMIT WORK is to be issued from within the Idoc

7. Proxy
7.1 When generating ABAP proxies,ensure the proper prefix as per the naming standards
7.2 Error Handling in Server Proxy. FEH (Forward Error Handling) Framework is used?
- Is service implementation class used (Which uses IF_ECH_ACTION interface)
- Is extended XML handling deactivated?
- Set UPDATE TASK LOCAL is used
- Is standard FAULT MESSAGE Class of the proxy class implemented for raising Exceptions?
8. Extended Check and Clean Up
8.1 Have following been removed :
·      Unused variables
·      Unused text elements
·      Unused tables from TABLES statement
·      Commented out parts of the code
·      Code segments which do nothing
8.2 Is extended program check completed and all errors/warnings removed

Check Successful

Comments /Required Action:


Developer

Reviewed by

Review Date

Transport#

Self Review Peer Review Comments


Project Name
CR no# / Remedy case no# :

Object Name(s), Object Type(s)

Related Objects

S.No. Description
1. Naming Conventions and Declarations
1.1 Is the name of object and the declarations inside are as per the naming standards of Volvo
1.2 Has all the objects assigned to proper Package and Transport Request?
1.3 Version conflict (between DEV and Production system) is checked before changing the object ?
1.4 Is keyword Constant used for non-modifiable declarations
1.5 Modification History maintained or not

2. SAP Scripts / Smart Forms


2.1 Are the printer details furnished and configured ?
2.2 Is the layout format well defined ?
2.3 Is any language specific reporting required ?
2.4 Output format ? ( Standard / XSF / XSF + Html )
2.7 Global Definitions maintained ? ( data / type / field symbols / Form routines)
2.8 Text Modules/Std Text ?
2.9 Execution steps ?
2.13 What data need to be extracted, is it specified?
2.15 Is the processing logic specified ?
2.17 Does the technical design match the functional requirement?
2.21 Is the font , size, colour , lines , borders etc specified ?
2.22 Is the necessary paragraph/character formats specified ?

3. Adobe Forms Interfaces


3.1 Is Standard Interface exists for this requirement ? (If YES please use Standard)
3.2 Is the interface generic.So that it can be used by other similar kind of adobe forms?
3.3 Is the code modularized in the Form routine instead of directly using in the code intialization? (minimal coding in
3.4 Correct interface type is used ?
3.5 All the Currency/Quantity fields used in the form are declared in the Interface ?

4. Adobe Forms
4.1 Is the correct layout type defined based on the print or interactive form?(For print Forms- Standard Layout and fo
should be ZCI layout)
4.2 All interactive forms must be set to form type “Zero Client Installation” (ZCI)
4.3 To ensure all scripts are adjusted to work with ZCI mode transaction SFP_ZCI_UPDATE must be run against the
4.4 Avoid as much of form UI scripting(java Script or FormCalc) as the scripting can hit the performance.
4.5 After running SFP_ZCI_UPDATE the developer should check all scripts have the correct script type (JavaScript o
as these are NOT corrected by SFP_ZCI_UPDATE
4.6 Is the fields in the context of the form well structured.(Make use of folders-For .e.g. Header details in one folder a
4.7 For address printing make use of Address node in the context.
4.8 All the fields appearing in the context is used in the form layout?
4.9 Are all the unused fields in the context are deactivated?
4.10 For the text node (Include/Text module/Dynamic).The checkbox for no text appear no error is ticked?
4.11 All forms will have a Master Page containing the header/footer areas, and the content areas for the rest of the for
header/footer and content areas should follow a common template across all forms, be in the same X/Y positions
the same height/widths for all forms

4.12 Subforms should be used to logically group fields as these simplify maintenance and allow visibility and protectio
4.13 the
Wheresubform ratherlists
drop down thanare
thebased
individual field level.
on possible All fields
system should
values, suchexist withinvalues
as fixed a subform. ThereDictionary
of a ABAP should notdomain,
be any
a subform.
values from Excessive
a check use of
table, nested
the drop subforms
down list shouldbe
should bedynamically
avoided as derived
per Adobefromrecommendations
the possible system values. Th
4.14 If a drop down list is dependent on another form field, it should not be enterable while the parent form field is emp
the need
parent to maintain the form over time, as drop down lists will reflect current system values, and reduces the ris
4.15 The
data lineform field
items has been
should assigned
always a value,
be present in thea body
script page.
on the parent form field should (preferably immediately) trig
Evententry
to theaffecting
backend dependent
system tosystem updates
derive the dependent drop down list.

Check Successful

Comments /Required Action:


No Code changes, Only addition logo
Code Review Checklist - SAP Forms

ions and Declarations


d the declarations inside are as per the naming standards of Volvo
ned to proper Package and Transport Request?
n DEV and Production system) is checked before changing the object ?
d for non-modifiable declarations
ntained or not

art Forms
nished and configured ?
defined ?
reporting required ?
rd / XSF / XSF + Html )
ained ? ( data / type / field symbols / Form routines)

tracted, is it specified?
pecified ?
n match the functional requirement?
lines , borders etc specified ?
ph/character formats specified ?

erfaces
sts for this requirement ? (If YES please use Standard)
So that it can be used by other similar kind of adobe forms?
in the Form routine instead of directly using in the code intialization? (minimal coding in the interface)
used ?
y fields used in the form are declared in the Interface ?

defined based on the print or interactive form?(For print Forms- Standard Layout and for interactive it

t be set to form type “Zero Client Installation” (ZCI)


adjusted to work with ZCI mode transaction SFP_ZCI_UPDATE must be run against the form.
I scripting(java Script or FormCalc) as the scripting can hit the performance.
UPDATE the developer should check all scripts have the correct script type (JavaScript or Formcalc)
ted by SFP_ZCI_UPDATE
t of the form well structured.(Make use of folders-For .e.g. Header details in one folder and so on).
ke use of Address node in the context.
n the context is used in the form layout?
in the context are deactivated?
e/Text module/Dynamic).The checkbox for no text appear no error is ticked?
ter Page containing the header/footer areas, and the content areas for the rest of the form. The
nt areas should follow a common template across all forms, be in the same X/Y positions, and have
or all forms

d to logically group fields as these simplify maintenance and allow visibility and protection to be set at
hebased
re individual field level.
on possible All fields
system should
values, suchexist withinvalues
as fixed a subform. ThereDictionary
of a ABAP should notdomain,
be any or
fields
a listwithout
of
e of
e, nested
the drop subforms
down list shouldbe
should bedynamically
avoided as derived
per Adobefromrecommendations
the possible system values. This minimizes
endent on another form field, it should not be enterable while the parent form field is empty. Once the
form
en over time,
assigned as drop
a value, downonlists
a body
script thewill reflect
parent current
form system(preferably
field should values, and reduces thetrigger
immediately) risk of aincorrect
User
ways
endent besystem
present in the
updates page.
stem to derive the dependent drop down list.

n logo
Developer
Reviewed by

Review Date

Transport#

Self Review Comments


ye
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A

N/A
N/A
N/A

N/A
N/A
N/A
N/A
N/A
N/A

N/A

N/A
N/A
N/A
N/A
Code Review Checklist - WebDynpro

Project Name Developer


CR no# / Remedy case no# : Reviewed by

Object Name(s), Object Type(s) Review Date

Related Objects Transport#

S.No. Description Self Review


1. Naming Conventions and Declarations
1.1 Is the name of object and the declarations inside are as per the naming standards of Volvo
1.2 Has all the objects assigned to proper Package and Transport Request?
1.3 Version conflict (between DEV and Production system) is checked before changing the object ?
1.4 Is keyword Constant used for non-modifiable declarations
1.5 Modification History maintained or not

2. WebDynpro
2.1 Do not implement Data intensive operations in UI layer
2.2 Avoid database selects in the WebDynpro code.Use the corresponding BAPIs ,Methods
2.3 Are ABAP OO Classes like Assistance class are being used for application coding ?
2.4 Are Windows/Views only used for the sole purpose of hosting views and context?
2.5 Are a reasonable number of views put in a single WD Component instead of creating multiple WD Components ?
2.6 Unneccessary usage of dynamic programming and dynamic component avoided
2.7 Are singleton nodes used in case of nesting in the context ?
2.8 Is deep nesting of containers, Groups and Tabstrips avoided ?
2.9 Is the UI element TreeByKey or TreeByTableNestingColumn used instead of the Tree UI element ?
2.10 Is the checkbox "Accessibility Checks Active" ticked in the WD Component properties
2.11 Are the WD Component Instances deleted when no longer needed
2.12 (IF_WD_COMPONENT_USAGE=>DELETE_COMPONENT)
Are the OTR texts defined for all the labels, texts(where ever appropriate) in properties of all the UI elements
2.13 Has the Generation limit been checked for all the components developed
2.14 Sufficients commets are written at the beginning of every major block to explain the processing logic.
2.15 Prefer the use of the Row Layout to the Grid or Matrix Layout if you don't need horizontal alignment
2.16 If from Matrix or Grid Layout is to be choosen, prefer to take Matrix Layout
2.17 Don't add your own 'Custom' scroll containers', instead, utilize the inbuilt scrolling capability of Browser/Netweaver
business client
2.18 Hook Method - wddoinit() : All the initialization code should go into this method
2.19 Hook Method - wddoexit() : All the cleanup code should go into this method

3. Error Handling
3.1 Is SY-SUBRC check performed whereever required ?

4. Extended Check and Clean Up


4.1 Have following been removed :
·      Unused variables
·      Unused text elements
·      Unused tables from TABLES statement
·      Commented out parts of the code
·      Code segments which do nothing
4.2 Is extended program check completed and all errors/warnings removed

Check Successful

Comments /Required Action:


Peer Review Comments
Code Review Checklist - Workflows

Project Name Developer


CR no# / Remedy case no# : Reviewed by
Object Name(s), Object
Type(s) Review Date

Related Objects Transport#

S.No. Description Self Review


1. Naming Conventions and Declarations
1.1 Is the name of the object and the declarations inside are as per the naming standards of Volvo
1.2 Has the object been assigned to a proper package and transport request?
1.3 Check the naming convetions of elements used in the workflow and tasks.

2. Workflow
2.1 Have all the methods of IF_WORKFLOW interface been activated
2.2 Workflow Enviornment setup is completed and the verfication workflow is checked -in Transaction SWU3
2.3 Workflows must always terminate when the workflow is no longer relevant - eg, PO Approval is no longer relevant if the PO is
Cancelled/Deleted - Use Terminating Events in the WF Header
2.4 When work is to be sent to a widening pool of users, e.g. as part of escalation, then the “Re-evaluate Rules of Active Work
Items” response should be used to implement this scenario.
2.5 This involves of Deadline Monitoring
Implementation
2.6 Calculation of deadlines by business calendar will be implemented as a public method in a central utility class which uses the
designated Factory Calendar to determine deadline dates and times according to the business calendar.
2.7 Direct email notification steps should use step type “Send Mail”. Where email notification is required to the user’s standard
Outlook/Lotus Notes email address, the email should be sent to the user’s user id in SWHACTOR format ('US" prefixed to user
name) - The Recepirnt Type Should be 'G' - Org Object. Transaction SO16 should have "Oganisational Units" Checked under
Addressing tab and "Send to Home Address" selected under MailSys.Grp tab

2.8 Workitem text standards are set according to the need of the functionality.
2.9 Priorty of the workitem is clearly mentioned with Action text.
2.10 Footer text is predefined and used as Include Text- which is defined in transaction SE61
2.11 Body text standards are determined and generalized and used as Include Text- which is defined in transaction SE61
2.12 In the view history or log all the technical steps must be hidden.
2.13 Usage of subworkflow is recommended if you are dealing with a large workflow.
2.14 All the tasks needing action must have an agent assignment - there should be NO task which may have agent data as empty -
else the work item will go to every user. To prevent this, is there a check in the workflow/coding to raise an exception if there is
no agent?
2.15 Always make sure that your TASK for which agents have been assigned is saved in your transport request. If you face any
problem you can manually maintain the transport line using program RHMOVE30 (Transaction RE_RHMOVE30).
2.16 If UWL is being used - Are necessary views defined according to activity groups and the approriate XMLs loaded correctly?

2.17 If UWL is being used - If a dynamic parameter is passed to the Workitem, are the necessary configs done in SWFVISU?

2.18 Are all loops in the workflow been tested for loop end condition?

2.19 Are all method exceptions been tested (if any)?

2.20 For all Responsibility Rules, is the proper documentation maintained which is visible in OOCU_RESP (description Button)?

2.21 Rule Basics - Have all the basic parts ID, Abbreviation, Description, Long Description, Category, Container and Terminate on
rule resolution failure been specified
2.22 Has the Terminate if Rule Resolution has no Result flag been set appropriately?
2.23 Did you explore already provided SAP Standard rules instead of creating your own
2.24 All the event linkages have been taken care of and are in ACTIVE status
2.25 If the workflow needs to be started automatically, it is usaually best to use Events than SAP WAPI FMs
2.26 Avoid programmed rules if you can because these can add significantly to development time
2.27 Has Short Text and Task description been maintained for the Work Item Text
2.28 Have appropriate terminating events been defined for asynchronous tasks?
2.29 Have appropriate possible agents been assigned to the task?
2.30 Does the workflow permit restart in the event of error from any point where error is likely to occur?
3. Primary Diagnosis
3.1 Verify SWUD, consistency check for Tasks and Workflows.
3.2 Debugging with ABAP class/Business Object Builder
Finding and fixing Work Items
3.3 - Diagnosis of workflows with errors - SWI12_DIAG
3.4 - Work Item Selection - SWI1
3.5 - Work item Frequency - SWI2_FREQ

4. Secondary Daignosis
4.1 Verify workflow customizing SWU3.
4.2 Activation status event log SWEL.
4.3 Check event type linkage SWE2 .
4.4 Check event simulation SWU0 .
4.5 Check Work item list SWI1.
4.6 Check Task Editor/Workflow Builder PFTC/SWDD.
4.7 Check event SWUE, create event.
4.8 Check Workflow Trigger SWUS.
5. Extended Check and Clean Up
5.1 All the ABAP related checks are applicable for all the coding done for the workflow

Check Successful

Comments /Required Action:


Peer Review Comments
SWUD.doc
ATC Screen Shot

Exceptions why some of the errors, warnings or m


Reasons for unavoidabe Erro
1
2
3
4
5
6
7
8
9
10

Reasons for unavoidabe Warn


1
2
3
4
5
6
7
8
9
10

Reasons for unavoidabe Messa


1
2
3
4
5
6
7
8
9
10
TC Screen Shot

List down all the


fields, data objects,
rors, warnings or messages can't be removed syntax etc that is
unavoidable
ns for unavoidabe Errors

List down all the


fields, data objects,
syntax etc that is
for unavoidabe Warnings unavoidable
List down all the
fields, data objects,
syntax etc that is
for unavoidabe Messages unavoidable
List down all the
fields, data objects,
syntax etc that is
unavoidable

List down all the


fields, data objects,
syntax etc that is
unavoidable
List down all the
fields, data objects,
syntax etc that is
unavoidable

You might also like