CodeCop Analyzer Rules

CodeCop is an analyzer that enforces the official AL Coding Guidelines.

Rules

Id Title Category Default severity
AA0001 There must be exactly one space character on each side of a binary operator such as := + - AND OR =. Readability Warning
AA0002 There must be no space character. Readability Warning
AA0003 There must be exactly one space character between the NOT operator and its argument. Readability Warning
AA0005 Only use BEGIN..END to enclose compound statements. Readability Warning
AA0008 Function calls should have parenthesis even if they do not have any parameters. Readability Warning
AA0013 When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character. Readability Warning
AA0018 The END, IF, REPEAT, UNTIL, FOR, WHILE, and CASE statement should always start a line. Readability Warning
AA0021 Variable declarations should be ordered by type. Readability Warning
AA0022 Substitute the IF THEN ELSE structure with a CASE. Readability Warning
AA0040 Avoid using nested WITH statements. Readability Warning
AA0050 Permission set extensions should not include permissions for objects defined in another application. Design Warning
AA0051 Permission set extensions should not include permission sets defined in another application. Design Warning
AA0052 Permission set extensions should not include permission sets which include permissions for objects defined in another application. Design Warning
AA0053 Permission set extensions should not include wildcard permissions. Design Warning
AA0072 The name of variables and parameters must be suffixed with the type or object name. Readability Info
AA0073 The name of temporary variable must be prefixed with Temp. Readability Warning
AA0074 TextConst and Label variable names should have an approved suffix. Readability Warning
AA0087 Lowering permissions should only be used in tests Design Warning
AA0100 Do not have identifiers with quotes in the name. Design Warning
AA0101 Use camel case property values in pages of type API. Design Warning
AA0102 Use camel case name for field controls in pages of type API. Design Warning
AA0103 Use camel case property values in queries of type API. Design Warning
AA0104 Use camel case name for column controls in queries of type API. Design Warning
AA0105 PagePart controls must not refer to parent pages. Design Error
AA0106 A page of type API can only refer to the same subpage once. Design Error
AA0131 String parameters must match placeholders. Design Warning
AA0136 Do not write code that will never be hit. Design Warning
AA0137 Do not declare variables that are unused. Design Warning
AA0139 Do not assign a text to a target with smaller size. Design Warning
AA0150 Do not declare parameters by reference if their values are never changed. Design Warning
AA0161 Only use AssertError in Test Codeunits. Design Warning
AA0175 Only find record if you need to use it. Design Warning
AA0181 The FindSet() or Find() methods must be used only in connection with the Next() method. Design Warning
AA0189 Only use a correct values of ApplicationArea. Design Warning
AA0194 Only write actions that have an effect. Design Warning
AA0198 Do not use identical names for local and global variables. Design Warning
AA0199 Use only a correct order for ApplicationArea. Design Warning
AA0200 When ApplicationArea is set to 'All', no other values for ApplicationArea should be specified. Design Warning
AA0201 When ApplicationArea is set to 'Basic', you must also specify 'Suite'. Design Warning
AA0202 To avoid confusion, do not give local variables the same name as fields, methods, or actions in the same scope. Design Warning
AA0203 To avoid confusion, do not give methods the same name as fields or actions in the same scope. Design Warning
AA0204 To avoid confusion, do not give global variables the same name as fields, methods, or actions in the same scope. Design Warning
AA0205 Variables must be initialized before usage. Design Warning
AA0206 The value assigned to a variable must be used. Design Warning
AA0207 The EventSubscriber method must be local. Design Warning
AA0210 Avoid non-indexed fields into filtering. Design Info
AA0211 Avoids a runtime error from using CalcFields on a field that is not a FlowField or a field of type Blob. Design Warning
AA0213 Obsoleted object must have a state 'Pending' or 'Removed' and a justification specifying why this field is being obsoleted. Design Warning
AA0214 The local record should be modified before saving to the database. Design Warning
AA0215 Follow the style guide about the best practices for naming. Readability Warning
AA0216 Use a text constant for passing user messages and errors without concatenations. Localizability Warning
AA0217 Use a text constant or label for format string in StrSubstNo. Localizability Warning
AA0218 You must write a tooltip in the Tooltip property for all controls of type Action and Field that exist on page objects. Localizability Warning
AA0219 The Tooltip property of Fields must start with 'Specifies'. Localizability Warning
AA0220 The value of the Tooltip property of Fields must be filled. Localizability Warning
AA0221 You must specify a OptionCaption property for all fields which source expressions is not a table field. Localizability Warning
AA0222 SIFT index should not be used on primary or unique key. Design Warning
AA0223 The value of the OptionCaption property of Fields must be filled in. Localizability Warning
AA0224 The count of option captions specified in the OptionCaption property is wrong. Localizability Warning
AA0225 You must specify a caption in the Caption property for Fields that exist on page objects. Localizability Warning
AA0226 The value of the Caption property of Fields must be filled in. Localizability Warning
AA0227 Optional return value should not be omitted in upgrade codeunits. Design Warning
AA0228 The local method must be used; otherwise removed. Design Warning
AA0230 Version should not be specified for internal assemblies. Design Warning
AA0231 StrSubstNo or string concatenation must not be used as a parameter in the Error method. Design Warning
AA0232 The FlowField of a table should be indexed. Design Info
AA0233 Use Get(), FindFirst() and FindLast() without Next() method. Design Warning
AA0234 You must write a tooltip in the Tooltip property for all fields on table objects. Localizability Warning
AA0235 When using 'OnInstallAppPerCompany' you should also add 'Company-Initialize'::'OnCompanyInitialize' event subscriber. Design Info
AA0237 The name of non-temporary variables must not be prefixed with Temp. Readability Warning
AA0240 Email and Phone No must not be present in any part of the source code. Design Warning
AA0241 Use all lowercase letters for reserved language keywords. Readability Hidden
AA0242 Limit JIT loads by selecting all fields for load. Design Warning
AA0243 Running an upgrade codeunit is not allowed. Design Warning
AA0244 Do not use identical names for parameters and global variables. Design Warning
AA0245 To avoid confusion, do not give parameters the same name as fields, methods, or actions in the same scope. Design Warning
AA0246 Suppressing all diagnostics is not allowed. Design Warning
AA0247 Use namespaces. Design Info
AA0248 Add 'this' qualification to improve readability. Readability Hidden
AA0448 You must use the FieldCaption method instead of the FieldName method and TableCaption method instead of TableName method. Localizability Warning
AA0462 The CalcDate should only be used with DataFormula variables. Alternatively the string should be enclosed using the <> symbols. Localizability Warning
AA0470 Placeholders should have a comment explaining their content. Localizability Warning

Using the Code Analysis Tool
Ruleset for the Code Analysis Tool
Using the Code Analysis Tools with the Ruleset