Skip to main content

Posts

Showing posts with the label Dynamics 365

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.