Static Code Analysis Rules¶
Listed below are the rules that are currently supported by Static Code Analyzer for examining the code.
PRIO | RULE NAME | DESCRIPTION | Supported Files |
---|---|---|---|
1 | AttributeNamingStandard | Attribute/Parameter name must follow IFS naming standards | projection, fragment |
1 | DatabaseNameLimitation | Name already exists in database | projection, fragment |
1 | DependencyAnnotation | Dependency checks among components | client, projection, fragment |
1 | DependencyNotFound | Dependency checks among components | plsql, views, plsvc |
1 | EnterpriseEdition | Oracle Enterprise Edition feature | plsql, views, storage, plsvc |
1 | ExceptionInitPragmaErrorNum | Pragma Error number should be minus integer | plsql, views, storage, plsvc |
1 | IllegalOverrideOvertake | Illegal use of @Override or @Overtake | ALL |
1 | IllegalStringCharacters | String literals with non-US-ASCII characters | client, projection, fragment, app, plsql, views, storage, plsvc, offline |
1 | MissingElseNull | Conditional Compilation statement $ELSE is missing. | plsql, views, storage, plsvc |
1 | NameLength | The name is longer than the allowed maximum of 30 characters. | plsql, views, storage, plsvc |
1 | VarChar2Length | VARCHAR2 length should be integer value | plsql, views, storage, plsvc |
2 | ArrangeValidity | Arrange syntax is not supported within panel | client, fragment |
2 | AvailableSelectedLabelConstraint | Both Available and Selected Items labels must use together. | client, fragment |
2 | BulkCommandExecution | Commands that require bulk execution | client, fragment |
2 | CalendarGroupingValidity | Grouby and ranking cannot be used together. | client, fragment |
2 | CardinalityZeroToOne | The content type can only be set once. | client, fragment |
2 | ClientHeightSetting | Some values for height cannot be use with some components | client, fragment |
2 | CompareSameField | Comparison with the same field | plsql, views, storage, plsvc |
2 | CompareWithNull | Comparing with NULL is always false | plsql, views, storage, plsvc |
2 | ComponentName | Component name must match the folder name. | client, projection, fragment, app |
2 | ConditionalEvaluationValidity | Conditional evaluation cannot be used in the syntax | client, fragment |
2 | CountOneToCountStar | Use count(*) instead of count(1). | plsql, views, storage, plsvc |
2 | DbImplementation | Not among expected values | utility |
2 | DuplicateMethodView | Method/View duplicated with same signature | plsql, views |
2 | DynamicLovWildCardValidity | Wildcard syntax to be used in dynamiclov fields only. | client, fragment |
2 | DynamicStatement | Dynamic statement must be approved | plsql, views, storage, plsvc |
2 | EnableOnAllFilteredValidity | enableonallfiltered can be used only with commands making use of stringify. | client, fragment |
2 | EntitySetNameEvaluation | EntitySet name should be different from the Entity name. | projection, fragment |
2 | FileNameEvaluation | Model name must be the same as the file name. | client, projection, fragment |
2 | FilterOnEntityDependency | Entity array needed from master | projection, fragment |
2 | FilteringDefaultContextValidation | Default datasources should be used | projection, fragment |
2 | GanttItemStyleShape | Shape of Gantt item | client, fragment |
2 | GanttSnapTime | SnapTime values of Gantt chart. | client, fragment |
2 | GeneralSysInit | General_SYS.Init_Method should never be used in plsql files | plsql, views, storage, plsvc |
2 | GlobalConstant | Global constant declaration | plsql, views, storage, plsvc |
2 | GlobalVariable | Global variable declaration | plsql, views, storage, plsvc |
2 | IconsetEmphasisValidation | Emphasis cannot be used within iconset | client, fragment |
2 | IfsappPrefix | Not allowed to prefix DB calls with IFSAPP | plsql, views, storage, plsvc |
2 | IllegalEnumIdentifierCharacters | Enumeration literals containing characters not valid for Identifier name. | projection, fragment |
2 | ImplementationJavaUsage | 'Java' implementation to be used with Stream | projection, fragment |
2 | ImplementationMissing | Action/Function is not implemented in source file | projection, fragment |
2 | IncorrectDollarNullUsage | $NULL to be used with $SEARCH/$TEXTSEARCH | plsql |
2 | InlineSavingUsage | Wrong usage of inline saving property | projection, fragment |
2 | LabelLength | Label cannot be more than 50 characters long | client, fragment |
2 | Layer | The file name must contain the layer name | utility |
2 | ModelNameLength | Name cannot be more than 80 characters long | client, projection, app |
2 | MultipleSecurityGroup | An entry cannot be included in multiple securitygroups. | app |
2 | ObjstateDatatype | The Type definition for attribute 'Objstate' expects to be a valid Enumeration. | projection, fragment |
2 | OfflineSyntaxError | Syntax error. Offline projections require additional syntax entries. | client, projection, fragment, offline |
2 | OfflineTranslatableFormat | IFS translation standard should be followed | offline |
2 | Overtake | Method overtakes should be avoided | client, projection, fragment, plsql, views, storage, plsvc |
2 | SelectedValidity | Selected is enabled only for generic messagebox | client, fragment |
2 | SqlCompareWithNull | Comparing with NULL always returns false | plsql, views, storage, plsvc |
2 | SyntaxError | Error in the syntax of a sequence of tokens | ALL |
2 | TimeZoneDatatype | 'displaytimezones' allowed on Timestamp or TimestampUtc attributes | client, projection, fragment |
2 | TimeZoneProperty | 'timezone' specific property only valid on attributes with the datatype Timestamp or TimestampUtc | client, projection, fragment |
2 | TransactionStatement | Transactional statement approval | plsql, views, storage, plsvc |
2 | TranslatableFormat | IFS translation standards should be followed | plsql, storage, views, plsvc |
2 | TypeCompatibility | Type in assignments must be compatible. | client, fragment |
2 | TypeCompatibility22R2 | Incompatible attribute data types | projection, fragment |
2 | UnsupportedComputedFieldEdit | Non-editable computedfield | client, fragment |
2 | UnsupportedCreateCommand | Unsupported create command | client, fragment |
2 | VariableAssignment | Assignment value must match variable length | plsql, plsvc |
2 | ViewSyntaxWarning | Check syntax to make sure the code is generated correctly. | plsql, views, storage, plsvc |
2 | WildCardValidity | Freeinput and Wildcards cannot be used simultaneously | client, fragment |
3 | BinaryFunction | Binary functions cause translation issues | plsql, views, storage, plsvc |
3 | ClientTreeNodeEntity | Entity is mandatory for every node except root node. | client, fragment |
3 | ColumnDatatype | View column datatype is not valid | views |
3 | ColumnFieldChars | Illegal character in field value | views |
3 | ColumnFlags | Flag values are not valid | views |
3 | ConditionalCompilation | Conditional Compilation statements require correction. | plsql, views, storage, plsvc |
3 | DeprecatedMethod | Deprecated method can be removed | views |
3 | DeprecatedPropertySetting | Usage of deprecated property/setting | client, fragment |
3 | DuplicateIncludeFragment | Duplicate 'include fragment' statement. | client, projection, fragment |
3 | EmptyLinesInView | Empty lines in view may cause deployment issues | views |
3 | IdentifierMissing | Identifier needed for overrides/overtakes | client, fragment |
3 | KeywordAsName | Keyword should be avoided as a Name | plsql, views, storage, plsvc |
3 | MessageDefinitionValidation | Duplicate message definition validation | plsql, views, storage, plsvc |
3 | MethodEndName | END name is different from method name | plsql |
3 | MissingAnnotation | Missing annotation or wrong usage of annotation. | plsql |
3 | ObjStateInValiditySetLU | ObjState field check in views | views |
3 | OfflineSyntaxWarning | Warning. Offline projections require additional syntax entries. | client, projection, fragment |
3 | ProjectionPlaceholder | Virtual table naming standard | plsvc |
3 | ReservedKeywordRecord | Record is a Reserved Keyword | client, fragment |
3 | SelectAll | SELECT * should not be used in views | views |
3 | TranslatableConstantName | IFS translation standards should be followed | plsql, views, storage, plsvc |
3 | UnusedFragmentIncluded | Included fragment is not used in the model | fragment |
3 | UnusedFunctionOrAction | Function/Action not used in any Client model | projection |
3 | UnusedOrDuplicateReference | Reference is duplicated or not used in Client model | projection |
4 | ConvertedModelDbNameLength | Name should not exceed 26 limit when converted to db casing | utility |
4 | DependencyMissing | Dependency checks among components | client, projection, fragment |
4 | DeprecatedAnnotationUsed | Deprecated annotation has no functionality. | plsql |
4 | DuplicateControl | Duplicate controls with the same name | client |
4 | ExistMethodCallInValiditySetLU | Exist method call without boolean argument | plsql, views, storage, plsvc |
4 | InsertableAttribute | Attributes longer than 30 characters should have 'insertable = [false]' | projection, fragment |
4 | KeysMismatch | Mismatch of key attributes | projection, fragment |
4 | LargeMethod | Method has too many statements | plsql |
4 | MethodAnnotation | Annotation requires correction. | plsql, views, storage |
4 | MissingObjkey | Missing Objkey in view columns | views |
4 | MissingUseAttributes | Missing use attributes property in entity override | projection, fragment |
4 | MultipleServerCalls | Multiple server calls one after the other | client, fragment |
4 | NamingStandard | IFS naming standard should be followed | plsql, views, storage, plsvc |
4 | ObsoleteOrOrphanedFile | File was made obsolete or exists without model file | ALL |
4 | OverlappingNames | Name is the same as another object's name | plsql, views, storage, plsvc |
4 | PrefetchAttribute | Avoid the prefetch attribute since it causes severe performance issues | projection, fragment |
4 | ProjectionStructureContent | Unsupported structure content | projection, fragment |
4 | QueryWithoutLU | Query must have LU attribute | projection, fragment |
4 | ReservedViewFieldNames | Usage of reserved view field names | views |
4 | SqlContainingPlsql | SQL statements that contains PL/SQL calls | plsql, views, storage, plsvc |
4 | StatementAnnotation | Annotation requires correction. | plsql, views, storage, plsvc |
4 | TimestampUtcAttribute | TimestampUtc attribute name should end with Utc | projection, fragment |
4 | TrimPadToChar | Use TO_CHAR() function | plsql, views, storage, plsvc |
4 | UndefinedReference | Attribute or aggregate being referenced is not defined in the connected | client, fragment |
4 | UnusedDeclaration | Unused ${rule name} ${object name}. | client, projection, fragment, plsql, views, storage, plsvc |
4 | UnusedMethodArgument | Method argument ${object name} is not used. | plsql, plsvc |
4 | UseAttributesMismatch | Entity overrides all use attributes are not included in the view's attributes | projection, fragment |
5 | EmptyMethod | Method without implementation | plsql |
5 | PrivateMethodAccess | Private method access in a different package | plsql, views, storage, plsvc |