List of Error and Warning Messages

Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

When using the Microsoft Dynamics AX development environment, you should adhere to a set of best practices. The X++ compiler checks the code for best practice issues. These issues can result in best practice errors, warnings, or informational messages. This topic also includes information about compilation errors.

Error and warning messages require changes in the X++ code, but informational messages do not require any user action. Informational messages are rare and self-explanatory.

The following sections list error and warning messages. The usage of these messages can vary in Microsoft Dynamics AX. For example, if you cannot find a warning message in the warning message table, it might be in the error message table. Each table is sorted alphabetically by the message text. All error and warning messages are shown exactly as they appear in the code.

Error Messages

The following table lists the best practice error messages. Many error messages are also discussed in more detail in other Help topics. Where appropriate, the table contains links to specific locations in other Help topics where messages are discussed in further detail.

Error message text Error icon

Description

BPError code and label

%1 %2 not used

For more information, see the following topics:

Method Variable Not Used, @SYS60464

The class %1 is obsolete. Instead, use the class %2.

Use the class indicated by the error message.

BPErrorClassDiscontinuedInLaterVers, @SYS69514

%1 is an unwanted object name.

For more information, see How to: Add Rules for Elements.

Unwanted Object, @SYS85681

%1 property of %2 is not valid.

Ensure that the menu item name assigned to the form Web control is valid.

Form Web Control Unknown Menu Item Name, @SYS93552

Action menu item not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoActionMenuItem, @SYS108556

Approve outcome must exist and be enabled

For more information, see Workflow Best Practices.

BPErrorWorkflowApprovalOutcomesInvalid, @SYS108546

Category not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowTemplateNoCategory, @SYS108536

Class name must by postfixed with %1

For more information, see Best Practices for Interfaces.

Class Name, @SYS87660

Code to handle the InventDimId field must be added to the Multisite Activation Wizard.

For more information, see Best Practices: Table Fields.

BPErrorTableFieldInventDimIdNotMultiSiteActivated, @SYS123160

Configuration key must be provided for a perspective.

For more information, see Best Practices for Perspectives.

Perspective Missing Configuration Key, @SYS94657

Configuration key not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoConfigKey, @SYS108553

Configuration Key with ID %1 is unknown.

Ensure that renamed configuration keys have not created a mismatch between the name referenced and the current IDs.

Configuration Key Unknown, @SYS73068

Control label is a copy of its display method label

For more information, see Forms Best Practices.

Label Is Copy Of Display Method, @SYS60361

Control label is a copy of its field label

For more information, see Forms Best Practices.

Report Label Is Copy Of Fields Label, @SYS57599

Control name %1 is not unique.

For more information, see the following topics:

Form Control Name Not Unique, @SYS87713

CodeField does not use an extended data type derived from CurrencyCode.

For more information, see Best practice parameters.

Field Currency Code Field Invalid, @SYS89379

CurrencyCodeField must not be blank when CurrencyCode is set to CurrencyCodeField.

For more information, see Best practice parameters.

Field Currency Code Field Empty, @SYS89329

CurrencyCodeTable must not be blank when CurrencyCode is set to CurrencyCodeField.

For more information, see Best practice parameters.

Field Currency Code Table Empty, @SYS89328

CurrencyDateField %1 does not use an extended data type derived from Date.

For more information, see Best Practices for Table Field Properties.

Field Currency Date Field Invalid, @SYS97998

CurrencyDateField must not be blank when CurrencyDate is set to CurrencyDateField.

For more information, see Best Practices for Table Field Properties.

Field Currency Date Field Empty, @SYS98000

CurrencyDateTable %1 does not have a relationship with this table, or no unique index exists on the target end of a relationship with that table

For more information, see Best Practices for Table Field Properties.

Field Currency Date Table Invalid, @SYS98002

CurrencyDateTable must not be blank when CurrencyDate is set to CurrencyDateField.

For more information, see Best Practices for Table Field Properties.

Field Currency Date Table Empty, @SYS97995

Current table and table %1 have Delete Actions in both directions.

For more information, see Best practice parameters.

Table Delete Action Both Directions, @SYS74301

Delete Actions related to an unknown table with ID: %1

For more information, see the following topics:

Table Delete Action Unknown Table, @SYS74302

Display/Edit method must be defined using a type

For more information, see Using the display Method Modifier.

Display Edit No Extended Return Type, @SYS55403

Display menu item not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoDisplayMenuItem, @SYS108559

Due date provider does not reference a valid class implementing the WorkflowDueDateProvider interface

For more information, see Workflow Best Practices.

BPErrorWorkflowElementDueDateProviderInvalid, @SYS108545

Element outcome '%1' ActionMenuItem property does not reference a valid action menu item

For more information, see Workflow Best Practices.

BPErrorWorkflowElementOutcomeActionMIInvalid, @SYS108549

Element outcome '%1' ActionMenuItem property not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowElementOutcomeNoActionMI, @SYS108547

Element outcome '%1' ActionWebMenuItem property does not reference a valid web action menu item

For more information, see Workflow Best Practices.

BPErrorWorkflowElementOutcomeActionWMIInvalid, @SYS108548

Element outcome '%1' EventHandler property does not reference a valid class implementing the '%2' interface

For more information, see Workflow Best Practices.

BPErrorWorkflowElementOutcomeEHInvalid, @SYS108551

Enum with ID %1 does not exist.

Ensure that renamed objects have not created a mismatch between the name referenced and the current IDs.

Enum Not Exist, @SYS57821

Event handler does not reference a valid class implementing the '%1' interface

For more information, see Workflow Best Practices.

BPErrorWorkflowEventHandlerInvalid, @SYS108564

Event handler not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoEventHandlerError, @SYS108563 

Extended Data Type is set to be right justified, should be set to left justified

For more information, see Best Practices: Performance Optimizations

BPErrorEnumRightJustified, @SYS107157

Extended data types that refer to record IDs must use Ref table or a derived extended data type.

For more information, see Best Practices: Table Fields.

Type Extends Rec Id, @SYS92962

Extended data types that refer to table IDs must use RefTableId or a derived extended data type.

For more information, see Best Practices: Table Fields.

Type Extends Table Id, @SYS92963

Field %1 with DEL_ prefix has configuration %2 instead of SysDeletedObjects.

For more information, see Best Practices: Tables.

BPErrorTableFieldDelConfigKeyConflict, @SYS107044

Table is using CreatedDateTime or ModifiedDateTime, RecId index needs to be created.

For more information, see Best Practices: Tables.

BPErrorRecIDNeededCreatedModifiedDateTime, @SYS127410

RecID field cannot be part of the NaturalKey index.

For more information, see Best Practices: Tables.

BPErrorTableNaturalKeyWithRecID, @SYS129768

Field group autoreport contains too few fields (%1).

For more information, see Best Practices for Field Groups.

Table Field Group Missing Fields, @SYS55439

Field Help is a copy of the Enum Help

For more information, see Best Practices for Table Field Properties.

Field Help Is Copy Of Enum Help, @SYS55431

Field Help is a copy of the Extended Data Type Help of the field

For more information, see Best Practices for Table Field Properties.

Field Help Is Copy Of Extended Help, @SYS55429

Field is not a member of a field group

For more information, see the following topics:

Table Field Not In Field Group, @SYS55434

Field label is a copy of the Enum label

For more information, see Best Practices for Table Field Properties.

Field Label Is Copy Of Enum Help, @SYS55430

Field label is a copy of the Extended Data Type label of the field

For more information, see the following topics:

Field Label Is Copy Of Extended Help, @SYS55428

Field must be defined using a type

For more information, see Best Practices for Table Field Properties.

Table Field Not Defined Using Type, @SYS55426

Field with ID %1 does not exist in table %2

A field in a table can be referenced by the field ID in several ways. For example, the field ID can be referenced by a relation, or by a field group. This error can be resolved by determining where the field ID is being referenced.

Form Group Field Id Unknown In Table (Also: Table Relation Unknown Extern Field, Table Relation Unknown Field, Type Field Not Exist In Table), @SYS55418

Fields using RefRecId or a derived type must have a relation defined for that field.

For more information, see Best Practices for Table Relations.

Table Field Ref Rec Id Without Relation, @SYS92956

Form group (%1) and table group (%2) have different numbers of fields. Consequently, they cannot be AOS optimized.

For more information, see Best practice parameters.

Form Group Control Dif Num Of Fields, @SYS68381

Form reference does not exist %1

For more information, see Best practice parameters.

Table Unknown Form Ref, @SYS55414

Help defined on a control that cannot display Help

Help Not Defined, @SYS85234

Hierarchy provider does not reference a valid class implementing the WorkflowHierarchyProvider interface

For more information, see Workflow Best Practices.

BPErrorWorkflowElementHierarchyProviderInvalid, @SYS108543

Index %1 has no fields

For more information, see Best Practices for Indexes.

Table Index Without Fields, @SYS87147

Index %1 is overlapped by index %2.

For more information, see Best Practices for Indexes.

Table Overlapping Index, @SYS87145

Invalid reference to workflow category

For more information, see Workflow Best Practices.

BPErrorWorkflowTemplateCategory, @SYS108537

Label %1 cannot end with a period ('.').

Label Wrong End Sign, @SYS55433

Label and Help are equal

For more information, see the following topics:

Label And Help Are Equal, @SYS55404

Method is not referenced in X++ code or indirectly

Add a call to the unused method, or remove the method.

Method Not Used, @SYS55408

Method run on %1 and has AOSRunMode set to %2

For more information, see Application Object RunOn Property Overview.

Method Bound Wrong, @SYS85345

Missing tag '%1' in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationParamTagMissing, @SYS107110

Missing tag 'returns' in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationReturnsTagMissing, @SYS107110

Missing tag 'summary' in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationSummaryTagMissing, @SYS107110

More than one tree node with this path: %1

For more information, see Best practice parameters.

AOT Path Not Unique, @SYS68375

No caching set up for the Table

For more information, see Best Practices for Table Properties.

Table No Caching, @SYS55412

No caption defined

For more information, see the following topics:

Caption Not Defined, @SYS60369

No Help defined

For more information, see Best Practices for Table Field Properties.

Help Not Defined, @SYS55407

No Label defined

Add a label using Tools > Labels > Label Editor. For more information, see the following topics:

Label Not Defined, @SYS55406

No such data source %1

For more information, see Best Practices for Form Design Properties.

Form Group Control Unknown DS, @SYS68379

Object has changed ID since previous release. Old ID was %1.

It is recommended that object IDs remain unchanged, especially for tables and fields. Changing an ID value can cause errors during upgrade.

For more information, see the following topics:

Object Id Conflict, @SYS93546

Object has changed name since previous release. Old name was %1.

For more information, see Best Practices for Table Field Properties.

Object Name Conflict, @SYS93547

One of the properties ParticipantProvider or HierarchyProvider must be defined

For more information, see Workflow Best Practices.

BPErrorWorkflowElementNoProvider, @SYS108542

Parent class contains abstract methods. Make class abstract or implement abstract methods %1.

For more information, see Best practice parameters.

Class Not Marked Abstract, @SYS74077

Parent Configuration Key with ID %1 is unknown.

Ensure that the configuration key value assigned to the ParentKey property is valid.

Configuration Parent Key Unknown, @SYS73075

Participant provider does not reference a valid class implementing the WorkflowParticipantProvider interface

For more information, see Workflow Best Practices.

BPErrorWorkflowElementParticipantProviderInvalid, @SYS108541

Primary index %1 allows duplicates.

For more information, see Best Practices for Index Properties.

Table Primary Index Not Unique, @SYS90099

Property %1 must contain a label ID such as @SYS4711, not %2

For more information, see Best Practices for Extended Data Type Properties.

Help Is Text, @SYS60289

Property %1 must contain a label ID such as @SYS4711, not %2

For more information, see the following topics:

Label Is Text, @SYS60289

Reference to action menu item is invalid

For more information, see Workflow Best Practices.

BPErrorWorkflowActionMenuItemInvalid, @SYS108557

Reference to display menu item is invalid

For more information, see Workflow Best Practices.

BPErrorWorkflowDisplayMenuItemInvalid, @SYS108560

Reference to object not in version control (%1)

In the version control system, ensure that you have created all the new objects that the code depends on.

Method Refers Local Object, @SYS86883

Reference to web action menu item is invalid

For more information, see Workflow Best Practices.

BPError WorkflowWebActionMenuItemInvalid, @SYS108558

Reference to web URL menu item is invalid

For more information, see Workflow Best Practices.

BPErrorWorkflowWebURLMenuItemInvalid, @SYS108561

Referenced menu does not exist

For more information, see Best practice parameters.

Menu Reference Unknown Ref Menu, @SYS55488

Relation %1 has no fields.

For more information, see Best Practices for Table Relations.

Table Relation No Fields, @SYS92955

Required element '%1' does not reference a valid workflow element

For more information, see Workflow Best Practices.

BPErrorWorkflowTemplateRequiredElementInvalid, @SYS108538

Required element '%1' does not reference same document as the workflow template

For more information, see Workflow Best Practices.

BPErrorWorkflowTemplateRequiredDocumentInvalid, @SYS108539

RunBase classes should be able to run on 'Called From' (Ensure pac and unpack are implemented correctly to allow PromptProm to marshal the class across tiers)

For more information, see Best Practices: Performance Optimizations

BPErrorClassRunBaseMarkedOnServer, @SYS107159

RunBase implementations must have a static description method.

For more information, see Best practice parameters.

Class No Static Description, @SYS72474

Table %1 does not exist.

For more information, see Best Practices for Form Design Properties.

Form Property Non Standard Value, @SYS75683

Table %1 with DEL_prefix has configuration %2 instead of SysDeletedObjects.

For more information, see Best Practices: Tables.

BPErrorTableDelConfigKeyConflict, @SYS107042

Table %1 with SysDeletedObjects configuration key (%2) has no DEL_ prefix.

For more information, see Best Practices: Tables.

BPErrorTableDelPrefixConflict, BPErrorTableDelPrefixConflict, BPErrorTableIndexDelConfigKeyConflict, @SYS107043

Table fields that refer to record IDs must use RefRecId or a derived extended data type.

For more information, see Best Practices for Extended Data Types.

Table Field Uses Rec Id, @SYS92960

Table fields that refer to table IDs must use RefTableId or a derived extended data type.

For more information, see Best Practices for Extended Data Types.

Table Field Uses Table Id, @SYS92961

Table group %1 is unknown (%2)

Check whether the reference by the form group to the table group is still valid.

You might need to delete the form group control, create a new field group, and then add a new form group control.

Form Group Control No Rel Table Group, @SYS73328

Table is missing Clustered Index

For more information, see Best Practices: Performance Optimizations

BPErrorTableNoClusteredIndex, @SYS107155

Table is missing Primary Index

For more information, see Best Practices: Performance Optimizations

BPErrorTableNoPrimaryIndex, @SYS107156

Table with ID %1 does not exist

Ensure that renamed tables have not created a mismatch between the name referenced and the current IDs.

Table Relation Unknown Extern Table (Also: Table Relation Unknown Table, Type Extern Table Unknown), @SYS55416

Tag '%1' exists more than once in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationDuplicated, @SYS107215

Tag '%1' has no content in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationParamMissing, @SYS107150

Tag '%1' in XML documentation doesn't match actual implementation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationParamWrongName, @SYS107113

Tag '%1' in XML documentation is not supported.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationUnsupported, @SYS107111

Tag 'exception' has no content in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationExceptionMissing, @SYS107150

Tag 'permission' has no content in XML documentation.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationPermissionMissing, @SYS107150

Task outcomes must contain one enabled outcome of type Complete

For more information, see Workflow Best Practices.

BPErrorWorkflowTaskNoCompleteOutcome, @SYS108552

The caption of the group control is a copy of its table data group label

For more information, see Forms Best Practices.

Caption Is Copy Of Data Group Label, @SYS68389

The class will be discontinued in a later version %1. Use: %2.

For more information, see Best practice parameters.

Method Discontinued In Later Vers, @SYS69514

The Client/Server setup is different from the parent class.

For more information, see Best Practices for Method Modifiers.

Class Run On, @SYS74731

The configuration key for the Table Field is a copy of the configuration key for the Base Enum.

For more information, see Best Practices for Table Field Properties.

Table Field Configuration Key Is Copy, @SYS91245

The configuration key for the Table Field is a copy of the configuration key for the Extended Data Type.

For more information, see Best Practices for Table Field Properties.

Table Field Configuration Key Is Copy, @SYS91243

The control Help text is a bad copy, and it should not be defined here.

For more information, see Best Practices for Table Field Properties.

Field Help Is Copy Of Enum Help (Also: Field Help Is Copy Of Extended Help), @SYS72533

The CurrencyCodeTable %1 does not have a relationship with this table, or no unique index exists on the target end of a relationship with that table.

For more information, see Best Practices for Table Field Properties.

Field Currency Code Table Invalid, @SYS89330

The Dimension field must always be the only field in the Dimension group.

For more information, see Best Practices for Field Groups.

Table Field Group Missing Fields, @SYS74735

The fields in the relation are incompatible. '%1.%2' is %3 characters too short.

Ensure that the data types of the fields are identical, or at least compatible between the two sides of the relation. Ensure that the strings in the foreign key are at least as long as the strings in the corresponding primary key.

Table Relation Fields Incompatible (Also: Type Fields Incompatible), @SYS55422

The form size exceeds the maximum of %1 * %2 pixels. Current size %3 * %4 (%5\% * %6\%).

For more information, see Forms Best Practices.

Form To High, @SYS75346

The form must include a grid that contains ValidFrom and ValidTo fields when that form has a data source with ValidTimeStateAutoQuery set to DateRange.

Checks that a grid exists that contains the ValidFrom and ValidTo fields when a form has a data source with ValidTimeStateAutoQuery property set to DateRange. For more information, see Valid Time State Tables and Date Effective Data.

BPErrorFormValidTimeStateMissingValidToOrFromDate, @SYS133561

The keyword forceliterals must not be used in the query expression

For more information, see X++ Standards: select Statements.

TwC Dangerous API, @SYS81941

The method will be discontinued in a later version %1%2%3. Use %4

For more information, see Best practice parameters.

Method Discontinued In Later Vers (Also: Method Dict Method Display Id Not Used), @SYS68910

The primary key field cannot be edited on update (AllowEdit must be set to No)

For more information, see Best Practices for Table Field Properties.

Table Primary Key Editable, @SYS60598

The primary key field must be mandatory.

For more information, see Best Practices for Table Field Properties.

Table Primary Key Not Mandatory, @SYS56378

The referenced application object does not exist (%1 %2).

For more information, see Best practice parameters.

Menu Function Unknown Ref Object, @SYS72553

Title field %1 must be declared.

For more information, see Best practice parameters.

Table Title Field1 Not Declared, @SYS56377

Title field 2 must be different from title field 1

For more information, see the following topics:

Table Title Field2 Not Declared, @SYS83885

TwC: Assert usage of API %1 because it is protected by Code Access Security.

For more information, see the following topics:

TwC Dangerous API, @SYS98156

TwC: Parameters to API %1 must be validated.

When code contains calls to system or kernel methods that may harm Microsoft Dynamics AX, the parameter data passed into those calls must be reviewed to ensure that the calls are harmless. After review, you may need to suppress the best practice error. For more information, see the following topics:

TwC Dangerous API, @SYS90609

TwC: Validate data displayed in form is fetched using record level security. Dangerous API %1 used.

For more information, see Best Practices: Avoiding Potential Security Issues.

BPErrorTwCEnsureRecordLevelSecurity, @SYS98155

Type Help is a copy of the Enum Help

For more information, see Best Practices for Extended Data Type Properties.

Type Help Is Copy Of Enum Help, @SYS55451

Type label is a copy of the Enum label

For more information, see Best Practices for Extended Data Type Properties.

Type Help Is Copy Of Enum Help, @SYS55450

Type label is a copy of the Extended (..) Data Type label of the type

For more information, see Best Practices for Extended Data Type Properties.

Type Label Is Copy Of Extended Help, @SYS55448

Unique index %1 contains field %2 with SysDelete configuration config key assigned to it.

A field in an index has been made obsolete by an upgrade to Microsoft Dynamics AX because it was marked with SysDelete. This field was part of a unique index. Redesign the unique index. For more information, see Unique Indexes.

Table Sys Delete Field Index, @SYS99948

Unique index error: Fields removed from unique index: %1. Upgrade script required.

For more information, see Unique Indexes.

Table Unique Index Error, @SYS93535

Unique index error: Previous nonunique index is now unique. Upgrade script required.

For more information, see Unique Indexes.

Table Unique Index Error, @SYS93534

Unique index error: Unique index introduced. Upgrade script required.

For more information, see Unique Indexes.

Table Unique Index Error, @SYS93533

Use Client/Server neutral functionality. Do not use: %1%2%3. Use: %4.

For more information, see Best Practices for Method Modifiers.

Method Neutral Funct Not Used, @SYS54379

Version mismatch of packed container. Check implementation of SysPackable interface.

For more information, see Best Practices for Interfaces.

Class Sys Packable, @SYS93536

Class is packing element IDs instead of element names.

For more information, see Best Practices for Interfaces.

BPErrorClassSysPackableElementIds, @SYS130592

Workflow document does not reference a valid class deriving from WorkflowDocument

For more information, see Workflow Best Practices.

BPErrorWorkflowDocumentInvalid, @SYS108555

Workflow document not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoDocument, @SYS108554

XML documentation is not well-formed.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationNotWellFormed, @SYS107112

Do not use braces around the case blocks in a switch statement.

You have braces around a case block in a switch statement that must be removed. For more information, see Switch Statements.

BPErrorMethodNoBracketsInCaseBlocks, @SYS152524

Do not use the <syntax> tag in XML documentation. The syntax is automatically derived from the method declaration, and must not be explicitly provided.

You have a <syntax> tag in XML documentation that must be removed. XML documentation is denoted by triple slash (///) comments at the start of a method.

BPErrorXmlDocumentationSyntaxForbidden, @SYS152515

Line item workflow '%1' event handler does not reference a valid class implementing the '%2' interface

Best practice rule for event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowEHInvalid , @SYS152823

Line item workflow relation '%1' not found on workflow document query '%2’

Best practice rule for event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowRelationNotFound, @SYS152835

Line item workflow relation '%1' is invalid. Relation must be configured with a fetch mode of 1:n on workflow document query '%2'

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowRelationInvalid, @SYS152836

Line item workflow relation not defined

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowRelationEmpty, @SYS152837

Line item workflow type '%1' not found

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowTypeNotFound, @SYS152839

Workflow document query not found on line item workflow type '%1'

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowTypeQueryNotFound, @SYS152840

Line-item workflow relation '%1' does not match root datasource on line item workflow type document query '%2'

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowTypeQueryNoMatch, @SYS152841

Line item workflow must have at least one line item workflow type

Best practice rule to support event handling that is now supported for approvals and tasks. For more information, see How to: Create a Workflow Event Handler.

BPErrorWorkflowLineItemWorkflowNoTypes, @SYS152842

The Company association type cannot be used for this workflow type because the table for the primary data source used by the workflow type is not configured to 'Save Data Per Company'.

Choose an alternative association type. This best practice rule was added to support organizational model types in workflow. For more information, see Associate a workflow with an organization.

BPErrorWorkflowInvalidAssociationTypeCompany, @SYS190334

The Global and Other association types cannot be used for this workflow type because the table for the primary data source used by the workflow type is configured to 'Save Data Per Company'.

Best practice rule to support organizational model types in workflow. For more information, see Associate a workflow with an organization.

BPErrorWorkflowInvalidAssociationTypeGlobalOther, @SYS190335

An association type relation must be selected when the association type is Other

Best practice rule to support organizational model types in workflow. For more information, see Associate a workflow with an organization.

BPErrorWorkflowMissingAssociationTypeRelation, @SYS190336

A class extending the SysTableExtension class should not have any member variables.

Best practice rule to enforce that the SysTableExtension class does not have any member variables. It is used to support the extension of the base class SysTableExtension. Use the SysTableExtension class to override the table data defaults.

BPErrorSysTableExtensionHasStates, @SYS190373

The node's path exceeds the maximum length of 400 characters. Reduce number of nesting levels or rename nodes.

Reports tree node paths that exceed a string size of 400.

BPErrorTreenodePathExceedsMaxLength, @SYS300071

Table is using CreatedDateTime or ModifiedDateTime, RecId index needs to be created.

BPErrorRecIDNeededCreatedModifiedDateTime, @SYS127410

The upgrade script is missing required attribute %1.

Checks that the upgrade script has the required Description attribute.

BPErrorMissingReqDesc

@SYS309412

The upgrade script is missing required attribute %1.

Checks that the upgrade script has the required Type attribute.

BPErrorMissingReqType, @SYS309412

The upgrade script is missing required attribute %1.

Checks that the upgrade script has the required Stage attribute.

BPErrorMissingReqStage, @SYS309412

The upgrade script is missing required attribute %1.

Checks that the upgrade script has the required Table attribute.

BPErrorMissingReqTable, @SYS309412

The upgrade script method cannot be static.

Checks that the upgrade script is a non-static method.

BPErrorMethodIsStatic, @SYS309410

The upgrade script method cannot accept parameters.

Checks that the upgrade script method has no parameters.

BPErrorMethodHasParams, @SYS309411

Table %1 specified in the UpgradeScriptTableAttribute is not valid.

Checks that the table stated in the attribute of an upgrade script exists in the AOT.

BPErrorTableNotFound, @SYS309400

Configuration Key %1 specified in the UpgradeScriptConfigKeyAttribute is not valid.

Checks that the configuration key stated in the attribute of an upgrade script exists in the AOT.

BPErrorConfigurationKeyNotFound, @SYS309401

Class %1 specified in the UpgradeDependsOnModuleAttribute is not valid.

Checks that the class name stated in the attribute of an upgrade script exists in the AOT.

BPErrorClassNameNotFound, @SYS309404

Method %1 in class %2 specified in the UpgradeDependsOnModuleAttribute is not valid.

Checks that the method name stated in the attribute of an upgrade script exists in the AOT.

BPErrorMethodNameNotFound, @SYS309403

The upgrade script does not have a valid version defined [#define.version(sysReleasedVersion)] in the class declaration.

Checks that the script version stated in the attribute of an upgrade script exists in the AOT.

BPErrorInvalidScriptVersion, @SYS309415

Return type covariance: Return values must both be either tables or maps (%1.%2).

Checks that the inherited return values must both be tables or both be maps.

BPErrorInheritedReturnTypeMustBeTableOrMap, @SYS309721

Return type covariance: Methods must return the same map (%1.%2).

Checks that the inherited methods must return the same map.

BPErrorInheritedReturnTypeMustBeSameMap, @SYS309722

The %1 relation to the %2 table does not have an upgrade script assigned. You must assign an upgrade script or exclude it from upgrade validation.

The unit of measure table is now global. At upgrade, company-specific units will be merged using user-defined mapping. This requires that existing tables that have relations to the unit of measure also apply the mapping. This best practice checks for relations to unit of measure and confirms that the relation to unit of measure is registered with an upgrade script or that the table is marked to be excluded from the upgrade.

The following code illustrates how to register a unit of measure upgrade job:

UnitOfMeasureUpgradeExecutor::registerUpgradeJobs()

The following code illustrates how to exclude a unit of measure table:

UnitOfMeasureUpgradeValidator::registerExcludedRelations()

For information on pre-upgrade tasks regarding units of measure see the following topics, Units, Unit conversions, Fixed units, and Unit texts.

BPErrorTableRelationNoUnitUpgrade, @SYS310791

A non-surrogate key primary index is not valid for a company-specific table

Checks that the primary key for a company-specific table is a surrogate key.

BPErrorNonSurrogateKeyForPerCompanyTable, @SYS315491

Use of labels for developer documentation

Checks that all the tables have a description of the table specified in the DeveloperDocumentation property.

BPErrorDeveloperDocumentationNotDefined, @SYS118413

Framework classes must have a disclaimer in the ClassDeclaration to discourage customizations.

Checks that the framework classes providing platform functionality have a message on them to discourage developers from customizing them. Customizing and extending classes that provide platform functionality may cause problems with future upgrades.

BPErrorClassFrameworkDisclaimer, @SYS316340

The framework class disclaimer must be placed after the XML documentation.

Framework classes have a disclaimer to discourage developers from customizing them. Customizing and extending classes providing platform functionality may cause problems with future upgrades.

Checks that the disclaimer is placed after the XML documentation, meaning after the /// comments.

BPErrorClassFrameworkDisclaimerPosition, @SYS316341

Each perspective entity (table or view) must have at most 1 parent.

Checks that the perspective entity (table or view) has at most one parent.

BPErrorPerspectiveEntityMultipleParents, @SYS316698

Each perspective entity (table or view) must have at most 1 child.

Checks that the perspective entity (table or view) has at most one child.

BPErrorPerspectiveEntityMultipleChildren, @SYS316701

Each perspective entity (table or view) must have a corresponding child for each parent.

Checks that the perspective entity (table or view) has a corresponding child for each parent.

BPErrorPerspectiveEntityMissingChild, @SYS316700

Each perspective entity (table or view) must have a corresponding parent for each child.

Checks that the perspective entity (table or view) has a corresponding parent for each child.

BPErrorPerspectiveEntityMissingParent, @SYS316699

In each perspective entity the parent type should be the same as the child type if present.

Checks that in a perspective entity, the parent type is the same as the child type if one exists.

BPErrorPerspectiveEntityParentChildTypesNotEqual, @SYS316702

Perspectives where SharedDimensionContainer=Yes cannot have fields where AnalysisUsage is Measure or Both. Perspective %1, table or view %2, field %3.

When a perspective has the SharedDimensionContainer property set to True, the AnalysisUsage property for fields should not be marked as Measure or Both. Setting the SharedDimensionContainer property to True indicates that the perspective will be used to create dimensions only. The perspective will not be used to create a cube, measure group, or measure. For more information, see Best Practices for Perspectives.

BPErrorPerspectiveMeasureInSharedDimensionContainer, @SYS322558

%1 or %2 must not be used in the sys layer.

Checks that the UpgradeModuleDependsOnMeAttribute attribute and UpgradeTaskDependsOnMeAttribute attribute are not used in the SYS layer.

BPErrorExternalUseOnlyAttribute, @SYS327183

Inconsistent usage of AOSAuthorization property for a table in chain of inheritance. Ensure that both tables %1 and %2 have authorization either enabled or disabled.

Checks that all the tables in the inheritance hierarchy have the same value for authorization: either Enabled or Disabled.

BPErrorTableTPFIntegrity, @SYS327320

Allowed CacheLookUp values for this TableGroup is %1

Checks that the cache lookup is valid for the table group.

BPErrorInvalidCacheLookUpAndTableGroup, @SYS327950

Service group must have a valid description

Checks that the Description property for a service group is provided. The description value must be a valid label.

BPErrorServiceGroupMustHaveDescription, @SYS328359

Service must have a valid Namespace property

Checks that the Namespace property for a service is set to a valid namespace. You may not use the default URI, for example https://tempuri.org.

BPErrorServiceMustHaveNamespace, @SYS328364

Entry point is not in any privilege

Checks that the entry point is in a privilege. A menu item (display, output, action), service operation, Web URL, Web action, and Web content managed nodes must be added as an entry point in a privilege.

BPErrorSecEntryPointNotCoveredByPrivilege, @SYS329300

Menu item points to a class that is not a RunBase class; it should probably have a linked permission object

Checks that the menu item has a linked permission. If the class that executes from the menu item launches a form, then the linked permission should point to the form. If the class is executing X++ code that requires access to tables that enable AOS authorization, then the linked permission should point to a code permission that grants the appropriate access.

BPErrorSecClassMenuDoesNotHaveLinkedPermission, @SYS329302

All duties should be part of a role

Checks that a duty is assigned to a process cycle that is assigned to a role.

BPErrorSecDutyNotCoveredByRole, @SYS329307

All duties should be part of a process cycle

Checks that a duty is assigned to a process cycle that is assigned to a role.

BPErrorSecDutyNotCoveredByProcessCycle, @SYS329308

A form that is not associated with other forms should be linked to at least one menu item

Checks that a form is linked to a menu item. If a form is not associated with another form or linked to a menu item, it will not be accessible. Forms are launched from a menu item or from another form.

BPErrorSecFormNotLinkedToMenuItem, @SYS329310

Non-system-managed %1 resource with incorrect managed by value %2

Best practice security check that a non-system-managed resource has Managed By value set to Manual.

BPErrorSecNonSystemResourceDoesNotHaveManagedBy, @SYS329375

Privilege is not in any duty.

Best practice security rule that checks that the privilege is set to a valid duty.

BPErrorSecPrivilegeNotPartofDuty, @SYS329303

Missing SysEntryPointAttribute on service operation

Checks that the SysEntryPointAttribute attribute on the service operation because it is exposed externally.

BPErrorSecServiceOperationDoesNotHaveSEP, @SYS329376

Missing processReport method

Checks that the report has a processReport method.

BPErrorSecSSRSRDPPR, @SYS329374

Missing SysEntryPointAttribute on SSRS RDP class

Checks that the SQL Server Reporting Services report data provider class has a processReport method defined with a SysEntryPointAttributeSysEntryPointAttribute attribute specified.

BPErrorSecSSRSRDPSysEP, @SYS329373

Info part not linked to menu items

Best practice security rule that checks that an Info Part is linked to a menu item. An Info Part is a collection of related data fields you can associate with a record in a form. You use Info Parts to create a FactBox for a form or the preview pane for a list page. To add an Info Part to a form, you use a menu item that links to the Info Part.

BPErrorSecInfoPartNotInMenuItem, @SYS329309

DeveloperDocumentation label should not be marked to be translated.

Checks that the DeveloperDocumentation property will not be translated. The label used in the DeveloperDocumentation property should have the {Locked} keyword in the comment for the label.

BPErrorDeveloperDocumentationNotLocked, @SYS330248

The help provider class isn't specified for this online documentation set

The HelpProviderClass property must be set if the ContentLocation property is set to Online for a Help Document Set.

BPErrorHelpProviderClassEmpty, @SYS331955

Query %1 can not be made searchable because it has zero or more that one data sources.

Checks that a searchable query has exactly one data source. You will get a best practice violation if no data source is specified or if more than one data source is specified.

BPErrorSearchableQueryNoDataSource, @SYS333623

Query %1 cannot be made searchable because it does not have the SearchLinkRefName property or the FormRef property set on the root table %2.

Checks that the searchable query has the SearchLinkRefName property or the FormRef property set on the root table. If not, the search results will not appear.

BPErrorSearchableQueryNoSearchLinkOnTable, @SYS334877

Query %1 is searchable but it does not have the SearchLinkRefName property set to a URL menu item on the root table %2. The search results in will not appear in Enterprise Portal.

Checks that the searchable query has the SearchLinkRefName property set to a URL menu item on the root table. If not, the search results will not appear in Enterprise Portal.

BPErrorSearchableQueryNoSearchLinkRefUrl, @SYS334878

Query %1 is searchable but it does not have the FormRef property set to a form on the root table %2. The search results in will not appear in the Microsoft Dynamics AX client.

Checks that the searchable query has the FormRef property set to a form on the root table or the search results will not appear in the Microsoft Dynamics AX client.

BPErrorSearchableQueryNoFormRef, @SYS334879

Query %1 cannot be made searchable because it does not have the TitleField1 or TitleField2 set on the root table %2.

Checks that the valid searchable query has the TitleField1 or the TitleField2 fields set on the root table.

BPErrorSearchableQueryNoTitleFields, @SYS334876

Update permissions for the search crawler role

Checks that the search crawler role has permissions for the table that was used in the query.

BPErrorSearchableQueryNoTablePermissions, @SYS334872

Query %1 cannot be made searchable because it has a root table that is a transaction table with no index on the ModifiedDateTime field.

Checks that the searchable query has a root table that is a transaction table with an index on the ModifiedDateTime field.

BPErrorSearchableQueryNoIndexOnTransactionTable, @SYS333624

Element has changed name since previous release. If the rename is intentional then suppress this violation; otherwise, update the LegacyID. Old name was: %1

Checks that the element has the same name as for the previous release of Microsoft Dynamics AX. If the change was intentional, suppress the violation.

This best practice check is not new, the message has been updated. This check has been modified due to the changes regarding installation specific IDs.

BPErrorObjectNameConflict, @SYS335103

The element has an origin value that is different from the origin value in a previous version of Microsoft Dynamics AX.

Checks that the element had the same origin value in earlier versions of Microsoft Dynamics AX. The origin value is the beginning value of the element. This check was added due to the changes regarding installation specific IDs.

BPErrorObjectOriginMismatch, @SYS335100

Element has no LegacyID assigned and was shipped in a previous version. All ID-based elements already shipped must have a LegacyID. Set Legacy ID to %1.

Checks that the element has a LegacyID property assigned because the element was shipped in an earlier version of Microsoft Dynamics AX. This check was added due to the changes regarding installation specific IDs.

BPErrorLegacyIdMissing, @SYS335102

Element has a different LegacyID than previous shipped version. Please update LegacyID, old LegacyId was %1.

Checks that the value specified in the LegacyID property occurs in the earlier version of Microsoft Dynamics AX. A LegacyID specifies an identifier element from a previous version of Microsoft Dynamics AX. This check was added due to the changes regarding installation specific IDs.

BPErrorLegacyIDConflict, @SYS335101

The element does not have an origin value. This element must have a non-null origin value.

Checks that the element has an origin value. This element must have an origin value that is not NULL. This check was added due to the changes regarding installation specific IDs.

BPErrorOriginNull, @SYS335099

Do not use a deprecated field as title field. Please select another title field.

Checks that deprecated fields are not used as title fields.

BPErrorTableTitleFieldDeprecated, @SYS338823

Do not use deprecated field %1 in non-deprecated index %2. Please remove the field or deprecate the index.

Checks that deprecated fields are not used as indexes. Replace the deprecated field or remove the index.

BPErrorTableIndexFieldDeprecated, @SYS338822

Do not use deprecated field %1 in field group %2. Please remove the field from the field group.

Checks that the deprecated field is not used in a field group. Remove the deprecated field from the field group.

BPErrorTableTableFieldGroupDeprecated, @SYS338821

Control %1 bound to table field group has name that does not match default name of %2, consequently the control requires storage and cannot be optimized

For more information, see Best Practices for Form Control Properties.

BPErrorFormGroupCannotBeOptimized, @SYS68376

The form group and table group have different fields at position %1: '%2' != '%3', consequently the control requires storage and cannot be optimized

For more information, see Best Practices for Form Control Properties.

BPErrorFormGroupControlDifFieldsAtPos, @SYS68382

Warning Messages

Warning message text Warning icon

Description

BPError code and label

%1 on control is set to nonauto (Date format)

For more information, see X++ Standards: Dates.

Report Date Format Set Non Auto, @SYS60296 + @SYS23272

%1 on control is set to nonauto (Decimal separator)

For more information, see Best Practices for Extended Data Type Properties.

Report Date Format Set Non Auto, @SYS60296 + @SYS24260

%1 on control is set to nonauto (%2)

For more information, see Best Practices for Extended Data Type Properties.

Report Thousand Sep Set Non Auto, @SYS60296

A data entry form should have at least two tab pages.

For more information, see Forms Best Practices.

Form Property Non Standard Value, @SYS84385

A display or edit method has the same name as this field. Rename the method or the field, and check whether field groups that contain this field should contain the method instead.

For more information, see Best Practices for Table Field Properties.

Table Field Has Same Name As Method, @SYS97063

Adjustment property for field %1 of table %2 does not match its related field %3 of table %4

For more information, see Best Practices for Table Field Properties.

Table Relationship Field Adjustment, @SYS91673

A document handling button on an Action Pane should have its Name property set to "Attachments".

For more information, see Best Practices: List Pages.

BPErrorListPageDocHandlingCmdButtonNameNotAttachments, @SYS116209

A document handling button on an Action Pane should use the label @SYS114630 for its Text property.

For more information, see Best Practices: List Pages.

BPErrorListPageDocHandlingCmdButtonTextNotAttachments, @SYS116210

A List Page must have a grid.

For more information, see Best Practices: List Pages.

BPErrorListPageFormHasNoGrid, @SYS116225

A List Page must have a single Action Pane.

For more information, see Best Practices: List Pages.

BPErrorListPageFormHasNoActionPane , BPErrorListPageFormHasTooManyActionPanes, @SYS116224

All buttons on an Action Pane should have their ShowShortcut properties set to "No" to suppress the addition of extra characters for pneumonic usage.

For more information, see Best Practices: List Pages.

BPErrorListPageActionPaneButtonShowShortcutNotNo, @SYS116207

An Action Pane should not be present on a form that isn't a List Page or other Content Page.

For more information, see Best Practices: List Pages.

BPErrorFormHasActionPane, @SYS116229

AnalysisSelection should not be Auto for a table that is visible for analysis.

For more information, see Best Practices for Table Properties.

Table Analysis Selection Auto, @SYS89276

AnalysisVisibility should not be Auto for a field in a table that is visible for analysis.

For more information, see Best Practices for Table Field Properties.

Field Analysis Visibility Auto, @SYS89279

AnalysisVisibility should not be Auto for a nonsystem table.

For more information, see Best Practices for Table Properties.

Table Analysis Visibility Auto, @SYS89275

Class should have at least one member

For more information, see Best practice parameters.

Class Missing Member, @SYS55390

Configuration Key is %1

Ensure a valid configuration key name is being used, rather than a placeholder value like "Not decided."

Configuration Key Specific (Also: Configuration Parent Key Specific), @SYS72461

Consider %1 method to run on %2 because it uses: %3

For more information, see the following topics:

Method Consider Run On, @SYS54211

Consider alternative to single quoted text %1 appearing in %2

For more information, see Best practice parameters.

Method Single Quoted Text, @SYS68040

Consider autodeclaring the form control %1

For more information, see Best Practices for Form Control Properties.

Method Not Auto Declared, @SYS68393

Consider restructuring the %1 method because it has calls to the %2 server methods: %3, and the %4 client methods: %5.

For more information, see Best Practices for Method Modifiers.

Method Consider Restructuring, @SYS54324

Consider use of delete_from because method contains 'while select ... ..delete()'

For more information, see Best Practices for Table Methods.

Method Delete From Not Used, @SYS55398

Consider use of more specialized intrinsic functionality because method contains %1

For more information, see Intrinsic Functions.

Method Identifier Str Used, @SYS55399

Consider using a field list for select of %1. Only %2% of record size is used.

For more information, see X++ Standards: select Statements.

Select Using Field List, @SYS91289

Consider using keyword 'firstonly' for select of %1.

For more information, see X++ Standards: select Statements.

Select Using First Only, @SYS91288

Control is not defined using anything (type, field or method)

Assign a source of information to the report control. Bind the control to a type, field, or method, or remove the control.

Report Control Use Not Defined, @SYS60363

Control is set to fixed width

For more information, see Best Practices for Form Control Properties.

Report Control Set Fixed Width, @SYS60297

CurrencyCode should be SecondaryCurrency when the field uses an extended data type derived from AmountMSTSecondary and the field is visible for analysis.

For more information, see Best practice parameters.

Field Currency Code Secondary Currency, @SYS89712

CurrencyDate should not be Auto when a field is using an extended data type derived from money or moneyMST and the field is visible for analysis

For more information, see Best Practices for Table Field Properties.

Field Currency Date Auto, @SYS98001

Display methods must be typed ('%1 %2')

For more information, see Best practice parameters.

Table No Extended Return Type, @SYS60362

Display/edit method does not use an Enum or Extended Data Type as return type: %1

For more information, see Best practice parameters.

Table No Extended Return Type, @SYS72489

Do not disable the control by setting Enabled to No. Set AllowEdit to No and Skip to Yes.

For more information, see Best practice parameters.

Form Disabling Technique, @SYS72538

Do not write to parameters (such as %1 in line %2, column %3)

For more information, see Best Practices for Parameters.

Method Variable Dont Write To Parms, @SYS60115

Duplicated user interface texts. Fields: %1.

For more information, see Best Practices for Labels.

Table Duplicate UI Text Field, @SYS75650

Duplicated user interface texts. Method %1.

For more information, see Best Practices for Labels.

Table Duplicate UI Text Method, @SYS72498

Element outcome '%1' EventHandler property should be defined

For more information, see Workflow Best Practices.

BPErrorWorkflowElementOutcomeNoEH, @SYS108550

Enum field is Mandatory

For more information, see Best Practices for Table Field Properties.

Table Field Enum Is Mandatory, @SYS55432

Enum is not referenced in X++ code, in the table field or in an Extended Type

For more information, see Best Practices for Extended Data Type Properties.

Enum Not Used, @SYS55470

Event handler should be defined

For more information, see Workflow Best Practices.

BPErrorWorkflowNoEventHandlerWarning, @SYS108562

Field is not referenced in X++ code

Add a reference to the field, or remove the unreferenced field.

Table Field Not Used, @SYS55427

FieldGroup AutoReport does not exist.

For more information, see Best Practices for Field Groups.

Table Missing Group Auto Report, @SYS55415

Help must end with a period or a question mark.

For more information, see Best Practices for Table Field Properties.

Help End Wrong Sign, @SYS72462

If Adjustment is set to Left, the StringSize for field %1 of table %2 must be greater than or equal to its related field %3 of table %4.

Increase the StringSize of the foreign key field.

Table Relationship Foreign Key To Short, @SYS91675

If Adjustment is set to Right', the StringSize for field %1 of table %2 must match that of its related field %3 of table %4.

For more information, see the following topics:

Table Relationship Field String Length, @SYS91674

Illegal name %1 %2: %3. Use parent, child, or sibling.

Terms like father, mother, sister, and brother should not be part of a member name. Replace the improper term with parent, child, or sibling.

Method Illegal Name, @SYS57827

Implement static construct to allow for modifications.

For more information, see Best Practices for Static Construct Methods.

Class No Static Construct, @SYS82256

Label is changed on the control from %1 to %2

For more information, see Best Practices for Form Control Properties.

Label Changed At Control, @SYS60298

Label on control is set to fixed width

For more information, see Form Control Properties.

Report Controls Label Set Fixed, @SYS60295

List Page Action Panes must have their VerticalSpacing property set to zero.

For more information, see Best Practices: List Pages.

BPErrorListPageControlVerticalSpacingNotZero, @SYS116212

List Page Action Panes must have their Width property set to "Column width".

For more information, see Best Practices: List Pages.

BPErrorListPageActionPaneWidthNotColumnWidth, @SYS116211

List Page controls must not have any vertical spacing between them.

For more information, see Best Practices: List Pages.

BPErrorListPageControlVerticalSpacingNotZero, @SYS116208

List Page datasources must have their AllowCreate set to "No".

For more information, see Best Practices: List Pages.

BPErrorListPageFormDataSourceAllowsCreate, @SYS116227

List Page datasources must have their AllowEdit set to "No".

For more information, see Best Practices: List Pages.

BPErrorListPageFormDataSourceAllowsEdit, @SYS116226

List Page datasources must have their StartPosition set to "First".

For more information, see Best Practices: List Pages.

BPErrorListPageFormDataSourceStartPositionNotFirst, @SYS116228

List Page grids must have their AllowEdit property set to "No".

For more information, see Best Practices: List Pages.

BPErrorListPageGridAllowsEdit, @SYS116213

List Page grids must have their Datasource property set to a valid datasource.

For more information, see Best Practices: List Pages.

BPErrorListPageGridDataSourceEmpty, @SYS116217

List Page grids must have their DefaultAction property set to a button on the form. The DefaultAction property should normally point to a button that performs the "Open" action.

For more information, see Best Practices: List Pages.

BPErrorListPageGridDefaultActionEmpty, @SYS116214

List Page grids must have their Height property set to "Column height".

For more information, see Best Practices: List Pages.

BPErrorListPageGridHeightNotColumnHeight, @SYS116215

List Page grids must have their ShowRowLabels property set to "Yes".

For more information, see Best Practices: List Pages.

BPErrorListPageGridShowRowLabelIsNotYes, @SYS116216

List Page grids must have their Width property set to "Column width".

For more information, see Best Practices: List Pages.

BPErrorListPageGridWidthNotColumnWidth, @SYS117724

List Pages  must have a name that ends with "ListPage".

For more information, see Best Practices: List Pages.

BPErrorListPageFormNameDoesNotEndInListPage, @SYS116218

List Pages must have their BottomMargin property set to "Auto".

For more information, see Best Practices: List Pages.

BPErrorListPageFormBottomMarginNotAuto, @SYS116222

List Pages must have their LeftMargin property set to "Auto".

For more information, see Best Practices: List Pages.

BPErrorListPageFormLeftMarginNotAuto, @SYS116220

List Pages must have their RightMargin property set to "Auto".

For more information, see Best Practices: List Pages.

BPErrorListPageFormRightMarginNotAuto, @SYS116221

List Pages must have their TitleDatasource property set.

For more information, see Best Practices: List Pages.

List Pages must have their TopMargin property set to "Auto".

For more information, see Best Practices: List Pages.

BPErrorListPageFormTopMarginNotAuto, @SYS116219

List Page Action Panes must have their VerticalSpacing property set to zero.

For more information, see Best Practices: List Pages.

BPErrorListPageControlVerticalSpacingNotZero, @SYS116212

List Page Action Panes must have their Width property set to "Column width".

For more information, see Best Practices: List Pages.

BPErrorListPageActionPaneWidthNotColumnWidth, @SYS116211

Method availability can be set explicitly to %1 via the Standard Public setting.

For more information, see Best Practices for Method Modifiers.

Method Access Can Be Set Explicitely, @SYS68392

Method contains code in unrequired braces %1 .... }

For more information, see X++ Layout.

Method Non Needed Block Style Used, @SYS59225

Method contains constant numeric value: %1

For more information, see X++ Standards: Constants.

Method Constant Numeric Arg Used, @SYS55396

Method contains labels in single quotes: >%1<

For more information, see X++ Standards: Constants.

Method Label In Single Quotes, @SYS55395

Method contains parenthesis round case constant: %1

For more information, see the following topics:

Method Parenthesis Round Case Const, @SYS55397

Method is empty

For more information, see Best practice parameters.

Method Is Empty, @SYS68904

MinNoOfDecimals is greater than NoOfDecimals

For more information, see Form Control Properties.

Form Control Min No Of Decimals (Also: Report Control Min No Of Decimals), @SYS96235

Missing super call in new method of sub class.

For more information, see Best Practices for new and static new... Methods.

Method Missing Super Call, @SYS62822

Module not defined

For more information, see Workflow Best Practices.

BPErrorWorkflowCategoryNoModuleDefined, @SYS108540

New should be protected.

For more information, see Best Practices for new and static new... Methods.

Class New Not Protected, @SYS82255

No self relation set up for the Table. Rename function will not be available.

For more information, see Best Practices for Table Relations.

Table No Self Relation, @SYS56050

No unique index set up for the table

For more information, see Unique Indexes.

Table No Unique Index, @SYS60691

Only parameters must start with an underscore, not variables such as %1

For more information, see the following topics:

Method Variable With Underscore, @SYS60113

Relation line %1 has possible errors in setup of the Configuration Keys. Field %2 has Configuration Key set %3 and field %4 has Configuration Key set %5.

For more information, see Best Practices for Table Relations.

Configuration Key Sets Not Ok, @SYS74477

Relation line %1 has possible errors in setup of the Configuration Keys. Type %2 has Configuration Key set %3 and field %4 has Configuration Key set %5.

For more information, see Best Practices for Table Relations.

Configuration Key Sets Not Ok, @SYS74534

Relation to table %1 (using %2) which is not in this table collection

For more information, see Best practice parameters.

Table Collection Relation, @SYS68398

Relations defined for a single record ID field should be defined on the extended data type for that field.

For more information, see Best Practices: Table Fields.

Table Field Ref Rec Id Relation On Table, @SYS92957

Report design orientation is not set to Auto

For more information, see Best Practices for Report Properties.

Report Des Orientation Not Set Auto, @SYS60368

Report has generated design %1

For more information, see Best Practices for Report Design.

Report Has Generated Design, @SYS60365

Report template %1 does not exist

For more information, see Best Practices for Report Properties.

Report Unknown Template, @SYS60367

SingularLabel should be provided for a table that is visible for analysis.

For more information, see Best Practices for Table Properties.

Table Singular Label Empty, @SYS89278

Table fields with AnalysisVisibility set to DefaultField or High should be in included in at least one perspective

For more information, see Best Practices for Table Field Properties.

Field Visible But Not In Perspective, @SYS94645

Table group is %1.

For more information, see Best Practices for Table Properties.

Table No Table Group, @SYS55413

Table has a record ID index but does not seem to use the record ID field explicitly for lookup

For more information, see the following topics:

Table Rec Id Field Used Useless, @SYS60597

Table has no record ID index but does use the record ID field explicitly in relation in %1

For more information, see the following topics:

Table No Record Id Index, @SYS60524

Table has no record ID index but does use the record ID field explicitly in select ... where in %1

For more information, see Best Practices for Table Properties.

Table No Record Id Index Select, @SYS60523

Table has no record ID index but uses it %1 times

For more information, see Best Practices for Table Properties.

Table No Record Id Index But Used, @SYS60522

Table has record ID index but does not use record ID field explicitly

For more information, see Best Practices for Table Properties.

Table Record Id Index Not Use Field, @SYS60520

Table is using CreatedDateTime +or ModifiedDateTime, RecId index needs to be created.

For more information, see Best Practices: Tables.

BPErrorRecIDNeededCreatedModifiedDateTime, @SYS127410

Tables with AnalysisVisibility set to High, Medium, or Low should be included in at least one perspective

For more information, see Best practice parameters.

Table Visible But Not In Perspective, @SYS94641

Tables with only one index should have it defined as a cluster index

For more information, see Clustered Indexes.

Table One Index Not Cluster, @SYS68395

Tag '%1' in XML documentation is not supported.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationUnsupported, @SYS107111

The Construct method must only instantiate the class. Consider using a static new pattern instead.

For more information, see Best Practices for Static Construct Methods.

Class Construct Pattern, @SYS82257

The CurrencyCode property should not be Auto if the field is derived from the money Extended Data Type and the AnalysisVisibility property is set to High or Low.

For more information, see Best Practices for Table Field Properties.

Field Currency Code Auto, @SYS89378

The designs property %1 is disabled and data source %2 has property %3 on table %4 set to true. Set the designs property %1 to Yes to ensure that the form restarts in the previous company.

Set the design property to Yes.

Form Property Non Standard Value, @SYS77537

The design property %1 is enabled, but the property %3 on table %4 for data source %2 has not been set correctly. Set the design property %1 to No to prevent the form from restarting in the previous company.

Set the design property to No.

Form Property Non Standard Value, @SYS77486

The group could be based on a (new) table field group

For more information about groups on forms, see Forms Best Practices.

Form Group Could Be Based On New Group, @SYS68387

The group is empty

For more information about groups on forms, see Forms Best Practices.

Form Group Is Empty, @SYS68388

The group should be given a logical name

For more information about groups on forms, see Forms Best Practices.

Form Group No Logical Name, @SYS68385 = @SYS68384

The primary index should be defined because a unique index exists

For more information, see the following topics:

Table Unique Index No Primary, @SYS68396

The property %1 has a nondefault value %2. Expected %3.

All form properties that have an Auto or Default setting should be kept at that setting. For more information, see Best Practices for Form Design Properties.

Form Property Non Standard Value, @SYS72374

The property %1 should be set to %2.

For more information, see Best Practices for Form Design Properties.

Form Property Non Standard Value, @SYS84109

The word %1 is not spelled correctly.

For more information, see Best practice parameters.

Doc Node Spelling Mistake, @SYS84009

This class without members does not extend any other class

For more information, see Best practice parameters.

Class No Member Not Extend, @SYS55391

This date construction can be illegal: %1

For more information, see Best practice parameters.

Method Illegal Date Construction, @SYS68391

ttsbegin/ttscommit are unbalanced with %1

For more information, see X++ Standards: ttsBegin and ttsCommit.

Method Unbalanced Ttsbegin Commit, @SYS57826

TypicalRowCount should not be Auto for a table that is visible for analysis.

For more information, see Best Practices for Table Properties.

Table Typical Row Count Auto, @SYS89277

Unextended class without members is not extended by any other class

Add a member to the class, or remove the class.

Class Unextended Not Extend, @SYS55392

The class %1 cannot be constructed with the X++ keyword New. You can use %2.

For more information, see Best Practices for Static Construct Methods.

Method Illegal Construction Used, @SYS55400

Variable %1 is not written, but read.

For more information, see Best practice parameters.

Method Variable Read But Not Written, @SYS60114

XML documentation not written for this method.

For more information, see Best Practices: XML Documentation.

BPErrorXmlDocumentationMissing, @SYS107198

Compilation Errors

The following table lists the compiler error messages. Many error messages are also discussed in more detail in other Help topics.

Error Message Text

Description

Illegal second format.

Minute is not between 00-59.

Illegal Time.

Second is not between 00-59.

Minute is not between 00-59.

Hour is not between 00-23.

Unicode escape requires exactly 4 or 8 hexadecimal digits after \u or \U.

Number is too big.

Illegal date .

Month is not between 1-12.

Year is not between 1900-2154.

The macro has already been defined with a different value.

An } (end brace) is missing in the macro.

An ) (end parenthesis) is missing in the macro.

The macro was terminated prematurely.

The macro is too complex.

Too many arguments have been specified for the macro.

The %1 macro does not exist.

This symbol cannot be used in scripts.

Lexical error.

The script was terminated prematurely.

An overflow occurred in the internal parser stack.

Syntax error.

Operand types are not compatible with the operator.

Table %1 does not exist.

The table does not contain this index.

Assignment or comparison loses precision.

Empty compound statement.

The table is out of range or does not exist.

The table %1 does not contain the field %2.

System fields may not be inserted or updated.

Variable %1 has not been declared.

The wrong number of arguments has been specified for the method .

Argument '%1' is incompatible with the required type.

%1 

The enumeration does not exist .

The name %1 has already been assigned to another variable.

The internal  object code must not exceed 64K.

Overflow in an internal compiler stack.

Insufficient memory to run job. 

Best Practice: Class names should start with an uppercase letter.

Unreachable code.

Method %1 never returns a value.

Not all paths in %1 return a value.

A SWITCH statement may not contain more than one default part.

A BREAK statement was found in an illegal context. BREAK statements occur in the context of a SWITCH, WHILE, DO, or FOR statement.

This modifier is not allowed on interfaces.

The new method of a derived class does not call super().

The new method of a derived class is not guaranteed to call super() on the inherited class. Provide an unconditional call to super().

Array index %1 is out of bounds. Maximum value is %2.

Best Practice: Member name %1 should start with a lowercase letter.

The field must be a data element that allows assignment.

Abstract and interface methods can not  be static or final.

Declarations are illegal in interfaces.

%1 is not a class. Only classes (not interfaces) can extend classes.

This data element cannot be used here.

Interfaces must extend interfaces, not classes.

%1 is not a class. Only classes can implement interfaces.

%1 is not an interface.

EDIT and DISPLAY methods must be public.

Object could not be created because class %1 is abstract.

Object could not be created because abstract method %1 has not been implemented.

Column %1 has been specified more than once in the ORDER BY list. Columns in the ORDER BY list must be unique.

An error occurred while running the job .

 Abstract methods may only be declared in abstract classes.

Edit and Display modifiers are illegal here.

The Client and Server modifiers may only be used on static methods.

This access modifier has already been supplied.

Conflicting access modifier given.

AND and OR are used at the same level in an expression. 

The variable is not an array.

The variable is an array.

Final class %1 may not be extended.

Numbered field references in keys cannot be used.

Derived method %1 may not restrict access level defined for superclass.

Method %1 is declared final and may not be overridden.

Index type must be numeric.

Method %1 is declared private and may not be overridden.

The method is declared protected and may only be called from methods in classes derived from %1.

The method is declared private and may only be called from methods in class %1.

An aggregate function is not allowed for a read-only field.

A field has not been selected in the SEARCH command.

The field has already been selected .

The type does not exist. 

A method named %1 has already been declared.

The field is not an array.

Illegal use of WHERE expression.

The class %1 does not contain this method .

The variable is not of the type CLASS.

%1 is not a class.

%1 is not a class method.

RETRY is used outside a CATCH command.

The table %1 does not contain the method %2.

The map does not exist.

The map does not contain this method .

The operand is not compatible with the type of the method.

The method cannot return a value.

The method %1 has not been declared.

The method override must be declared with the same return type as the base method.

The method override has an incorrect number of parameters.

One of the parameters for the overridden function  has an incorrect type.

The display method has an incorrect parameter profile.

The edit method has an incorrect parameter profile.

Super() not allowed here.

The class variable cannot be initialized here. Use the new method.

The specified class hierarchy is incorrect.

The name of the overridden method cannot be changed.

The method already exists.

The class already exists.

The operand for the method is not an element.

 Nofetch is not allowed here.

The name %1 is already used in an outer scope.

Cannot execute on server.

Container and unbounded string fields are not allowed in a WHERE expression.

Container and unbounded string fields are not allowed in an ORDER BY or GROUP BY list.

Cannot add or remove static keyword for this method.

Variables declaration is too long. Legal size is approximately 32K in chars. 

The argument should be a class.

The RecId index is not enabled on the table.

Illegal base type in array %1.

Name is too long. Truncate name to %1.

Interfaces may not be instantiated.

Abstract methods cannot contain code or declarations.

The selection field list (%1 fields) does not match the insertion field list (%2 fields).

Attempt to match a specific array field element (%1) to an array (%2).

Cannot match field %1 to field %2.

Field selections using * are illegal in INSERT statements.

Updating views is not supported.

Keyword is not allowed for this statement type.

Inner or outer join is illegal in this context.

'%1' table hint is not compatible with '%2' table hint.

Cannot implicitly convert type '%1' to '%2'. An explicit conversion might exist; use System.Convert.

No more Rec IDs. 

The Client modifier may not be used on data access methods.

Illegal use of SETTING expression.

Attempt to use a field from an exists or notexists join in an illegal context.

Order by and group by clauses are not allowed in update_recordset statements.

Unable to run an update query that references both temporary and permanent database tables. Rewrite your query to only reference one type of table.

Qualified field names are required to use an ORDER BY and GROUP BY clause in the same SELECT statement. When using qualified field names, SELECT statements can only contain a maximum of one ORDER BY clause and one GROUP BY clause. When using unqualified field names, SELECT statements can either contain multiple ORDER BY clauses or multiple GROUP BY clauses.

Cannot mix unqualified ORDER BY or GROUP BY clauses with qualified ORDER BY or GROUP BY clauses.

When using qualified field names, statements can only contain a maximum of one ORDER BY clause and one GROUP BY clause. When using unqualified field names, statements can either contain multiple ORDER BY clauses or multiple GROUP BY clauses.

Unqualified and qualified field names cannot be used in the same ORDER BY or GROUP BY clause.

Qualified field names cannot be used in field SELECT statements.

Table names do not match. The table referenced in the qualified field name must match the table referenced  in the SELECT statement.

Invalid join mode in union query. Join mode of the second level data source for query of type union can only be exists or notexist.

Field mismatch in union query. Field '%1' is not compatible with field '%2'.

Field number mismatch in union query. Field number in '%1' is not the same as the field number in '%2'.

Field ‘%1’ can only be used once in the ORDER BY clause. Fields used in the ORDER BY clause must be unique.

Field ‘%1’ can only be used once in the GROUP BY clause. Fields used in the GROUP BY clause must be unique.

Temporary tables can have either Group By or Order By fields, but not both.

The specified sequence of Group By and Order By fields is not supported.

Variable %1 is not an array.

The variable %1 does not match the field %2.

The variable %1 does not match field %2.Each must be defined using the same extended data type.

Variable %1 must be a container.

The use of the keyword CROSSCOMPANY  is invalid in this context.

An aggregate field cannot be specified on a query data source that is selected for update.

There was an invalid use of %1 unbound string during insert. 

The size of variable %1 does not match the size of field %2. A loss of data is possible.

Invalid use of the DataAreaId field in a cross-company query.

Invalid use of a container field during insert.

A cross-company UNION ALL query cannot contain both a company specific and global table unless the data area field is explicitly selected.

Field '%1' is used in an EXISTS JOIN or NOTEXISTS JOIN clause and cannot be used in a GROUP BY and ORDER BY clause.

Invalid usage of crosscompany  in this context.

Cannot set a table as temporary which is part of inheritance hierarchy .

The %1 attribute class has not been declared.

The name %1 is not a class that extends the %2 class.

Attribute classes cannot be used on the %1 function. Attribute classes can be used only on class or table methods, class declarations, or delegates.

Argument %1 loses precision during assignment or comparison.

Variables %1 and %2 to validTimeState has to be date or utcdatetime type. 

Variable %1 has to  be date or utcDateTime.

Invalid usage of validtimestate in this context .

The %1 class is obsolete. %2

The %1 method is obsolete. %2

Calling setTmp is not allowed on a valid time state table buffer.

Table does not contain a valid time state key. A unique index needs to be marked as a valid time state key.

The type %1 must designate a compatible class, an interface, or a table.

The managed type %1 is not known. Add a reference to the assembly containing the type.

The static type of the expression is incompatible with the type %1.

The class %1 should not be declared as private.

The .NET managed namespace %1 was not found. The corresponding assembly is not registered in the AOT References, or the assembly file has not been copied to the Client\Bin\ directory under the installation path.

Table %1 cannot be filtered with a validTimeState  clause because its ValidTimeStateFieldType property is None.

The wrong number of parameters are passed during object creation.

Parameter %1 must have a default value.

The type on the throw statement must be a value of the Exception enum. 

The array parameter %1 cannot specify the array size.

Parameter %1 cannot be a str type array. Use the Array class for a parameter of str values .

Managed arrays do not support the syntax of a direct indexer. Use the GetValue and SetValue methods to access the elements in managed arrays.

The event handler definition is invalid. The static method %1 does not exist in the class %2.

The event handler definition is invalid. The static method %1 in class %2 cannot be used because it is not public.

The event handler definition is invalid. The static method %1 in class %2 does not return void.

The number of parameters in the method %1, in class %2, does not match the event definition.

A parameter in the method %1, in class %2, does not match the event definition.

The event handler definition is invalid. The method %1 does not exist in the class %2.

The event handler definition is invalid. The method %1 in class %2 cannot be used because it is not public.

The event handler definition is invalid. The method %1 in class %2 does not return void.

Map and view fields cannot be assigned to fields in an update_recordset  statement.

%1 %2  method is not supported when the Data Sources ChangeGroupMode property is set to None.

%1 %2 method is not supported when the Data Sources ChangeGroupMode property is set to ImplicitInnerOuter.

The join  keyword is illegal in this context.

Static constructors are not supported.

Invalid call to abstract method .

An event handler cannot subscribe to itself.

Overriding a delegate is not supported.

A derived table in table inheritance cannot override system  field.

The assignment is invalid because the variable %1 is read only.

To use the attribute SysEntryPointAttribute, the method must run on the server tier. Add the server  keyword to the X++ method declaration, or change the RunOn property of the class that contains the method.

The event handler definition is invalid. The method %1 in class %2 must have exactly one argument of type XppPrePostArgs or must match the method signature exactly.

See also

Best Practices Checks

Best Practices: Avoiding Potential Security Issues

Announcements: New book: "Inside Microsoft Dynamics AX 2012 R3" now available. Get your copy at the MS Press Store.