Wednesday, August 21, 2024

Post-PROD DB Restoration Steps

Hi Everyone, 

While many resources explain the process of performing a point-in-time restore from Production to Sandbox in Dynamics 365 FO, post-restore steps are often overlooked. This guide outlines essential actions to take after a successful database restoration.

Steps:

        
  • Email batch job:  Enable the email distributions batch job if required.
  • Custom alerts: If the custom alters are configured in the production environment, disable it.
  • Email parameters: Remove the email parameter setting that currently points to the PROD environment and change it to point to the UAT.
  • This step is necessary if your system has integrated with third-party applications and may not be applicable to all users.

    1. Microsoft Entra ID: Change the Microsoft Entra ID application ID that points to the production environment to the UAT application ID.
    2. Azure Key Vault parameters: Remove the secrets, delete the key vault setups, and reconfigure them with the UAT values.
    3. BYOD: Ensure that your BYOD data source is configured to point to the UAT instead of the PROD. Replace the PROD application ID with UAT in recurring integration data projects(DMF). Set the recurring integrations batch job to "Waiting" status from "Withhold".
    4. Endpoints: Configure the business event endpoints if it's required.

  • Export backup: Once all the above steps are completed, export a database backup from the UAT environment. This backup can be used to restore the latest database to development machines.

How to Assign the Same Security Role to Multiple Users in Dynamics 365 Finance and Operations(D365 F&O)

Hello everyone,

We often encounter situations where we need to assign the same role to multiple users simultaneously. This frequently occurs when restoring the PROD DB to the UAT environment. By following these steps, you can easily assign the same role to multiple users.

1) Before assign the role, ensure all users are imported into the system. Navigate to System Admin > Users and click Import Users. This allows you to import multiple users simultaneously.

2) Go to System Admin > Security > Assign Users to Roles. Select the desired role and click the manually assign/exclude users button.


3) Select the specific users (multiple) you want to assign the role to. Click Assign to Role button to complete the process.

Thursday, July 25, 2024

After Upgrading to Dynamics 365 Finance 10.0.40 or higher, the custom Model Build Fails

Hi All,

I recently upgraded the application to version 40. During the subsequent custom model build, we encountered the following issue

Error message: 

A reference to Dynamics.Ax.ProcessAutomation, version = 0.0.0.0, Culture=neutral,PublicKye=null  is required to compile this module

Resolution:

Update your custom model parameters to reference 'ProcessAutomation' and check-in the custom model Descriptor file.



Tuesday, July 23, 2024

Set purchase order workflow status as Draft when it's created from planned orders


 

Hi All,


I encountered the scenario requiring the creation of a purchase order in draft status after firming the planned order

As per standard, when a purchase order is created from a planned order, the purchase order workflow is automatically submitted and approved.

Customization is required to modify this behaviour, so that the PO is created in draft status, allowing users to review and submit it manually.


Code change:

Create a extension for a class ‘ReqTransPoMarkFirm’ and create a COC for the method ‘shouldSkipWorkflowSubmissionAndApproval()’.

Returning True from this method based on your specified conditions will set the PO status to draft instead of approved.









Technical Note: This method will be available from V39 (10.0.39 onwards).

Furthermore, I've investigated why purchase orders are created in Approved status as part of the standard process.

I found interesting blog written by Ali Danish on linked-in, where it's clearly mentioned the reason of creating the Approved PO and impact of customizing this behaviour. 

Please take a look at the post for a more detailed understanding, 

(5) D365 SCM | The Magic of Planning Optimization | Purchase Trade Agreements | Part 2 | LinkedIn

As mentioned in the above blog, there is a possibility of creating duplicate planned orders when a user runs MRP with purchase orders in draft status.

However, we can avoid the creation of duplicate entry by following the below steps.

  • The PO workflow should be approved with-in one day.
  • The planner has to make sure, no open purchase orders are exists in a system for a particular item before firm.
  • The MRP process should be executed Weekly or two weeks once.

Note: Please double-check with your respective functional before implementing this customization.


Additional information about PO creation from purchase requisition

Customization is not required when a purchase order is created from purchase requisition, it will be handled based on the below standard check box.













Disclaimer: Please note that these suggestions are based on my personal experience and may not be the only solution. As always, thoroughly test any changes in your test environment before moving them to Production.


Friday, April 14, 2023

D365 F&O - Add custom signing limit document type into the singing limit policies.

 

As part of standard, below are the document types available in singing limit polices. To add the custom document type please follow the below steps.

 

Usage of singing limits:

It will be used in hierarchy level workflows to approve the document based on signing limit amount.

Scenario: We are going to add custom document type ‘sales return’. We can use this custom document type in singing limit polices and workflow editor.

1)      Extend the base enum ‘HrpLimitDocumentType’ and ‘SourceDocumentRelationType’ and add your custom document type, here its is ‘sales return’.

2)      Create the post COC for init() method for the below forms

·       SysPolicyListPage

·       WorkflowTableListPageRnr

Ex: Extension of the form ‘SysPolicyListPage’

[ExtensionOf(formstr(SysPolicyListPage))]

final class KMGSysPolicyListPageForm_Extension

{

    /// <summary>

    /// Insert the sales return document type record if not exists

    /// </summary>

    public void init()

    {

next init();

HRPLimitDocument::insertIfNotExists(HrpLimitDocumentType::KMGSalesReturn, SourceDocumentRelationType:: KMGSalesReturn);

    }.

Write the COC like above for WorkflowTableListPageRnr form as well.

Post-PROD DB Restoration Steps

Hi Everyone,  While many resources explain the process of performing a point-in-time restore from Production to Sandbox in Dynamics 365 FO, ...