Code Review Checklist For Informatica PowerCenter
Code Review Checklist For Informatica PowerCenter
Code Review Checklist For Informatica PowerCenter
PowerCenter
Informatica Corporation
November 2018
Revision History
650959977.docx Page 1 of 6
Table of Contents
CODE REVIEW CHECKLIST FOR INFORMATICA POWERCENTER..................................................1
INTRODUCTION.......................................................................................................................3
SCOPE................................................................................................................................................3
CODE REVIEW STANDARDS......................................................................................................3
DESIGNER...........................................................................................................................................3
WORKFLOW MANAGER.........................................................................................................................4
650959977.docx Page 2 of 6
Introduction
Scope
This document serves as a checklist and guideline for PowerCenter code reviews. Developers should keep the
guidelines in mind so that their code can pass the code review with no rework. The goal of the code review, and the
implementation of the standards are to create code that is easy to understand, maintain, support, and migrate to the
next environment or to upgrade. Code that does not meet guidelines is rejected, remediated by the developer in the
development environment and reviewed again.
Designer
Meets/Does not Meet
Standard Requirement
1. Meets Does not Meet All objects are checked in
2. Meets Does not Meet All objects are in the correct location (ie. copied from
developer folder to project folders)
3. Meets Does not Meet Mapping Name follows naming convention
4. Meets Does not Meet All expressions follow naming convention
5. Meets Does not Meet All port names follow naming convention
6. Meets Does not Meet All Mapping Parameters and Variables follow naming
convention
7. Meets Does not Meet Mapping Description provided
8. Meets Does not Meet Expression Description provided
9. Meets Does not Meet No SQL Overrides used (explain exceptions)
10. Meets Does not Meet No hardcoded values in expressions – utilize reference tables
11. Meets Does not Meet Only one Source Qualifier to Target path through the mapping
(additional full paths are separate mappings)
12. Meets Does not Meet Logical sections of the mapping containing more than 5
transformations are within a mapplet
13. Meets Does not Meet Reusable code sections are in a mapplet
14. Meets Does not Meet No sources or targets directly in the folder, use shortcuts to
shared folder
15. Meets Does not Meet No non-shortcuts with “shortcut” name used in the mapping
16. Meets Does not Meet Shared objects are used where possible
650959977.docx Page 3 of 6
Meets/Does not Meet
Standard Requirement
in one path
22. Meets Does not Meet Complex expression logic minimized
23. Meets Does not Meet Expression transformation uses variable for repeated
expression instead of re-computing multiple times
24. Meets Does not Meet Data types and precision match from transformation to
transformation
25. Meets Does not Meet Data types and precision are explicitly converted if required
(e.g to_integer(decimal_value), or to_char(integer_value))
26. Meets Does not Meet Complex mappings are broken into two or more mappings
27. Meets Does not Meet Verbose logging on transformation turned off
28. Meets Does not Meet Expressions Use || instead of CONCAT (as well as
other similar choices of functions replaced with
operators where feasible)
29. Meets Does not Meet Sorters are used preceding Aggregators and Joiners
30. Meets Does not Meet Joiners and Aggregators are marked as including sorted input
31. Meets Does not Meet Joins within the Source Qualifier always include all sources
involved, rather than using a SQL Override that calls tables
not exposed as sources to the metadata.
32. Meets Does not Meet Filters are used as early as possible in the mapping
33. Meets Does not Meet Tables with over 1 Million rows are joined instead of used as
lookups
34. Meets Does not Meet Lookups to the same table are built identically and utilize
persistent lookups
35. Meets Does not Meet Master side of a joiner is the smaller of the joined tables
36. Meets Does not Meet Queries have been executed and reviewed with DBA for
performance tuning (indexes, etc.)
37. Meets Does not Meet Crossed port lines are avoided
38. Meets Does not Meet Port data type conversions are minimized
39. Meets Does not Meet Use unconnected lookups only when the lookup is called
conditionally (e,g, only for the first row or only when an error
condition is met).
40. Meets Does not Meet Use connected lookups when every row needs to pass
through the lookup
41. Meets Does not Meet Lookups return sorted data
42. Meets Does not Meet Function calls are minimized (e.g. sum(a+b) instead of sum(a)
+sum(b))
43. Meets Does not Meet Only required ports are passed through the mapping
transformations
44. Meets Does not Meet Logic is utilized to prevent database constrain violations
(duplicate rows, referential integrity, null values sent to non-
nullable columns)
45. Meets Does not Meet
46. Meets Does not Meet
650959977.docx Page 4 of 6
Workflow Manager
Meets/Does not Meet
Standard Requirement
47. Meets Does not Meet All objects are checked in
48. Meets Does not Meet All objects are in the correct location
49. Meets Does not Meet Workflow Name follows naming convention
50. Meets Does not Meet Worklet Names follow naming convention
51. Meets Does not Meet All tasks follow naming convention
52. Meets Does not Meet All Session and Workflow Parameters and Variables follow
naming convention
53. Meets Does not Meet Workflow Description provided
55. Meets Does not Meet No hardcoded values in file or directory paths – use
parameters
56. Meets Does not Meet No hardcoded values in command tasks – use parameters
57. Meets Does not Meet Shared objects are used where possible
60. Meets Does not Meet Flat File target names are unique (or intentionally the same)
62. Meets Does not Meet Preferred Connection Names are used – within parameter file
63. Meets Does not Meet Verbose logging on session turned off
64. Meets Does not Meet DTM Buffer Size set to Auto
65. Meets Does not Meet Lookup, Joiner, Rank and Aggregator cache sizes set to Auto
66. Meets Does not Meet DTM Buffer Block Size set to Auto
67. Meets Does not Meet Auto Memory Max settings set to optimized value
650959977.docx Page 5 of 6
Meets/Does not Meet
Standard Requirement
68. Meets Does not Meet All Sessions have been tuned
69. Meets Does not Meet Scripts are used only when no other method is available to
perform the function
70. Meets Does not Meet Few or no transformation errors in the log file – these should
be trapped for within the code (truncation, data type
conversion or issues, etc.)
71. Meets Does not Meet Fail parent if this task fails is checked
72. Meets Does not Meet Fail Parent if this task does not run is set appropriately
73. Meets Does not Meet Owner names are specified for Sources
74. Meets Does not Meet Session Log does not contain memory warnings or
recommendations
75. Meets Does not Meet Commit interval has been adjusted with data volumes in mind
76. Meets Does not Meet Target load type (Bulk/Normal) set appropriately
77. Meets Does not Meet Target actions are selected appropriately (Insert, Update,
Delete Truncate, etc.)
78. Meets Does not Meet
650959977.docx Page 6 of 6