Performing the Publication Process

When you run the publication process, the MYOB Advanced Customization Platform executes the process in the following stages:

  1. If you publish more than one customization project, the platform merges the projects into a single customization project.
  2. The platform validates the customization project. (See Validating Customization Code for details.)
  3. If the validation completes successfully, the platform applies the changes to the application instance when you click Publish in the Compilation window.
When the platform merges multiple projects, if different projects include customization for the same application object, the customization from the project with the highest level (an optional number assigned to each project) is added to the merged project. See Simultaneous Use of Multiple Customizations for details.
Note: If you manage multiple customization projects and some projects are published, you do not have to unpublish any projects before other projects are published (leaving the check boxes selected for already-published projects in the list). On the Customization Projects (SM204505) form, you just need to select any projects you want to publish and click Publish on the toolbar. If you clear the check box for a published project, it will be unpublished.
Attention: If a customization project contains DLL files that are not .NET Framework or .Net Core DLLs, these DLLs are skipped during the publication process.

After the publication is complete, you can view the content of the merged customization project by clicking the More > View Published on the form toolbar of the Customization Projects form. (See To View a Published Customization for details.)

After the project is ready, the platform validates and compiles the customization code included in the project. If there are any validation errors, the system displays the error messages in the browser and doesn't compile the code. If the compilation completes successfully, you can click Publish in the Compilation window to apply the changes contained in the project items to the website.

During the actual publication, the platform applies the changes to the application and database objects and updates the files in the website folder as follows:

  • The custom layout is applied to the forms of MYOB Advanced.
  • The .cs files with the DAC extension code for the existing data access classes are generated and placed in the file system.
  • The .cs files with the BLC extension code for the existing business logic are generated and placed in the file system.
  • The .cs files with the custom code (Code items) are generated and placed in the file system.
  • The custom files of the project are added to the website folder.
  • The custom tables are created in the database, and custom SQL scripts are executed.
  • The custom generic inquiries, reports, site map nodes, system locales, integration scenarios, shared reusable filters, access rights, wikis, web-service endpoints, and analytical reports are added to the database.

We recommend that you back up the database before you publish customization projects, because canceling publication doesn't revert changes made to the database. See To Unpublish Customization Projects for details.

After the publication is complete, the application domain always restarts if the project includes assemblies, which are placed in the /Bin folder of the website. If you have no assemblies in the project, you can enable run-time compilation and publication will not cause a restart.

If a published customization project contains classes derived from the CustomizationPlugin class, the platform launches the implemented custom processes after website files were updated and after the website was restarted. (See Custom Processes During Publication of a Customization for details.)

After you have published the customization project, the files with the customization code are updated in the file system, and you can work with them in MS Visual Studio. The .cs files with code are placed in the App_RuntimeCode folder of the website.