Skip to main content

Posts

D365 Data Lake setup

  Azure Storage Account Create an Azure storage account and check Hierarchical namespaces to 'Yes'. Copy the connection string in the access keys. We will use this as a key vault value in Azure key vault.      2. Azure Key vault Create a Azure key vault (Or use an existing one if already created). Create a secret. The secret will be used by applications which are accessing the Data Lake. In our case it's D365 application. Note down Azure key vault DNS url. Configure 'Access configuration' of key vault. Set the 'Get' and 'List' permissions on the access policy. Select the D365 environment and Data Lake as the principal as these are the resources accessing the Azure key vault.      3.AAD > App registration Create App registration in Azure active directory.  Create a new secret. Azure key vault will be given 'User impersonation' permission. Note down 'Application Id' and 'Secret value'. 4. D365 FO Once setup is done. Test the ...
Recent posts

Connect PowerApps with AX 2012

 In this blog will show you how to create Canvas App for AX 2012. We need to Install Microsoft Gateway on the On-Premise Gateway. Sign in to the gateway with the same AD credentials with which you will login to PowerApps. Create a new connection in the Dataverse section of PowerApps. Connection type is Window Authentication since we are directly connecting to AxDB. SQL Server name can be found in System Information > System Name. SQL Database Name is the AXDB name (MicrosoftDynamicsAX in my case). Input UserId and Password credentials for the SQL Server. Select the gateway you had installed on the On-Premise AX Server. Now you have established AX 2012 DB connection with PowerApps.

D365 BYOD Configuration

 BYOD is a feature in D365 which you can use to export data from D365 to external applications. It can be used for Power BI reporting or PowerApps.  The feature is not without it's issues but it's a better option than the alternatives as we will see later. Framework Parameters Path:Module > Data management > Framework parameters. Newly created entities do not appear by default in entity list. To resolve this we refresh the entity list. Refresh the entity list before Publishing and enabling the change tracking. It takes around 15 to 30 mins to complete the refresh.  Enable ‘All company export’ to export data for all Legal entities for DataEntities which has DataAreaId key enabled. Increase the SQL command timeout to 3200 seconds or more so that we do not have timeout issues during export. Configure entity export to Database We connect to Azure SQL with the connection string given below. Validate the connection for successful connection.   Connection string ...

D365 Report Deployment Error : The number of defined parameters is not equal to the number of cell definitions in the parameter panel.

 Have you ever modified a report parameter and be elated that it was a simple job and then D365 Report deployment fails because The number of defined Parameters is not equal to the number of cell definitions in the parameter panel 😶 The issue occurs when a parameter is updated in Contract class and Report, but the ReportDesign rdlc.xml is not updated automatically by VS. I tried restoring DS's, recreating DS's but nothing worked. Then I searched for the 'CellDefinition' in Report, I could see the deleted parameter in the rdlc parameter definition. So I mapped the CellDefinition's ColumnIndex and RowIndex to an excel.  As you see above, it resembles to a grid. I want to delete the parameters in yellow. So I removed the corresponding cell definitions. Updated the DynamicParameter's RowIndex and ColumnIndex to 3 and 1 respectively because I have DynamicParameter in row 3 and Column 1 now.   Also I have updated NumberOfRows in Grid definition to 4 (4 rows inclu...

Get Caller Dataset - Part 2 - Caller Args

  In the  Part 1 , we saw how to use caller.args() to refresh the caller DataSource. This Post explains how caller Dataset is set. I have a Form Form1 which has 2 Datasets, Table1 and Table2. Table1 is my main Data Source. Table2 is the child Data Source. I have an another Form Form2. This has been added as a menu Item button on Form1. The reason is, I will Open Form2 from Form1. This way I can check the caller Dataset of Form1. Field1, Field2 belong to Table1 and Field3, Field4 belong to Table2. Table1.Field2 == Table2.Field3. On the Form2 Init method, I have the below code. Now, we have  a few scenarios  I open the Form2 from the display menu Item button in Form1.              The Data Source is 'Table1'. The reason is Table1 is the first Data Source of Form1. If I assign Data Source property of the ActionPane/ButtonGroup/MenuItem, The DataSet will be the assigned Data Source of these Objects.  Priority will be given to ...

Refresh Caller Form Datasource - Part 1 - Caller Args

This is the first part of the series on how to change properties on caller objects. This post explains how to refresh caller form data source. We may have a situation where we may need to refresh content on Parent Form data source. This may be due to the changes done in the child form data source. In Dynamics AX/D365, we can manipulate almost any control of the caller object (Form/menuItem etc). This can be done by fetching the caller argument element.args(). From here we get a list of options based on our needs... For our scenario, we need to get the form data source and refresh it. This can be done as follows. The FormRun object contains all the properties which you see on the Property Tab (Property Tab is a manifestation of the object properties as controls). Using FormRun we refresh our data source.

Process documents and send data to Dynamics 365 F&O

 With AI Builder, we can create a model which is trained to process data from documents. I used it to process Vendor Invoices and save data in CDS and D365 F&O. First, we need to create a model from AI Builder which processes a certain document format. I picked a sample Vendor Invoice reports from DAT company and created a model. This model can be used in PowerApp to scan the document and collect the data. On click on Submit button, the data is saved to CDS.  Power Automate triggers the CDS to D365 F&O data flow and records are inserted in F&O. The limitation of this approach is that one document can be scanned at a time.  To overcome this, I created a Power Automate which is triggered when an email is received with 'Invoice' as a subject line. The multiple attachments in the email are processed and data is sent to D365 F&O.