Tag Archives: Dynamics 365
Getting Started with the Event Recorder in Business Central
When developing customizations or extensions in Microsoft Dynamics 365 Business Central, working with events is a best practice. Events help ensure your code is upgrade-safe and cleanly decoupled from the standard application code. However, one common challenge developers face is figuring out which events are triggered during certain actions in the system. That’s where the Event Recorder comes in. What Is the Event Recorder? The Event Recorder is a built-in tool in Business Central that allows developers to monitor and log all published and subscribed events during a user session. Think of it as a “black box” recorder for event-driven development. It helps you identify: This tool is extremely helpful when you’re customizing functionality using event subscriptions (as per AL best practices) but aren’t sure which event to subscribe to. Why Use the Event Recorder? Traditionally, developers had to dig through AL code or documentation to find the right event to subscribe to. With the Event Recorder, this becomes faster and more efficient. Key benefits include: How to Use the Event Recorder Here’s a step-by-step guide: Step 1: Open Event Recorder Step 2: Start a New Recording Step 3: Stop Recording Step 4: Review the Results Best Practices Sample Use Case Suppose you’re trying to add custom logic every time a Sales Invoice is posted. You’re not sure which event gets triggered at that point. Using the Event Recorder: Now, you can write a subscriber in your AL code like this: [EventSubscriber(ObjectType::Page, Page::”Customer List”, ‘OnAfterGetRecordEvent’, ”, true, true)] local procedure MyProcedure() begin // Your custom logic here end; Limitations While powerful, the Event Recorder does have some limitations: To conclude, Event Recorder is an indispensable tool for any AL developer working in Business Central. It simplifies the discovery of relevant events, helps maintain clean and upgrade-safe extensions, and boosts overall development efficiency. Whether you’re new to AL or a seasoned developer, incorporating the Event Recorder into your workflow will save you time. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.
How to Build a Scorecard in Power BI
What Is a Scorecard in Power BI? A Scorecard is a visual performance monitoring tool that allows you to track key metrics (goals) against predefined targets. Power BI’s Metrics (formerly Goals) feature helps you: Why Use Scorecards? Here’s why Scorecards are powerful for any team: Benefit Description Goal Alignment Track KPIs aligned to strategic objectives. Accountability Assign owners and collaborators for each goal. Real-time Tracking Monitor progress with live metrics. Visual Reporting Easy-to-read dashboards and history tracking. Step-by-Step: How to Build a Scorecard in Power BI Step 1: Navigate to Power BI Service Go to Power BI Service and choose the workspace where you want to create your Scorecard (Premium or Pro workspaces only). Step 2: Create a New Scorecard You’ll now land on a blank Scorecard canvas. Step 3: Add Metrics to the Scorecard You can connect it to an existing Power BI dataset or manually input values. Step 4: Link Metrics to Data (Optional but Recommended) To automate tracking: This ensures your Scorecard updates automatically with data refreshes. Step 5: Customize the Scorecard You can also create hierarchies — group related goals under broader objectives. Step 6: Share & Collaborate Once your Scorecard is built: To conclude, Power BI Scorecards turn your data into action. They help track goals in real time, assign ownership, and keep teams focused on what matters most. Whether you’re managing a sales team, a project, or company-wide objectives — Power BI Scorecards are a game-changer for performance tracking. Want to bring visibility and accountability to your team goals? Head to Power BI Service and start building your first Scorecard today! Need help connecting metrics to your datasets? Reach out, and we’ll guide you step by step. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.
How to Implement Incremental Refresh in Power BI
Refreshing large datasets in Power BI can become time-consuming and resource-intensive as data volume grows. If your reports are based on millions of rows of historical data, refreshing everything daily is neither efficient nor necessary. This is where Incremental Refresh comes in. It allows Power BI to only refresh new or changed data, drastically improving performance and reducing load on your data source. In this blog, you’ll learn how to set up incremental refresh step-by-step—so your Power BI reports stay fast and efficient even with big data. What Is Incremental Refresh in Power BI? Incremental Refresh enables Power BI to load data in partitions, refreshing only the latest ones (e.g., the past 7 days) while keeping the older data static. Why use it? Step 1: Define Parameters in Power Query · Open your report in Power BI Desktop (Pro or Premium workspace) · Go to Transform Data (Power Query Editor) · Create two parameters: · Set default values (e.g., RangeStart = 01/01/2020, RangeEnd = 01/01/2021) Step 2: Filter Your Data with These Parameters This tells Power BI what time range to load and eventually refresh incrementally. Step 3: Enable Incremental Refresh in Data Model 📝 Example: This configuration refreshes only the recent week of data each time, while keeping the rest intact. Step 4: Publish to Power BI Service ✅ Done! You’ve now implemented incremental refresh. Best Practices To conclude, Incremental Refresh is a game-changer when it comes to handling large datasets in Power BI. It not only saves refresh time but also optimizes resource usage. By learning how to configure it properly, you can scale your reports with confidence and efficiency Got a large dataset slowing down your Power BI refresh? Implement Incremental Refresh today and see the difference. Explore more Power BI performance tips in our blog series—or reach out for help setting up enterprise-grade models. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com
How to Send Emails with CC and BCC in Business Central Using AL Language
Sending emails programmatically in Microsoft Dynamics 365 Business Central (BC) is a common requirement for customization be it sending invoices, reminders, or notifications. With the release of enhanced email capabilities in recent versions, AL developers can now include CC (Carbon Copy) and BCC (Blind Carbon Copy) recipients when sending emails. In this blog, we’ll walk through how to send an email in Business Central using AL and how to include CC and BCC fields effectively. Steps to Achieve goal: Code for example. procedure SendInvoiceEmail(var PurchaseInvHeader: Record “Purch. Inv. Header”): BooleanvarEmailAccount: Codeunit “Email Account”;EmailMessage: Codeunit “Email Message”;Email: Codeunit Email;PurchaseInvLine: Record “Purch. Inv. Line”;Vendor: Record Vendor;Item: Record Item;Currency: Record Currency;CurrencySymbol: Text;ItemDescription: Text[2048];ItemNumber: Code[30];TotalAmount: Decimal;Link: Text[2048];EmailType: Enum “Email Recipient Type”;begin// Get vendor informationVendor.SetRange(“No.”, PurchaseInvHeader.”Buy-from Vendor No.”);if Vendor.FindFirst() then; // Process purchase invoice linesPurchaseInvLine.SetRange(“Document No.”, PurchaseInvHeader.”No.”);PurchaseInvLine.SetFilter(Quantity, ‘<>%1’, 0);if PurchaseInvLine.FindSet() then repeat Item.Reset(); Item.SetRange(“No.”, PurchaseInvLine.”No.”); Item.SetRange(“Second Hand Goods”, true); // Example filter if Item.FindFirst() then begin ItemDescription := PurchaseInvLine.Description; ItemNumber := PurchaseInvLine.”No.”; TotalAmount += PurchaseInvLine.”Amount Including VAT”; Currency.SetRange(Code, PurchaseInvHeader.”Currency Code”); if Currency.FindFirst() then CurrencySymbol := Currency.Symbol else CurrencySymbol := ‘€’; // Default symbol end; until PurchaseInvLine.Next() = 0; // Generate a form link with dynamic query parameters (example only)Link := ‘https://your-form-url.com?vendor=’ + Vendor.”No.” + ‘&invoice=’ + PurchaseInvHeader.”No.”; // Create and configure the emailEmailMessage.Create( Vendor.”E-Mail”, ‘Subject: Review Your Invoice’, ‘Hello ‘ + Vendor.Name + ‘,<br><br>’ + ‘Please review the invoice details for item: ‘ + ItemDescription + ‘<br>’ + ‘Total: ‘ + Format(TotalAmount) + ‘ ‘ + CurrencySymbol + ‘<br>’ + ‘Form Link: <a href=”‘ + Link + ‘”>Click here</a><br><br>’ + ‘Best regards,<br>Your Company Name’, true // IsBodyHtml); // Add BCC (could also use AddCc)EmailMessage.AddRecipient(EmailType::BCC, ‘example@yourdomain.com’); // Update invoice status or flags (optional business logic)PurchaseInvHeader.”Custom Status Field” := PurchaseInvHeader.”Custom Status Field”::Started;PurchaseInvHeader.Modify(); // Send the emailexit(Email.Send(EmailMessage)); end; To conclude, sending emails directly from AL in Business Central is a powerful way to streamline communication with vendors, customers, and internal users. By leveraging the Email Message and Email codeunits, developers can easily customize the subject, body, and recipients, including support for CC and BCC fields. This flexibility makes it easy to automate notifications, document sharing, or approval requests directly from your business logic. Whether you’re integrating forms, sending invoices, or just keeping stakeholders in the loop, this approach ensures your extensions are both professional and user-friendly. With just a few lines of code, you can improve efficiency and enhance communication across your organization. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com
Understanding Legal Entities, Companies, and Organizational Hierarchies in Dynamics 365 Finance and Operations
If you’re just starting with Dynamics 365 Finance and Operations (Dynamics 365 Finance & Operations) and confused about what Legal Entities, Companies, and Organizational Hierarchies mean, you’re not alone! Let’s break it down in simple terms. What is a Legal Entity? In Dynamics 365, a Legal Entity is an organization that can: Think of a Legal Entity as a registered company or business under the law. Microsoft Docs Reference: Legal entities overview What is a Company in Dynamics 365 Finance & Operations? Each Legal Entity is also referred to as a Company in the system. In the interface, you switch between Companies (Legal Entities) using a 4-character company ID (like USMF or INMF). Tip: Even if you manage multiple companies (e.g., one in India, one in the US), D365 can consolidate and report across them — provided they are set up as separate legal entities. What are Organizational Hierarchies? This is where the real power lies! Organizational Hierarchies define how different parts of your business interact and report to one another. You can set up hierarchies for: Example: A retail chain may have a parent legal entity, and underneath, different divisions like wholesale, online store, and physical stores — all structured in a hierarchy. Microsoft Docs Reference: Organizational hierarchies Real-World Example Let’s say you’re working for a construction company that operates in three countries: You’d set up each country as a Legal Entity (Company). Now, you want: Organizational Hierarchies let you define that. What Can Be Shared Across Legal Entities? Microsoft allows some data to be shared across companies: Data sharing and integration To conclude, if you’re evaluating Dynamics 365 Finance and Operations and wondering how to structure your organization within the system, we’d love to help you design it the right way. Whether you’re a startup expanding internationally or an enterprise optimizing operations, your legal entity and organizational structure are the foundation of your Dynamics365 system. Let’s build that foundation together. You can reach out to us at transform@cloudfonts.com.
Transforming Financial Operations: The Strategic Impact of Customer Payment Registration in Dynamics 365 Business Central
When customers make electronic payments to your bank account, you should take the following steps: Use the Register Customer Payments page to reconcile internal accounts using actual cash figures, ensuring all payments are collected accurately. This functionality allows you to quickly verify and post individual or lump-sum payments, handle discounted payments, and identify unpaid documents. For different customers with varying payment dates, payments must be posted individually. However, payments from the same customer with the same payment date can be posted as a lump sum. This is particularly useful when a single payment covers multiple sales invoices. Pre-requisites Business Central onCloud Steps: Search for “Register Customer Payments” Since different payment types can be posted to different balancing accounts, it is necessary to select a balancing account on the Payment Registration Setup page before processing customer payments. If you consistently use the same balancing account, you can set it as the default to streamline the process and skip this step each time you open the Register Customer Payments page. Check the Payment Made box on the line corresponding to the posted document for which the payment has been made. Use Post payment option to post regular payment (Non Non-Lump). You can use the preview action to verify entries before payment post. Lump payment: Payment information is posted for documents on lines where the Payment Made checkbox is checked. The payment entries are recorded in the general ledger, bank, and customer accounts, with each payment applied to its corresponding posted sales document. To conclude, effectively managing customer payments is crucial for maintaining accurate financial records and ensuring smooth business operations. Microsoft Dynamics 365 Business Central offers a robust and flexible platform to streamline the payment registration process, empowering businesses to efficiently reconcile accounts, post payments, and handle diverse payment scenarios. By leveraging features like the Register Customer Payments page, businesses can save time, reduce errors, and maintain a clear view of their financial health. Whether it’s managing individual payments, lump-sum transactions, or discounted invoices, Dynamics 365 provides the tools needed to adapt to your organization’s unique requirements. With proper setup and utilization of its payment registration features, businesses can enhance their financial workflows, foster better customer relationships, and drive long-term growth. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.
Generate Enhanced QR Codes in Business Central Using AL and QuickChart API
QR codes have become a standard tool for sharing data quickly and efficiently—whether it’s for product labeling, document tracking, or digital payments. Now, you can generate customized QR codes and barcodes directly within Microsoft Dynamics 365 Business Central using a simple action. This feature allows users to choose the barcode type and size, embed the image into a record, and optionally download it—all with just a few clicks. It’s an easy way to enhance records with scannable information, without leaving Business Central or needing external tools. In this article, we’ll walk through how this feature works and how it can be used in real business scenarios. What This Feature Does? The “Generate Enhanced QR Code” action gives users the ability to quickly create and manage barcodes within Business Central. Here’s what it can do: Business Scenarios Where This Shines AL Code Behind the Feature Output: Choose an image size (Small, Medium, Large). Select a barcode type (QR, Swiss QR, Aztec, Data Matrix, Telepen). Store the generated image in the Picture field of the item record. To conclude, this customization shows how a simple AL code extension can greatly boost efficiency in Microsoft Dynamics 365 Business Central. By enabling quick generation and embedding of QR codes and barcodes, you eliminate manual steps and streamline processes across departments—from inventory to sales and beyond. With support for multiple barcode types, customizable sizes, and built-in download and validation prompts, this feature brings powerful functionality right into the user’s workflow—no external tools needed. Whether you’re in warehousing, retail, manufacturing, or pharma, this tool helps standardize product labeling and enhances traceability with just a few clicks. Looking ahead? You can extend this further by including additional record fields, customizing encoding logic, or supporting more document types like purchase orders or invoices. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.
Bridge Your Database and Dataverse: Complete Integration Guide
Modern applications demand seamless, real-time data access. Microsoft Dataverse—the data backbone of the Power Platform—makes it easier to build and scale low-code apps, but often your enterprise data resides in legacy databases. Connecting a database to Dataverse enables automation, reporting, and app-building capabilities using the Power Platform’s ecosystem. In this blog, we’ll walk you through how to connect a traditional SQL database (Azure SQL or On-Premises) to Microsoft Dataverse. What is Dataverse? Dataverse is Microsoft’s cloud-based data platform, designed to securely store and manage data used by business applications. It’s highly integrated with Power Apps, Power Automate, and Dynamics 365. Key Features: Why Connect Your Database to Dataverse? Step-by-Step Guide: Connecting a Database to Dataverse Step 1: Open the Power Apps and select the proper Environment Step 2: Open Dataflow in Power Apps and create a new Dataflow Step 3: Connect to the Database using SQL Server Database. Step 4: Add the required credentials to make the connection between the database and Dataverse. Step 5: Add proper mapping of the column and find the unique ID of the table Step 6: Set the schedule refresh and publish the Dataflow. Step 7: Once Dataflow is published, we can see the table in the Power apps To conclude, connecting your database to Dataverse amplifies the power of your data, enabling app development, automation, and reporting within a unified ecosystem. Whether you need real-time access or periodic data sync, Microsoft offers flexible and secure methods to integrate databases with Dataverse. Start exploring virtual tables or dataflows today to bridge the gap between your existing databases and the Power Platform. Want to learn more? Check out our related guides on Dataverse best practices and virtual table optimization. We hope you found this blog useful. If you would like to discuss anything further, please reach out to us at transform@cloudfonts.com.
Master Dynamics 365 Lookups: Customize Without Breaking the Code!
In Dynamics 365 Finance & Operations, lookup methods are used to display a list of selectable values for fields, enhancing data entry efficiency and accuracy. Sometimes, the default lookup behavior doesn’t meet specific business requirements, necessitating customization. Overriding Lookup Methods with Event Handlers This article will cover how to override existing lookup methods using event handlers, a preferred approach that avoids modifying the base code directly.This ensures easier maintenance and compatibility with future updates. Key Steps Highlighted: By pressing the right-click button, you can check the form control details easily Open Visual Studio designer and go to the OnLookup event and Copy event handler. As you can see after deploying the changes Terms of payment field is visible. Conclusion and Benefits of Using Event Handlers We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.
Enhancing Number Series in Business Central: New Architecture and Copilot Integration
As Business Central continues to advance, its features and functionalities are also evolving. One significant enhancement is the introduction of a new series system. This update is designed to simplify the process of assigning numbers to various documents, ensuring both consistency and efficiency. In this blog, we’ll explore the core aspects of this new number series and how you can leverage it in your Business Central environment. Understanding the Basics Number series in Business Central serve as unique identifiers for documents such as sales orders, purchase orders, and invoices. These identifiers play a crucial role in effectively tracking and managing documents. With the introduction of the new number series, improvements have been made to enhance flexibility and provide better control over these identifiers. What’s New? Previously, Business Central used the NoSeriesManagement codeunit for managing number series. The updated system introduces two distinct entities: This new structure brings a more organized and streamlined approach to number series management, enabling enhanced customization for different document types and processes. Refactoring Your Code With these updates, the NoSeriesManagement codeunit is now marked for deprecation. When you use it, you may encounter a warning like: “Codeunit ‘NoSeriesManagement’ is marked for removal. Reason: Please use the ‘No. Series’ and ‘No. Series – Batch’ codeunits instead. Tag: 24.0”. Here’s a step-by-step guide to refactoring your code for the new system: 1. Identify Usage First, locate all instances where the NoSeriesManagement codeunit is referenced in your codebase. This includes direct calls or any references to its functions. 2. Replace with New Codeunits Update these references to use the appropriate new codeunit: How to Implement the New Codeunits a. Using “No. Series” This codeunit is used for standard number series management tasks. Below is an example of how it works: var NoSeries: Codeunit “No. Series”;begin NoSeries.GetLastNoUsed(); NoSeries.GetNextNo();end; b. Using “No. Series – Batch” The “No. Series – Batch” codeunit is designed for efficient batch processing of multiple number series. Use its methods like PeekNextNo to retrieve the next number without modifying the series. var NoSeriesBatch: Codeunit “No. Series – Batch”;begin NoSeriesBatch.GetLastNoUsed(); NoSeriesBatch.PeekNextNo();end; Example: Before and After Refactoring Before Refactoring: After Refactoring: Suggesting No. Series Using Copilot in Business Central Business Central’s Copilot integration simplifies generating and managing No. Series for different modules. Follow this step-by-step guide to utilize this feature effectively: 2. Create a New Number Series 3. Generate Number Series for a Specific Module 4. Modify an Existing Number Series 5. Prepare Number Series for the Next Year This feature empowers users to efficiently manage No. Series with minimal manual effort, ensuring consistency and saving valuable time. Explore the Copilot suggestions to optimize your workflow in Business Central! To conclude, the advancements in Business Central’s Number Series management, with the introduction of the new architecture and Copilot integration, offer a significant leap in flexibility, efficiency, and user experience. The updated “No. Series” and “No. Series – Batch” codeunits streamline workflows, while Copilot simplifies the creation, modification, and futureproofing of number series with intelligent suggestions. By adopting these features, businesses can ensure consistency, reduce manual errors, and save valuable time, making their operations more streamlined and future ready. Explore these enhancements today to unlock the full potential of Business Central! We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfonts.com.