A blog about Dynamics 365
-
Creating a Finance App with Model-Driven Apps from Scratch – Part 2
In the first part of this series, we created the basic app, and the tables and forms for portfolio and movements. In movements, we can select buy, sell, or adjust, but we should also be able to select what we are buying or selling. So in this post, we’re going to create the table Assets…
-
Creating a Finance App with Model-Driven Apps from Scratch – Part I
In this series, I’ll explain how to create a low-code / no-code finance app using Model-Driven Apps in the Power Platform. My goal is to keep it accessible even for people without a coding background by leveraging the no-code tools provided by the Power Platform. However, I might include some code here and there to…
-
Autofill Fields in Model-Driven Apps from a Lookup
Sometimes, when creating a form in Model-Driven Apps (MDA), we want to autofill fields based on the relationship in a lookup. This can be triggered either when the lookup is updated, when the form is loaded, or both. In this post, I will explain how to use a generic script to achieve this and how…
-
Electronic Reporting: The Callback
There is an ER pattern called ‘The Callback‘ for data exporting, followed by adding data to tables or entities in the system. This pattern is typically used to mark certain records as exported. I also use it sometimes to add the export timestamp. I learned about this pattern a few years ago, but I couldn’t…
-
A Guide to Daily Data Aggregation in Electronic Reporting
From time to time, I need to develop reports that present monthly data aggregated by day. In this post, I’ll demonstrate how a user can select a specific month of the year and generate a CSV report showing the total vendor invoiced amount for each day. I’ll also walk through the methodology I use and…
-
How to Easily Create an Excel File in Electronic Reporting (ER)
In this post, I’ll explain an easy way to create an exportable Excel file using ER. Typically, I use Excel for exporting tables and similar files that need to be opened directly in Excel. For business documents like invoices and orders, I generally prefer Word, though Excel can also be used for these documents, as…
-
Extending Electronic Reporting Sources: Integration with OneDrive (II/II)
To implement the logic, we will create the following classes: TST2 One DriveInbound File: This class defines a custom inbound file and implements the interface ERIImportFile. TST2 One DriveInbound FileSource: This class is intended to read and import files. However, we will use it primarily to call TST2 OneDriveAPI, ensuring a better separation of concerns.…
-
Extending Electronic Reporting Sources: Integration with OneDrive (I)
In this series, I will explain how to extend ER (Electronic Reporting) sources to import from non-default origins (beyond the default options like manual imports or SharePoint). This will also enable us to program batch jobs for continuous integrations. Specifically, I will guide you step by step on how to integrate with a third-party OneDrive,…
-
Creating a Table Group All Pattern in Dynamics F&O
There is a recurring pattern across various parts of the ERP system that allows users to select a specific record, a group, or all. This pattern is commonly applied against Customer, Vendor, and Product Masters. The granularity it offers is highly useful, as it simplifies the user’s parameterization process. For example, with Customers, we can…
-
The Fast Way to Filter Electronic Reporting by Selected Records
Sometimes, we need to print a report based on filtered records. While there is a default function for this in ER table records, using the “Ask for query” option, this may not always meet the user’s needs. Instead, the user might prefer to select the records directly from the form and then click the report…
-
Debugging Electronic Reporting
The debug functionality is a powerful ER tool that lets us see the values assigned to format nodes, the format mapping nodes, and finally navigate the mapping data sources. The last one is the most important part because it allows us to navigate between table relations. I frequently use this tool, not just for ER,…
-
Extending Electronic Reporting Destinations: Integration with OneDrive (III)
In this final post of the series, I’m going to explain how to send files to OneDrive. Since I’ve implemented this functionality in a separate class, it’s more independent from the ER destinations. This is intentional because we may want to reuse the class for other developments. If you are extending destinations that aren’t for…
-
Extending Electronic Reporting Destinations: Integration with OneDrive (II)
To implement the logic, we will create four classes: TST2 OneDriveERDest Settings: This class packs and unpacks the form’s data and implements the ERIFormatFile DestinationSettings interface. TST2 OneDriveERDest OneDrive: This class retrieves the file and sends it to the TST2 OneDriveAPI. It implements the ERIFileDestination interface. TST2 OneDriveERDest EventHandlers: This class enables and disables controls…
-
Extending Electronic Reporting Destinations: Integration with OneDrive (I)
By default, you can export ER generated files to your computer, to a tab in your browser, to an email, to an archive (either the default SharePoint or the default Azure Storage), to a printer, and even to Power BI (though I’m not sure how this works, it seems to pass through SharePoint). Most of…
-
Create a Word/PDF in Electronic Reporting (III)
In the last two posts, we explored how to create a Word document with ER. In this final part of the series, I will show you how to fix common issues when working with Word, name the document, and finally export it as a PDF.
-
Create a Word/PDF in Electronic Reporting (II)
We already have the format mapped, so we can download our Word document by selecting the Word node, going to ‘Attachments’ and then selecting ‘Open’:
-
Create a Word/PDF in Electronic Reporting (I)
In this series, I’m going to explain the process of creating a Word document in Electronic Reporting (ER) or a PDF, as it can easily be converted to PDF using the ‘Electronic Reporting Destination’. In this post, I’ll be focusing on the format, as the model and the mapping are generic. This method is valid…
-
Validate Electronic Reporting on execution and show errors or warnings
Validate ER on execution and show errors or warnings
-
Extending Generic Electronic Reports
There are different ways to extend Generic Microsoft Electronic Reports (GER), depending on your needs. If you need to modify the data source, you would extend the mapping, while if you need to modify the design, you would extend the format. However, both approaches have limitations; for example, you cannot add a new field. In…
-
Mapping priority in Electronic Reporting
In ER, there may be multiple mappings for a single model. This is because there could be different ways of filling it. In this post, I’m going to explain how the system knows which one to run. Let’s start with this example of an export message. We have a model, three mappings, and a format.…
-
About VALUEIN() in Electronic Reporting for filtering lists
In this post, I’m going to experiment with the VALUEIN() formula inside FILTER() to better understand how it really works. VALUEIN() is a formula that returns a boolean indicating if a certain value is in a list. For example, if we want to know if ‘US-001’ is in the ‘CustTable’, we would do: And we’ll…
-
Using Electronic Reporting for API requests (II)
In this second part, I’m going to explain the code from the executable class. I’m using attachments because I find them very helpful during testing and even in production. However, you can also work in memory; at the end of this guide, I’ll explain how. Let’s start with the executable class. We’ll begin by using…
-
Using Electronic Reporting for API requests (I)
When we need to make a request to an external API, it’s really helpful to use ER because it’s a low-code environment that helps us build, test, and fix our messages much faster. ER supports XML and JSON, so we won’t have a hard time designing the request body or reading the response body. With…
-
Run interface implementations parameterized in a lookup
In this blog post, I’m going to show you a pattern that allows users to parameterize an Interface and run it based on that parameterization. This isn’t a tutorial or guide per se, but rather an experimental solution I developed while trying to implement a similar pattern to the one already used by Microsoft in…
-
Import a CSV file with Electronic Reporting (III) [Legacy]
These steps are not necessary, as a better method for importing a CSV with escape characters is explained at the end of part 2. Nonetheless, I’m leaving it here because it might be helpful for importing other file types, such as EDI files. In the first two entries of this series, we saw the standard…
-
Import a CSV file with Electronic Reporting (II)
This article is the second in a series of three about importing CSV files into the system. We will explore the format, the format mapping, escaping characters and how to test the development. Once we have the model and the mapping with the status completed, we can continue by creating an import format under our…
-
Import a CSV file with Electronic Reporting (I)
In this series, I’m going to show an example of importing a CSV file using Electronic Reporting (ER). This guide assumes you have basic knowledge of ER. If you are just starting, I recommend reading the series on ER export first, as it is more step-by-step and explains the basic concepts of ER. In an…
-
Integrating Electronic Reporting import messages into the UI
Following my previous article, ‘Integrating ER Export Formats into the UI’, let’s now take a look at import messages. I’m starting with a very simple model, an import format and an import mapping (direction to destination). In the mapping, there are two user input parameters, ‘string1’ and ‘string2’. These parameters serve as the keys for…
-
Integrating Electronic Reporting export formats into the UI
We’re going to see how to integrate an ER export format into a form. This involves adding a button that, when clicked, will execute a parameterized ER format and pass arguments from the currently selected record. We have this table, where the first two strings act as a unique key: Additionally, we have a Model,…