To Resolve Issues While Upgrading a Customized Website

If you have a customization project that works properly for the current version of MYOB Acumatica and you need to upgrade an application instance to a newer version, the customization project might not work properly or might even prevent the website from starting after the upgrade. This happens because the code of MYOB Acumatica is continuously developed to implement new features or enhance existing functionality, so the code of an updated instance of MYOB Acumatica can become inconsistent with the code in a customization project. For example, if the signature of a method that is overridden in the customization code is changed in the original code, a run-time error may occur in the graph extension. As another example, modified or deleted database columns and tables might cause the functionality of a data access class extension to fail.

Validation Process

To prevent these issues between the customization and the current version of MYOB Acumatica, before you upgrade a customized instance of MYOB Acumatica to a new version, the MYOB Acumatica Customization Platform validates the compatibility of the code included in all currently published customization projects with the application code of the update version. This validation process executes the following checks in the code of the published customization to detect the breaking changes in the code of MYOB Acumatica:
  • In graph extensions:
    • Checking the signature for each method that is overridden by using the PXOverride attribute.
    • Checking the existence of each base graph.
  • In data access class extensions, if a field attribute is overridden:
    • Checking the field existence.
    • Checking that the field type is not changed. (If the customization code uses the field value as decimal and the field type is changed, for example, from PXDBDecimal to PXDBString that is currently binding this field to a database column of the string type, an exception will occur on a request to the database.)
  • In binary DLL files:
    • Checking all the referenced methods, properties, fields, return types, and signatures.
      Note: In some specific cases, a binary file can be updated automatically with a new signature. For example, in a referenced graph, the process updates the BQL statement that is changed for a data view. If a changed signature is detected and cannot be fixed automatically, an error is reported, and the validation fails.

This validation protects a customized website from an update that contains breaking changes and might make the website unworkable.

Upgrade of a Customized Website

You can upgrade an instance of MYOB Acumatica in one of the following ways:
CAUTION: You must include in a customization package any custom files that you need to use with your instance of MYOB Acumatica and publish this package on this instance. If you instead copy the files to the website folder of your instance of MYOB Acumatica manually, the files will be removed while the instance is being updated.

When you start upgrading a customized instance of MYOB Acumatica to a newer version, the platform launches the validation process, to check the published customization compatibility with the new version code to detect breaking changes. If the validation fails, the platform cancels the upgrade process and shows an appropriate error message. (See Messages for Validation Errors for details.)