In this document, you can find the list of diagnostics and code refactorings supported by Acuminator.
Acuminator diagnostics are displayed if the value of Tools > Options > Acuminator > Code Analysis > Enable code analysis is True (which is the default setting).
Acuminator does not perform static analysis of projects whose names contain Test
or Benchmark
. Generally, these projects contain tests of an application and do not include any application logic; therefore there is no need to analyze them with Acuminator.
Note: In the following table, the types of the diagnostics are specified for the ISV solution certification—that is, if the Enable additional diagnostics for ISV Solution Certification option (in Tools > Options > Acuminator > Code Analysis) is set to True
. The type of the diagnostic can be different if this option is set to False
. For details about the type of the diagnostic, see the description of the diagnostic.
Code | Short Description | Type | Code Fix |
---|---|---|---|
PX1000 | An invalid signature of the PXAction handler is used. |
Error | Available |
PX1001 | A PXGraph instance must be created with the PXGraph.CreateInstance() factory method. |
Error | Available |
PX1002 | The field must have a type attribute that corresponds to the list attribute. | Error | Available |
PX1003 | Consider using a specific implementation of PXGraph . |
Warning (ISV Level 2: Production Quality) | Unavailable |
PX1004 | The order of view declarations will cause the creation of two cache instances. | Message | Unavailable |
PX1005 | There is probably a typo in the name of the view delegate or the action delegate. | Warning (ISV Level 3: Informational) | Available |
PX1006 | The order of view declarations will cause the creation of one cache instance for multiple DACs | Message | Unavailable |
PX1007 | The DAC, DAC extension, or DAC property should have a description in the "summary" XML tag or "inheritdoc" XML tag | Error | Available |
PX1008 | The reference to the screen graph or an action adapter in the long operation and processing delegates cause synchronous execution of the delegate. | Error | Unavailable |
PX1009 | Multiple levels of inheritance are not supported for PXCacheExtension . |
Error | Available |
PX1010 | If a delegate applies paging in an inner select, StartRow must be reset. (If StartRow is not reset, paging will be applied twice.) |
Warning (ISV Level 1: Significant) | Available |
PX1011 | Because multiple levels of inheritance are not supported for PXCacheExtension , the derived type can be marked as sealed. |
Warning (ISV Level 3: Informational) | Available |
PX1012 | PXAction is declared on a non-primary view. |
Warning (ISV Level 2: Production Quality) | Available |
PX1013 | The action handler that initiates a background operation or is executed by a background operation must return IEnumerable . |
Error | Available |
PX1014 | A DAC field must have a nullable type. | Error | Available |
PX1015 | For a BQL statement that contains parameters, the number of arguments of a Select method is different from the number of parameters. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1016 | A DAC or graph extension must include the public static IsActive method with no parameters and the bool return type. Extensions that are constantly active reduce performance. Suppress the error if you need the DAC extension to be constantly active. |
Error | Unavailable |
PX1018 | The graph with the specified primary view type parameter doesn't contain the primary view of the specified type. | Error | Unavailable |
PX1019 | A DAC property field with the AutoNumber attribute must have the string type. |
Error | Available |
PX1020 | For the DAC property with the AutoNumber attribute, the string length must be greater than or equal to PX.Objects.CS.NumberingSequence.StartNbr value. |
Error | Available |
PX1021 | The type of the DAC field attribute does not correspond to the property type. | Error | Available |
PX1022 | The non-public graphs, DACs, graph and DAC extensions are not supported. | Error | Available |
PX1023 | The DAC property is marked with multiple field type attributes. | Error | Available |
PX1024 | The DAC class field must be abstract. | Error | Available |
PX1026 | Underscores cannot be used in the names of DACs and DAC fields. | Error | Available |
PX1027 | The CompanyMask , CompanyID , Notes , Files , DatabaseRecordStatus , and DeletedDatabaseRecord fields cannot be declared in DACs. The name of a DAC field also cannot begin with the Company prefix. |
Error | Available |
PX1028 | Constructors in DACs are prohibited. | Error | Available |
PX1029 | PXGraph instances cannot be used inside DAC properties. |
Error | Unavailable |
PX1030 | The PXDefault attribute of the field is used incorrectly. |
Warning (ISV Level 1: Significant) or Error | Available |
PX1031 | DACs and DAC extensions cannot contain instance methods. | Error | Unavailable |
PX1032 | DAC properties cannot contain method invocations. | Error | Unavailable |
PX1033 | The DAC does not have an explicit primary key declaration | Warning (ISV Level 3: Informational) | Available |
PX1034 | The DAC does not have an explicit foreign key declaration | Warning (ISV Level 3: Informational) | Available |
PX1035 | The DAC has multiple key declarations that use the same set of fields | Warning (ISV Level 3: Informational) | Available |
PX1036 | The DAC must have one primary key which should be named PK . The class containing DAC foreign keys should be named FK . The single unique key in the DAC should be named UK . All unique keys in the DAC should be declared in a public static class named UK . |
Warning (ISV Level 3: Informational) | Available |
PX1037 | An unbound DAC field cannot be used in a key declaration. | Error (ISV Level 3: Informational) | Unavailable |
PX1040 | Instance constructors in BLC extensions are strictly prohibited. You should use the Initialize() method instead. |
Error | Available |
PX1041 | Classic graph event handlers which rely on naming conventions can be converted to generic graph event handlers which have a strongly typed generic signature. | Information | Available |
PX1042 | In a RowSelecting handler, BQL statements and other database queries must be executed only inside a separate connection scope. In Acumatica ERP 2023 R1 and later versions, this diagnostic is disabled. |
Error | Available |
PX1043 | Changes cannot be saved to the database from event handlers. | Error | Unavailable |
PX1044 | Changes to PXCache cannot be performed in event handlers. |
Error | Unavailable |
PX1045 | PXGraph instances cannot be created in event handlers. |
Error | Unavailable |
PX1046 | Long-running operations cannot be started within event handlers. | Error | Unavailable |
PX1047 | In the FieldDefaulting , FieldVerifying , and RowSelected event handlers, DAC instances passed to these event handlers cannot be modified. |
Error | Unavailable |
PX1048 | For the RowInserting and RowSelecting events, only the DAC instance that is passed in the event arguments can be modified in the event handler. |
Error | Unavailable |
PX1049 | In RowSelected event handlers, BQL statements and other database queries should be avoided. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1050 | Hardcoded strings cannot be used as parameters for localization methods, PXException and PXExceptionInfo constructors. |
Error | Unavailable |
PX1051 | The strings defined in a class without the PXLocalizable attribute cannot be used as parameters for localization methods, PXException and PXExceptionInfo constructors. |
Error | Unavailable |
PX1052 | Plain text strings cannot be used in the methods of the LocalizeFormat family. |
Error | Unavailable |
PX1053 | Concatenated strings cannot be used as parameters for localization methods, PXException and PXExceptionInfo constructors. |
Error | Unavailable |
PX1054 | A PXGraph instance cannot start a long-running operation during the PXGraph initialization. |
Error | Unavailable |
PX1055 | An invalid primary key of the DAC is used. | Error | Available |
PX1056 | A PXGraph instance cannot be initialized inside the IsActive or IsActiveForGraph<TGraph> method. |
Error | Unavailable |
PX1057 | A PXGraph instance cannot be initialized while another PXGraph instance is being initialized. |
Error | Unavailable |
PX1058 | A PXGraph instance cannot save changes to the database during the PXGraph initialization. |
Error | Unavailable |
PX1059 | Changes to PXCache cannot be performed during the PXGraph initialization. |
Error | Unavailable |
PX1060 | DAC fields should be strongly typed to be used in fluent BQL queries. | Message | Available |
PX1061 | Constants should be strongly typed to be used in fluent BQL queries. | Message | Available |
PX1062 | You cannot declare static views, actions, mutable fields, and mutable properties in graphs or graph extensions | Error | Available |
PX1063 | The declaration of the exception class does not contain a serialization constructor. This will cause an incorrect deserialization of the exception data and will lead to runtime errors in Acumatica ERP. | Error | Available |
PX1064 | The declaration of the exception class introduces new serializable fields but does not declare an override for the GetObjectData method. This will cause an incorrect serialization of the exception data and will lead to runtime errors in Acumatica ERP. |
Error | Available |
PX1065 | The DAC field property does not have a corresponding BQL field. | Error | Available |
PX1066 | The name of the BQL field may contain a mistake. | Warning (ISV Level 3: Informational) | Available |
PX1067 | The DAC does not contain a redeclaration of a BQL field declared in the base DAC. | Warning (ISV Level 3: Informational) | Available |
PX1068 | The type of the DAC field property does not correspond to the type of the BQL field. | Error | Available |
PX1070 | The state of fields and actions can be configured only in RowSelected event handlers. |
Error | Unavailable |
PX1071 | Actions cannot be executed within event handlers. | Error | Unavailable |
PX1072 | BQL queries must be executed within the context of an existing PXGraph instance. |
Warning (ISV Level 1: Significant) | Available |
PX1073 | Exceptions cannot be thrown in the RowPersisted event handlers. |
Error | Unavailable |
PX1074 | PXSetupNotEnteredException cannot be thrown in any event handlers except for the RowSelected event handlers. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1075 | PXCache.RaiseExceptionHandling cannot be invoked from the FieldDefaulting , FieldSelecting , RowSelecting , and RowPersisted event handlers. |
Error | Unavailable |
PX1076 | This code calls Acumatica internal API marked with PXInternalUseOnlyAttribute which is not intended for public use | Warning | Unavailable |
PX1077 | Event handlers in graphs and graph extensions should have the protected and virtual modifiers |
Error | Available |
PX1078 | The DAC field and the referenced DAC field have different types or sizes. | Error | Unavailable |
PX1080 | Data view delegates should not start long-running operations. | Error | Unavailable |
PX1081 | Actions cannot be executed during the PXGraph initialization. |
Error | Unavailable |
PX1082 | Actions cannot be executed within data view delegates. | Error | Unavailable |
PX1083 | Changes cannot be saved to the database from data view delegates. | Error | Unavailable |
PX1084 | PXGraph instances cannot be initialized within data view delegates. |
Error | Unavailable |
PX1085 | BQL statements and other database queries should not be executed during the PXGraph initialization. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1086 | PXSetupNotEnteredException cannot be thrown in long-running operations. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1087 | This invocation of the base data view delegate can cause a StackOverflowException . |
Warning (ISV Level 1: Significant) | Unavailable |
PX1089 | The state of fields and actions cannot be configured in the action delegates. | Error | Unavailable |
PX1090 | PXSetupNotEnteredException cannot be thrown in action handlers. |
Warning (ISV Level 1: Significant) | Unavailable |
PX1091 | This invocation of the base action handler can cause a StackOverflowException . |
Warning (ISV Level 1: Significant) | Unavailable |
PX1092 | Action handlers must be decorated with the PXUIField attribute and with the PXButton attribute or its successors. |
Error | Available |
PX1093 | In a graph declaration, the first type parameter of PXGraph must be the graph type. |
Error | Available |
PX1094 | Every DAC should be decorated with the PXHidden or PXCacheName attribute. |
Warning (ISV Level 3: Informational) | Available |
PX1095 | A field with the PXDBCalced or PXDBScalar attribute must have an unbound type attribute, such as PXDate or PXDecimal . |
Error | Unavailable |
PX1096 | The signature of a method with the PXOverride attribute must match the overridden method. |
Error | Unavailable |
PX1099 | The API reported by the diagnostic should not be used with the Acumatica Framework. | Warning | Unavailable |