Wednesday 1 August 2018

Performing builds in D365

The build process is an important process when you are finished creating or editing code and elements in Visual Studio. Let’s take a closer look at the process now.

When we create models and projects that contain customization's of elements or new elements, we need to build them so that they can be used by the application. A full build can be performed on an entire model or multiple models. A build can also be performed on a project, meaning the build system will only build the elements in the current project. When a build command is run on a project, Visual Studio will only build the elements that are new or changed since the last build. You can force a build of all objects in a project, regardless of whether they have changed, by starting a rebuild.

During a build operation, various validations and file generations occur automatically as shown in below image.

There are three options in D365 that can be used for build operations which are as follows:
1- Build project.
2- Rebuild project.
3- Build a model.

Build Project:
When you build a project, only those elements that are new or that have changed are built. During the build process, you might notice that some elements that are built aren’t part of the project. This behavior is required because of the way that assemblies are created for Microsoft Dynamics 365 for Finance and Operations. When you build an element, you’re actually building the .NET module that the element is included in. A single .NET module contains multiple model elements, and a single assembly contains multiple .NET modules. The assembly can be created only if all the .NET modules in the assembly have been built and are up to date. If any elements in any of the .NET modules for an assembly haven’t been built or aren’t up to date, they will be built, even if they aren’t included in the current project.

Rebuild Project:
If you want to build all the elements in a project, regardless of whether they have changed, you must perform a rebuild operation.

Synchronizing the Database at Each Build
A project property lets you specify that the synchronize operation for the database should be performed every time that you build the project. This can be useful when you’re making changes to the table structure for an application. Each time that you build, you will know that the database is synchronized with the tables as they are defined in the project.
If your application has a large number of tables, and you aren’t yet testing the application, you can set the Synchronize database on build property to False. This change will reduce the time that is required to build the project. Then, when you begin testing, you should set this property back to True.

Build a Model:
To build all the elements in a specific module, you must perform a full build on the package that the model belongs to. Follow these steps.
1- On the Dynamics 365 menu, click Build models.
2- In the Models list, select the model or models to build.
3- If you want to build the dependent models first, select Build referenced models. Any dependent models that must be built will be listed.
4- On the Options tab, review the options for the build process. The following options are available:
4.1- Build Pre-Compiled: Generates static HTML for each form during the build process. This allows faster rendering of forms at run time.
4.2- Build Reports: Builds reports.
4.3- Build Aggregate Measurements: Builds aggregate measurements.
4.4- Run Best Practice Checks: Performs best practice checks during the build process.
4.5- Synchronize Database: Updates the structure of the SQL database during the build process so that it matches the models. This behavior can be overridden by the project-level setting.
4.6- Build Cross Reference Data: Updates the data for the cross-reference feature during the build process.


How to Get Customer Free Text Invoice "Totals" form field value with X++ in D365FO

Customer free text invoices are an essential aspect of financial management in D365FO. In this blog, I have compiled all the code needed to ...