Monday, June 30, 2025

How to stop updating existing records while importing Data through Data Management Framework (DMF)

Problem Statement : I was working on a requirement involving file-based integration using the Data Management Framework (DMF). The data entity includes a defined primary key, and as per standard DMF behavior, if a record with the same key already exists during import, it is updated.

However, the requirement is to prevent updates to existing records. Instead, the DMF process should skip such records and continue processing the remaining records in the file without interruption.

Solutions: One of possible solutions is setting the DB operation to None if it’s Update. For example:

public void mapEntityToDataSource(DataEntityRuntimeContext _entityCtx, DataEntityDataSourceRuntimeContext _dataSourceCtx)

{

// Call the base method

        next mapEntityToDataSource(_entityCtx, _dataSourceCtx);

        

        // Add your custom logic here

if (_dataSourceCtx.getDatabaseOperation() == DataEntityDatabaseOperation::Update)

{

_dataSourceCtx.setDatabaseOperation(DataEntityDatabaseOperation::None);

}

}


Happy Daxing :)

Wednesday, June 11, 2025

Enable / Disable form control through COC

 [ExtensionOf(formStr(FormName))]

final class FormName_Extension

{

    /// <summary>

    /// control visibility of SETIndicator flag based on Company parameters

    /// </summary>

    public void init()

    {

        next init();


        FormStringControl   SETIndicator = this.design().controlName(formControlStr(FormName, TableName_SETIndicator));

      

      

        if(SETIndicator  && curExt() ==  'YourCompany')

        {

            SETIndicator .visible(True);

        }

        else

        {

            SETIndicator .visible(false);

        }

    }

}


Happy DAXing ... :)

Monday, November 25, 2024

Use Chain Of Command with Examples

 Dear Friends

Here is an example of using Chain of Command for form datasource methods.

[ExtensionOf(formDataSourceStr(<<Form Name>>, <<Datasource Name>>))]

final class FormName_DataSourceName_ModelName_Extension

{

    public int active()

    {

        int ret ;

        ret = next Active();

        // Get current selected record.

        TableName Buffer = this.cursor();

        FormButtonGroupControl ControlObject; 

        ControlObject= this.formrun().design().controlName(formControlStr(<<FormName>>, <<ControlName>>)) as FormButtonGroupControl; //Initialized the Form control

// Validation logic

if(InventTransArchiveProcessHistoryTable.IsCustomProcess == NoYes::Yes)

        {

             ControlObject.visible(false);

        }

        else

        {

            ControlObject.visible(True);

        }

        return ret;

    }

}


Happy Daxing...

Wednesday, May 01, 2024

Enable UAT database over OneBox DevTest environment using JIT

 Dear Friends,

In this Article I will show you how to enable UAT database access for Development machine using just-in-time (JIT). Many times when something is not working as expected case in a Microsoft Dynamics 365 Finance and Operation environment and it would helpful to look at the underlying data that may not be visible on a form or report etc. Here are the detailed steps of How  to enabling Just-In-Time(JIT) Database Access over Development Machine?

  •  Go to the LCS and select project -> Full detail menu of Standard acceptance test section from right sidebar.


  • Go to Maintain Dropdown and select Enable access for using mentioned pc access only.


  • Add for access of those network public IP because of firewall rules. 


  • Select AzureSQL Source and mention Name for access purpose. Google your public IP address and add in Source address prefix.


  •  Now little Scroll down and add Database Account. Select Performance tuning for AX (write to AX) for read and write access of UAT database. Mention detail purpose for access of database. Submit Request Access.


  • Copy SQL Server\Database Name, Username, Password.


  • Open SSMS and setup all details as per notepad like Server name Login username and password in Login Tab. Add Database in Connection Properties Tab.


  • If you want also to connect your UAT database with your Dynamics 365 Finance and Operation. Go to K:/Service Volume ->AosService ->WebRoot. First backup copies your default Web.config file. Open Web.config file as a administrator to make save changes.


  •  Ctrl F and then find DataAccess.SqlPwd. Then find four line for changing the data access. Change Database, DbServer, SqlUser and SqlPwd as per notepad. 


  • Restart your World Wide Web Service from Services and reload your dynamics 365 Finance and Operation you have loaded all data as per UAT. Now you can easy to debug your customization with UAT data.
For more details refer: Microsoft Documentation

Happy DAXing ... 😀

Tuesday, April 16, 2024

Copilot Customization with Plugins

 Dear Friends,

As, we know Microsoft Copilot helps as a personal assistant for work, helping with various tasks such as writing, summarizing, researching, and more. To retrieve and process new and real-time information, especially data that's specific to organization and workflows, Copilot requires plugins.

 

We can develop plugins that use the OpenAI schema to add custom functionality to Microsoft Copilot experiences, by connecting our own application data to Microsoft Copilot. Microsoft Copilot is unable to retrieve real-time information from third-party services. Plugins can extend the capabilities of Microsoft Copilot by retrieving real-time information, to allow users to interact with the information in a natural way.

 

Microsoft Copilot uses the following process flow when the user starts conversation with query and Copilot answers the query by searching for and extracts info from plugin:

 



 

Benefits

  • Plugins can retrieve information or perform tasks on behalf of a user.
  • Plugins enhance the user experience by providing additional features and functionalities. Users can interact with plugins directly within the chat interface, making it a seamless part of their workflow.
  • Copilot plugins can call connected services, perform actions, and provide answers without complex conversation flows. By enabling the Microsoft 365 Copilot setting in the Power Platform admin center, we can seamlessly connect tenant and Power Platform environment.
  • The plugin ecosystem encourages community contributions. Developers can create and share plugins, fostering collaboration and innovation.

In summary, plugins empower Copilot to do more, enhance user interactions, and provide real-time insights. They’re a valuable addition to the Copilot ecosystem!

 

Future

Microsoft is working on extensibility options of Copilot for Microsoft 365 cloud. This extensibility also requires different licenses. For e.g., Copilot development with Copilot Studio is part of the Microsoft Copilot license. If the plugin uses Power Platform Connectors, users require a Power Platform license to use them.

In future, we can expect that Copilot analyzes input prompts, leverages machine learning techniques to generate content, and utilizes relevant data to fill in plugin parameters for executing commands.

 For more details refer: Microsoft Documentation

Happy DAXing ... 😀

Tuesday, April 26, 2022

How to hide "Page" and "Filter" while embedding a Power BI report in PowerApp

 Dear Friends,

Power platform is becoming a essential part of any Dynamics implementation. You might have observed that when you will embed a Power BI report in PowerApp or any other  web page using an iframe, it will show page name and side right filter with the report in the PowerApp/web page. It doesn't look good but how can we hide both page name and filter from the report? 


Solution is very simple. You need to add embedURL + "&filterPaneEnabled=false&navContentPaneEnabled=false" to hide both page name and filter bar from the report. Please remove highlighted text from URL if you want to see the both section in your embed PowerBI report.




Happy DAXing....😊

Wednesday, June 23, 2021

Different ways to deploy SSRS Reports in Dynamics 365 Finance and Operations

 Dear Friends,

There are two ways to deploy the SSRS reports in D365 for finance and operation. 

  1. The first choice should be to deploy the report directly from Visual Studio
    • Open the Build menu, click Deploy. Alternatively, in Solution Explorer, right-click the report project and then click Deploy.
    • In Solution Explorer, right-click the report and then click Deploy
  2. Lastly, we can deploy the reports using PowerShell.
    • Open Windows PowerShell in Admin mode and execute the below commands as per requirement.
    • For deploying all SSRS reports
K:\AosService\PackagesLocalDirectory\Plugins\AxReportVmRoleStartupTask\DeployAllReportsToSSRS.ps1 -PackageInstallLocation “K:\AosService\PackagesLocalDirectory”
    • For deploying the specific report
K:\AosService\PackagesLocalDirectory\Plugins\AxReportVmRoleStartupTask\DeployAllReportsToSSRS.ps1 -Module ApplicationSuite -ReportName <ReportName> -PackageInstallLocation “K:\AosService\PackagesLocalDirectory”
    • (Replace <ReportName> with required report name such as RetailLabel.Report or *Retail* – this will deploy all reports containing ‘Retail’ in report name)
Happy DAXing....😊

How to stop updating existing records while importing Data through Data Management Framework (DMF)

Problem Statement : I was working on a requirement involving file-based integration using the Data Management Framework (DMF). The data ent...