Wednesday, 26 September 2018

Form patterns in D365

Microsoft Dynamics 365 for Finance and Operations makes development easier by providing a guided experience for applying patterns to forms to ensure they are correct and consistent. It helps to validate form and control structures and the use of controls in certain places. 

Using patterns also ensures that each new form encountered by a user is immediately recognizable in appearance and function. Form Patterns can provide many default control properties, which leads to a more guided development experience. The use of Form patterns also ensures better compatibility with upgrades. 















The foundation elements of Microsoft Dynamics 365 for Finance and Operations are being built with those legacy form styles and patterns in mind so that the transition from Microsoft Dynamics AX 2012 to Microsoft Dynamics 365 for Finance and Operations is as easy as possible.


Steps for Applying Form Pattern:

Applying a pattern is a straightforward process which are as follows:
















Acquire target:
Decide which form you want to apply a pattern to.

Determine pattern:
Based on the information you will be display, consider the different form patterns available and choose which one will best fit your scenario.

Apply pattern:
Applying the pattern is as simple as right clicking the form design and choosing the pattern you want.

Deal with errors:

After the pattern is applied, you can use the Pattern tab in the pattern information panel to make sure you add the correct controls in the correct order for that pattern. 

Form Pattern Types:

D365 has nearly 40 form patterns that you can apply to your custom forms. Below are the types of form pattern which are as follows:

  • Details Master
  • FactBoxes
  • Simple List
  • Table of Contents/Set up page
  • Operational Workspace form.













Details Master:
A Details form is the primary method for entering data into Microsoft Dynamics 365 for Finance and Operations.  These forms allow the user to view data, edit data, and act upon data.  All content on these form types is structured into FastTabs that can be expanded and collapsed, allowing for multiple FastTabs to be open at the same time. The FastTabs can contain fields or a grid, and each FastTab can have a local toolbar. 

FactBoxes:
Factbox in general, are used to provide “related information” for a record.  They make sure the user does not have to open additional forms to get important information, such as totals, balances, overdue orders, and email addresses.  The FactBox Grid pattern should be used when there is a child collection (potential for multiple rows) of related information.  A FactBox is created as a separate form with the FactBox pattern applied, and then added as a part on another form.

Simple List:
Displays details for a simple entity as a grid, typically with less than 6 fields per record and have no parent-child relationship. However, there can be exceptions where a simple entity may contain up to 15 fields. A list page is another type of form pattern which still displays data in a grid format and list, however, it may be data relating to a more complex entity.

Table of Contents:
Table of Contents pattern is used for a form that displays setup information or loosely related information sets. This pattern is commonly used on set up or parameter pages, which are frequently accessed through the Navigation menu as well as through Workspaces. This pattern should be used when two or more logically related forms are needed for configuring setup. The vertical arrangement of tabs implies the order of completion.  This form pattern contains a collection of smaller content regions that each follow a container pattern like a Simple List, a Simple List and Details, or fields and field groups. 

Operational Workspaces:
Workspaces are a new concept that takes over as the primary way to navigate to tasks and specific pages. A workspace must be created for every significant “activity” supported in the product. Such an “activity” is less granular than a task and more granular than a legacy “area page”.

Lastly you can also run a form patterns report from Visual Studio. This will export a CSV file that we can open in excel and see all of the form names along with their form patterns. A full list of form patterns and sub-patterns, along with their uses can be found in the Form Pattern Reference Guide.

Wednesday, 19 September 2018

Import WBS lines in project purchase order in D365 through X++ code

Recently I have a requirement of importing the work breakdown structure lines on purchase order lines as per associated project. So for achieving the requirement I have develop a job that can get the WBS lines and import those line on purchase order line through AXPurchLine class. Please see below screenshots.

Work break down structure lines which needs to be imported:














Source code of a method which breakdown in three images:


Image 1.1:

Explanation of below source code image:
  • Initialize of the tables and AXPurchLine class.
  • Get purchase order. (Here I have provided hard coded Purch Id) 
















Image 1.2:

Explanation of below source code image:
  • Query to iterate smmActivityParentLinkTable table that contains the references to entities which are associated with an activity.
  • Sub query to iterate PSAActivityEstimates table that contains project quotation estimates.
  • Declaration of  AXPurchLine class.
  • Set OOTB Parm methods of the class that can handle the given values.

















Image 1.3:

Explanation of below source code image:
  • For parm method "parmVariantId" get variant Id of the Purchase order Line Item through InventDimCombination.
  • For parm method "parmPurchUnit" get purchase unit id through InventTableModule table.
  • Save method of AXPurchLine class that inserts the records also runs all the possible validations for purchase order lines.











Result:


Tuesday, 18 September 2018

LCS environment management in D365

In this blog I will discuss the environment management in Life cycle Services (LCS). LCS for Microsoft Dynamics is a collaboration portal that provides an environment that provides a set of regularly updated services that can help you manage the application life cycle for your Microsoft Dynamics 365 for Finance and Operations implementations.

Prerequisites for viewing the environment details is it must be deployed and started. From the LCS Project, select the “Full details” link for an environment.

The environment Management and Diagnostics form will open, providing information which are as follows:

  1. Azure region the environment was deployed in.
  2. The current status of the deployment.
  3. Links to access each virtual machine (also known as a VM) with the Remote desktop client.
  4. Provides options:
    1. De-allocation of the Virtual machine.
    2. Stop Virtual machine in order to save processing time.
    3. Maintaining the environment allows.
      1. Updates to be applied from the asset library.
      2. Send messages to online users.
      3. Perform a full re-deployment of the environment to the latest major version.
    4. Provide options to include a list of users to be notified in the event of a system notification.
    5. Access or change the linkage between the LCS project and Microsoft Azure.
    6. Directly access the Azure portal.
  5. Scrolling down offers access to all of the administrative passwords with the environment.
For more details you can go through Microsoft documentation Lifecycle Services (LCS) for Finance and Operations

Friday, 14 September 2018

Generate product receipts (GRN) through X++ code in D365

In this blog I will illustrate how we can generate product receipts for purchase orders through X++ in Microsoft Dynamics 365 by less and effective code.

So lets get started, In this blog I have used 3 methods which have segregated operations and on the main method of the job I have called the method as shown below.

First Method:

In this method I have done following things:

1- Initialize a List object that hold my purchase order lines which I will used on generating the product receipts.
2- Get Purchase order line buffer, In your case you can get the buffer as you like.
3- Ignore SLD_WorkProgressAndIPCConstants class, It is my custom class that have constants values.
4- I have called modifedField method, This method will update relevant fields also this is a OOTB method.
5- In the end I have return the List.

















Second Method:

In this method I have done following things:

1- Initialize PurchFormLetter class through which Product Receipt generate.
2- Get Purchase order buffer to pass in Update method in PurchFormLetter class.
3- Call PurchFormLetter class methods as shown below.
4- Update method of PurchFormLetter class will do the rest also will check all the validations so if there is any 
errors it will through it.













Third Method:

In this method I have done following things:

1- In this method I simply call above methods also passing the relevant values.








Main Method:

In this method I have done following things:

1- In this method I have initialized and declare my class instance in which above three methods are written.
2- Call Process method of my class that will generate product receipt.












I hope you guys find this blog useful. If you have any question do comment it, I will try to assist you as soon as possible. That is all folks. Cheers!

Tuesday, 11 September 2018

Diagnostics and monitoring for LCS in D365

In Microsoft Dynamics 365 finance operations when you have an operating environment setup, you will eventually wants to look at the diagnostics for that environment.

Diagnostics and environment provides the information which is collected and surfaced up to LCS to provide a one-stop overview for a D365 environment it also provides data which is collected through various performance counters listed on this screen. Event tracking window is also available for both diagnostics and monitoring so you can keep track the events.

Environment Monitoring allows you to monitor the operational health of your environments. These contain rolled up views, so you can analyze performance by component, environment, Project, and organization. For example, we can see the resource usage for each AOS as well as SQL Server activity. Notifications can be used as a way to help catch issues early when a threshold violation is caught. These notifications can be set up in LCS.



Accessing the Monitoring and diagnostics portal:

The System Diagnostic Dashboard can be accessed using the tile in your LCS dashboard. This dashboard provides an overview of errors flagged, such as jobs that did not finish properly also provides a high-level overview of what is going on within the selected environment. Diagnostics also features configuration issues, and issues related specifically to environment set up.

Open LCS, and navigate to the appropriate project. In the Environments section, select the environment to view, and then click Full details. On the Environment details page, click Environment monitoring to open the Monitoring and diagnostics portal. Or you can open through main menu and click system diagnostic option.















For detail understanding you can refer Microsoft Documentation for Monitoring and diagnostics tools.

Monday, 10 September 2018

LCS for service request in D365

In Microsoft dynamics 365 it may be necessary to submit a request to the Dynamics Service Engineering team. A service request is a ticket that you use to request that the Dynamics Service Engineering (DSE) team perform a predefined set of tasks on your environments.

Types of services request are as follows:












Database refresh
This includes, for example, the ability to refresh a database from Production to Sandbox.

Database point-in-time restore
This includes, for example, restoring a non-production database to a specific point in time.

Other requests
This includes requests other than those listed above or automated flow requests. For example, you might use this request type for upgrade or to request the system be put into maintenance mode. Note, this should not be used to submit support requests.

Package application
To apply a package to the Production environment, on the Environment details page, click Maintain to select the package to apply. Then, select Schedule.

Environment deployment
To set the deployment options and submit a request to the Dynamics Service Engineering team to deploy a new environment, click Configure on the Environments pane.

Now for accessing service request there are two ways:

1- On the project dashboard, in the Environments section, select Service requests.



2- Select the Menu button and select Work items. On the Work items page select the Service requests tab.


At this Service request screen, clicking on “Add” will open a form allowing for a request to be made.


This request form allows for the Database Restore, Database Refresh and Other type service tickets.  Environment types service tickets are created from within the environment’s forms.

Select the appropriate action that is needed for the request, and subsequent windows will open allowing for details for the appropriate service request to be entered.

Wednesday, 5 September 2018

Understanding LCS in D365

Microsoft Dynamics 365 for Finance and Operations provides central repository for most of the tools to prepare and deploy projects which is called "Life Cycle Service".














In LCS all the key information about a project can be seen is stored in cloud based collaboration workspace. This information can include information about project phases, and a collective repository called the asset library.  All of this information can be made available to project members.

The LCS Project workspace provides an outlined methodology showing each phase of your project, and provides high level milestones that are used to track deliverables and project goals.

As the project progresses, environments can be deployed from within LCS, The project deployment tools allow environments of different sizes to be deployed and controlled from within the project.

The Unified control of Cloud based environments within LCS allow environment deployed from within LCS to be monitored and controlled.

Perhaps most importantly, LCS provides environment aware tools to search for issues that may be occurring within the environment, search for Knowledge base issues with known fixes and apply the fixes to the environments in a controlled manner.

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 ...