Nothing Special   »   [go: up one dir, main page]

Code Review Checklist For Informatica PowerCenter

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Code Review Checklist for Informatica

PowerCenter

Informatica Corporation
November 2018

Revision History

Version Date Revised By Description of Revision


1.0 6/7/2012 Janet Sitchin, IPS Initial Release
1.1 11/8/2018 Janet Sitchin, IPS Minor additions

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.

Code Review Standards

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

17. Meets  Does not Meet  No Invalid Mappings


18. Meets  Does not Meet  No Invalid Mapplets
19. Meets  Does not Meet  No Invalid Reusable Transformations
20. Meets  Does not Meet  Targets specify Table Name Prefix in properties
21. Meets  Does not Meet  Use DECODE instead of IFF when more than two conditions
are present or calling unconnected lookup or stored procedure

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

54. Meets  Does not Meet  Task Descriptions 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

58. Meets  Does not Meet  Session Log name is unique

59. Meets  Does not Meet  Reject file name is unique

60. Meets  Does not Meet  Flat File target names are unique (or intentionally the same)

61. Meets  Does not Meet  No Invalid Sessions

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 

79. Meets  Does not Meet 

650959977.docx Page 6 of 6

You might also like