Latest Microsoft Dynamics 365 Blogs | CloudFronts - Page 21

From Commit to Inbox: Automating Change Summaries with Azure AI

In our small development team, we usually merge code without formal pull requests. Instead, changes are committed directly by the developer responsible for the project, and while I don’t need to approve every change in my role as the senior developer, I still need to stay aware of what’s being merged.  Manually reviewing each commit was becoming too time-consuming, so I built an automated process using Power Automate, Azure DevOps, and Azure AI.Now, whenever a commit is made, it triggers a workflow that summarizes the changes and sends me an email.This simple system keeps me informed without slowing down the team’s work. Although I kept the automation straightforward, it could easily be extended further.For example, it could be improved to allow me to reply directly to the committer from the email or even display file changes in detail using a text comparison feature in Outlook.We didn’t need that level of detail, but it’s a good option if deeper insights are ever required. Journey We get started with the Azure DevOps trigger “When a code is pushed”. Here we specify the organization name, project name and repository name. We can also specify a specific branch if we want to limit our tracking to simply that branch otherwise it tracks all the available branches to the User. Then we have a foreach loop that iterates over the “Ref Updates” object array. It contains a list of all the changes but not the exact details.This action pops up automatically as well when we configure the next action. Then we set up a “Azure DevOps REST API request to invoke” action. This has connection capabilities to Azure DevOps directly so it is better to use over a simple REST API action. We specify the relative URL as {Repository Name}/_apis/git/repositories/{Repository ID}/commits/{Commit ID}/changes?api-version=6.0 The Commit ID shows up as newObjectId in the “When code is pushed” trigger. Then we pass the output of this action to a “Create Text with GPT using a prompt” action under the AI Builder group.I’ve passed the prompt as below but it took several trials and errors to get exactly what I wanted. The last action is a simple “Send an email” one where I’ve kept myself as a recepient and I’ve added a subject and a body. Now to put it all together and run it – And here is the final output – When the hyperlinks are clicked they take me straight to azure while pointing to the file which is referred. For instance, if I click on the Events Codeunit – Conclusion Summarizing commit changes is just one way automation can make life easier.This same idea can be applied to other tasks, like summarizing meeting notes, project updates, or customer feedback.With a bit of creativity, we can use tools like this to cut down on repetitive work and free up time to focus on learning new skills or tackling more challenging projects.By finding smart ways to streamline our workflows, we can work more efficiently and open up more time for growth and development. If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. 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.

Share Story :

Data-Driven Project Oversight: Selecting the Right Reports for Your Business

In today’s fast-paced business landscape, data-driven decision-making is essential for project success. Organizations must navigate vast amounts of data and determine which reports provide the most valuable insights. Effective project oversight relies on selecting the right reports that align with business objectives, operational efficiency, and strategic growth. The Importance of Data-Driven Oversight Data-driven project oversight ensures that organizations make informed decisions based on real-time and historical data. It enhances accountability, improves resource allocation, and mitigates risks before they become significant issues. The key to success lies in choosing reports that offer relevant, actionable insights rather than being overwhelmed by excessive, unnecessary data. Identifying the Right Reports for Your Business 1. Define Your Business Objectives Before selecting reports, clarify your project goals. Are you monitoring financial performance, tracking project timelines, evaluating team productivity, or assessing risk factors? Each objective requires different metrics and key performance indicators (KPIs). 2. Categorize Reports Based on Project Needs Reports can be categorized into various types based on their function: 3. Leverage Real-Time and Historical Data A balanced mix of real-time dashboards and historical trend analysis ensures a comprehensive understanding of project performance. Real-time reports help in immediate decision-making, while historical data provides context and trends for long-term strategy. 4. Customize Reports to Stakeholder Needs Different stakeholders require different levels of detail. Executives may prefer high-level summaries, while project managers need granular insights. Tailoring reports ensures that each stakeholder receives relevant and actionable information. 5. Automate and Visualize Reports for Better Insights Leveraging automation tools can streamline report generation and reduce human error. Data visualization tools such as Power BI, Tableau, or built-in reporting features in project management software can enhance comprehension and decision-making. Real-World Examples of Data-Driven Reports To illustrate the importance of selecting the right reports, here are two examples: 1. Return Management Dashboard This dashboard provides an overview of product returns, highlighting trends in return reasons, active cases, and return processing efficiency. By analyzing such reports, businesses can identify common product issues, improve quality control, and streamline return processes. 2. Billable Allocation Report This report tracks resource allocation in a project, helping businesses monitor utilization rates, availability, and forecasting staffing needs. By using such reports, companies can optimize workforce planning and reduce underutilization or overallocation of resources. To conclude, selecting the right reports for project oversight is crucial for achieving business success. By aligning reports with business objectives, categorizing them effectively, leveraging both real-time and historical data, and customizing insights for stakeholders, organizations can enhance efficiency and drive strategic growth. A well-structured reporting framework ensures that project oversight remains proactive, insightful, and results driven. 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.

Share Story :

How to Use the Debugger in Dynamics 365 Finance and Operations

Debugging is an essential skill for developers working with Dynamics 365 Finance and Operations (D365 F&O). The built-in debugger helps you identify and fix issues in your X++ code efficiently. In this blog post, we’ll walk through how to use the debugger effectively in D365 F&O. Prerequisites Before you can start debugging, you’ll need: Access to a D365 F&O development environment Appropriate permissions (developer role) Visual Studio installed (for some debugging scenarios) Enabling Debugging Set up debugging permissions: Navigate to System administration > Setup > License configuration Ensure the “Debugger” privilege is enabled for your user role Configure debugging options: Go to Tools > Options > Development > Debugging Configure your preferred debugging settings Starting a Debug Session There are several ways to start debugging in D365 F&O: 1. Attaching to a Process Open the Debugger workspace Click on Attach debugger Select the process you want to debug (user session) Click Attach 2. Debugging from Visual Studio Open your X++ project in Visual Studio Set breakpoints in your code Press F5 to start debugging (or use the Debug menu) 3. Using Conditional Breakpoints Navigate to the form or process you want to debug After adding the breakpoint, right-click it in the breakpoints list Select “Edit breakpoint” In the “Condition” field, enter your X++ expression Example: custAccount == “US-001” Key Debugging Features Breakpoints Breakpoints pause execution at specific lines of code. You can: Set conditional breakpoints that only trigger when certain conditions are met Set hit count breakpoints that trigger after a specified number of hits Enable/disable breakpoints as needed Stepping Through Code When execution is paused, you can: Step Over (F10): Execute the current line and move to the next Step Into (F11): Dive into method calls Step Out (Shift+F11): Complete the current method and return to the caller Examining Variables The debugger allows you to: View local variables in the Locals window Add watches for specific variables Quickly evaluate expressions in the Immediate window Call Stack The call stack shows: The hierarchy of method calls that led to the current execution point , Allows navigation to different levels of the call stack Debugging Different Scenarios Batch Jobs To debug batch jobs: Set breakpoints in the batch job code , submit the batch job and Attach the debugger to the batch process Business Events To debug business events: Set breakpoints in the event handler code Trigger the business event The debugger will pause when the event is processed Tips for Effective Debugging Use the debugger’s data tips (hover over variables to see their values) Common Debugging Challenges Solution: Use thread debugging and pay attention to execution order Solution: Replicate the production environment configuration as closely as possible Solution: Use targeted debugging rather than broad breakpoints To Conclude, The D365 F&O debugger is a powerful tool that can save you hours of troubleshooting time. By mastering breakpoints, variable inspection, and call stack navigation, you can quickly identify and resolve issues in your X++ code. Remember to use debugging judiciously in production environments and always follow your organization’s guidelines for debugging in live systems. 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.

Share Story :

Method of Depreciation – Consumption Depreciation – D365 F&O

Financial records of a Company should show its true and fair value of its assets and liabilities. In circumstances, for value of assets to be shown correctly, they have to be depreciated as per their use. For examples, car (kms run), production machine (number of hours run). In this case, straight line or reducing balance method of depreciation is not appropriate. How to set up Consumption Depreciation in D365F&O: 2. Set up consumption units under Fixed Assets=>Setup=>Consumption depreciation=> Consumption units. 3. Set up the consumption factor, either percent or units. 4. Define the depreciation method to the specific asset. 5. Run depreciation proposal by selecting consumption depreciation proposal. This depreciation method is applicable to Manufacturing, Transportation & Logistics, Mining & Oil and Gas, Utilities & Energy, Agriculture, Printing and Publishing. This depreciation method is useful for performance-based maintenance and replacement planning. 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.

Share Story :

Restoring a Deleted Posted Bank Reconciliation in Business Central: A Comprehensive Guide

Are you having trouble restoring a deleted posted bank reconciliation in Microsoft Dynamics 365 Business Central? In this blog, I’m going to guide you through the process of effectively restoring a deleted posted bank reconciliation and ensuring the accuracy of your financial records. You’ll learn the step-by-step procedure to re-post a deleted bank reconciliation, along with best practices to prevent future errors and maintain the integrity of your financial data. Let’s get started! Steps to Achieve Goal: page 50100 BankLedgerEntryEditable {     ApplicationArea = All;     Caption = ‘Bank Ledger Entry Editable’;     PageType = List;     SourceTable = “Bank Account Ledger Entry”;     UsageCategory = Lists;     Permissions = tabledata “Bank Account Ledger Entry” = RIMD;     layout     {         area(Content)         {             repeater(General)             {                 field(“Document No.”; Rec.”Document No.”)                 {                     ToolTip = ‘Specifies the document number on the bank account entry.’;                 }                 field(“Statement No.”; Rec.”Statement No.”)                 {                     ToolTip = ‘Specifies the bank account statement that the ledger entry has been applied to, if the Statement Status is Bank Account Ledger Applied.’;                 }                 field(“Statement Line No.”; Rec.”Statement Line No.”)                 {                     ToolTip = ‘Specifies the number of the statement line that has been applied to by this ledger entry line.’;                 }                 field(“Statement Status”; Rec.”Statement Status”)                 {                     ToolTip = ‘Specifies the statement status of the bank account ledger entry.’;                 }                 field(Amount; Rec.Amount)                 {                     ToolTip = ‘Specifies the amount of the entry denominated in the applicable foreign currency.’;                 }                 field(“Amount (LCY)”; Rec.”Amount (LCY)”)                 {                     ToolTip = ‘Specifies the amount of the entry in LCY.’;                 }                 field(“Posting Date”; Rec.”Posting Date”)                 {                     ToolTip = ‘Specifies the posting date for the entry.’;                 }             }         }     } } pageextension 50101 PostedBankAccRecon extends “Bank Account Statement List” {     trigger OnDeleteRecord(): Boolean     begin         Error(‘You cannot delete a bank account reconciliation entry.’);     end; } To conclude, by following these steps, you can successfully undo a deleted posted bank reconciliation in Business Central. The process involves editing the Bank Ledger Entry, recreating the bank reconciliation with the same details, and ensuring the previously deleted reconciliation is removed through AL. With this approach, you maintain accurate financial records and ensure that your bank account reconciliation process runs smoothly without any discrepancies. If you need further assistance or have specific questions about your Business Central setup, feel free to reach out for personalized guidance.  Happy Reconciliation! 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.

Share Story :

Using Copilot for simplifying Sales Quote and Order Lines creation in Dynamics 365 Business Central

Microsoft is rapidly integrating Copilot across its ecosystem, empowering users with AI-driven assistance in various business processes. As enterprise systems become more connected, AI gains deeper access to data, enabling automation that eliminates tedious tasks and lets users focus on strategic decisions. In Dynamics 365, Copilot can help sales teams by generating Sales Quote Lines or Sales Order Lines by providing a rough prompt.  In this blog, we’ll explore how to leverage Copilot for a more efficient sales workflow by taking a sample use case. References Copilot in Business Central Overview Sales Line Suggestions with Copilot Scenario One fine morning your sales team receives an email from a customer who’s looking to try out your product. He sends your team an email. Your team goes to Business Central and creates a Sales Quote. In the lines section, they click on the Copilot button and click on “Suggest lines”. They can add the text the customer sent them directly or with some minor changes. And Copilot will find the best matching item and suggest some lines to the User. You can adjust the matching criteria to your required –  Permissive means that all keywords are optional. This option typically generates the most suggestions. Balanced is a blend of required and optional keywords. This option typically generates fewer suggestions. Precise means that all keywords are required. This option typically generates the fewest suggestions. Fast-foward a few days, the Customer is happy with your product and sends a bigger order. We can paste the entire description again into the suggest lines box. Copilot handles minor mistakes like spelling errors and mismatched totals without any intervention. And your new sales quote is ready! The accuracy of sales lines suggested by Copilot rely heavily on the quality of data present in the system. I’m not sure why Microsoft hasn’t included the same functionality for the Purchase side of things but I’m sure it’s not too far off in the future.  There’s already a BC Idea raised for this (Please vote it!).  If you need further assistance or have specific questions about your ERP setup, feel free to reach out for personalized guidance. 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.

Share Story :

Seamless Integration: How to Sync Business Central with External Systems Instantly or in Batches

In today’s fast-paced business world, integrating your ERP system (like Business Central) with other external systems is crucial for streamlining processes and ensuring data consistency. However, if you’re new to API integrations or struggling with how to send data from Business Central to another system, don’t worry! In this post, I am going to walk you through the process of sending data from Business Central to an external system using APIs. By the end of this guide, you’ll have a clear understanding of how to perform integrations smoothly, without the complexity. Steps to Achieve Goal: You can easily send data from Business Central to an external system by calling the link set in General Ledger Setup. Below is the logic for sending data via an API. You can encapsulate this logic inside a Codeunit, and call it as needed based on your synchronization requirements: Real-Time Data Sync: If you want the data to be synced in real-time (for example, as soon as new data is entered into Business Central), you can call the procedure within the OnAfterInsert() trigger. This ensures that every time a new record is created, it automatically triggers the procedure to send the data. trigger OnAfterInsert() begin     SendPostRequest(Rec); end; Batch Data Sync: If you prefer to sync the data at the end of a batch process (for example, at the end of the day), you can loop through the records using FindSet() and then call the procedure inside the loop. This will send data in bulk at a scheduled time rather than in real-time. procedure SyncDataInBatch() var     Rec_SO: Record “Sales Header”; begin    Rec_SO.setrange(CreatedAt,today()); // Apply any filter as per your need.     if Rec_SO.FindSet() then         repeat             SendPostRequest(Rec_SO);         until Rec_SO.Next() = 0; end; // Below is the logic for posting data from BC to Third Party Applications via API   procedure SendPostRequest(var Rec_SO: Record “Sales Header”)     var         HttpClient: HttpClient;         HttpContent: HttpContent;         HttpResponseMessage: HttpResponseMessage;         HttpRequestMessage: HttpRequestMessage;         JsonObject: JsonObject;         JsonText: Text;         Rec_GLE: Record “General Ledger Setup”;         contentHeaders: HttpHeaders;         OutPutString: Text;     begin           Rec_GLE.Get();         Rec_GLE.TestField(“API Link”); // where the other system API link has been stored and we are using via AL         HttpRequestMessage.SetRequestUri(Rec_GLE.”API Link”);         HttpRequestMessage.Method := ‘POST’;         JsonObject.Add(‘system_id’, Rec_SO.SystemId); // Passing Sales Header System ID(GUID)         JsonObject.Add(‘document_number’, Rec_SO.”No.”); // Passing Sales Header No         JsonObject.Add(‘type’, ‘ReleasedSalesInvoice’); // Passing Sales Header type         JsonObject.WriteTo(JsonText);         HttpContent.WriteFrom(JsonText);           HttpContent.GetHeaders(contentHeaders);         contentHeaders.Add(‘charset’, ‘UTF-8’);         contentHeaders.Remove(‘Content-Type’);         contentHeaders.Add(‘Content-Type’, ‘application/json; charset=utf-8’);           HttpRequestMessage.Content(HttpContent);         if HttpClient.Send(HttpRequestMessage, HttpResponseMessage) then             if HttpResponseMessage.IsSuccessStatusCode then begin                 HttpResponseMessage.Content.ReadAs(OutPutString);                 Message(‘%1’, OutPutString);             end             else                 Error(‘Error %1’, HttpResponseMessage.ReasonPhrase);     end; Conclusion: To conclude, sending data between Business Central and other systems is not as complicated as it might seem. By following the steps outlined above, you’ll be able to create smooth, efficient integrations that will save time, reduce errors, and improve your business processes. Happy Coding! 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.

Share Story :

Elevating SSRS Reports with Dynamics Company Logo in D365 F&O

In the world of corporate reporting, presentation matters just as much as data. The more personalized and professional your reports look, the more impactful they become. If you’re using Dynamics 365 Finance and Operations (F&O), chances are you rely on SSRS (SQL Server Reporting Services) reports to generate vital business insights. But have you ever wondered how to make those reports more aligned with your company’s branding? Are you struggling with adding your company logo to SSRS reports in F&O? I am going to show you how to easily embed your corporate logo into your SSRS reports within Dynamics 365 F&O, transforming your data into visually appealing reports that reflect your brand identity. Whether you’re preparing financial statements, customer invoices, or custom reports, adding a logo enhances the look and feel, ensuring that your reports maintain a consistent and professional corporate image. Steps to Achieve the goal Before embedding your logo into the SSRS report, ensure that the image file (usually in PNG, JPG, or GIF format) is prepared and accessible. You need to upload the logo to a location within the F&O environment where your SSRS report can access it. Follow these steps: To conclude, adding your company logo to your SSRS reports in Dynamics 365 Finance & Operations is a powerful way to enhance your brand’s presence across all reports. You can instantly elevate the look and feel of your documents. Happy Coding! 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.

Share Story :

Business Central Translations: Working with XLIFF Files – Part 2

By the end of this guide, you will be able to generate, edit, and implement XLIFF files in Microsoft Dynamics 365 Business Central to support multiple languages seamlessly. This will enable your application to display translated content for UI labels, reports, and messages, ensuring a smooth experience for users across different regions. Why does this matter? Using XLIFF files, businesses can easily localize Business Central applications without modifying source code, making multilingual support efficient and scalable. By leveraging tools like NAB AL Tools, translations can be managed effortlessly, enhancing global usability. Generating an XLIFF File To illustrate the XLIFF process, let’s go through an example where we add a custom field named “Custom_Field” on the Customer Card page. Step 1: Creating a Custom Field First, we create a new field, Custom_Field, on the Customer Card page using AL code: Step 2: Enabling Translation File Feature In the app.json file, ensure that the TranslationFile feature is enabled: Step 3: Building the Project Now, build the extension using the shortcut CTRL + Shift + B. This will generate an .xlf file automatically in the translation folder. By default, the file is generated in English (en-US). Using NAB Extension for Translation To simplify translation tasks, you can install the NAB AL Tools extension from the Visual Studio Code marketplace. This extension helps in managing translation files efficiently by allowing automated translation suggestions and quick file updates. Steps to Use NAB AL Tools: A) Install NAB AL Tools. B) Press CTRL + Shift + P and select NAB: Create translation XLF for new language. C) Enter the language code (e.g., fr-FR for French – France). D) Choose Yes when prompted to match translations from BaseApp. E) A new fr-FR.xlf file will be generated. Translating the XLIFF File To translate the XLIFF file into another language (e.g., French), follow these steps: Example: Translating Report Labels In Business Central RDLC reports, hardcoded text values can also be translated using labels. Instead of writing static text, define labels within the AL code: Using FieldCaption ensures that report labels dynamically adapt to the selected language, improving localization without manual modifications. When switching languages, the label automatically retrieves the corresponding translation from the XLIFF file. Modifying Standard Fields Standard field names in Business Central can also be modified using the BaseApplication.g.xlf file. You can find this file in public repositories, such as: BaseApplication.g.xlf Modifying this file allows changes to default field captions and system messages in multiple languages. Insert value in different languages via AL In Microsoft Dynamics 365 Business Central, AL enables efficient multilingual data handling. The image above illustrates a Customer Card where the “Nom” (Name) field contains the value “testing.” The AL code extends the Customer table, adding a custom field and an onInsert trigger to validate the Name field with “testing.” This ensures data consistency across different language settings. By leveraging AL, developers can automate multilingual field values, enhancing Business Central’s global usability. To conclude, managing translations in Business Central using XLIFF files enables businesses to support multiple languages efficiently. By generating XLIFF files, modifying them for translation, and leveraging tools like NAB AL Tools, businesses can ensure accurate and seamless localization. For further refinements, modifying report labels and system fields enhances multilingual support, improving the user experience across global deployments. 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.

Share Story :

Business Central Translations: Language Setup and Customization – Part 1

In today’s globalised world, firms frequently operate in numerous areas and languages. To efficiently manage worldwide operations, software with multilingual capabilities is required. Microsoft Dynamics 365 Business Central (BC) includes a powerful translation system that enables enterprises to customise language choices, thereby increasing user experience and operational efficiencies. This article looks at how translations function in Business Central and how they may be used to support global business operations. Why Are Translations Important in Business Central? Businesses that expand into new areas face a variety of languages, currencies, and regulatory regimes. Ensuring that employees can interact with Business Central in their native language improves the software’s usability and productivity. Business Central allows users to configure numerous languages across various modules, allowing workers to work smoothly in their favourite language. It also allows translations for custom fields, reports, and data entry, assuring consistency and correctness in both internal and external interactions. How Translation Works in Business Central Business Central supports several languages, including English, French, German, and Spanish. Here’s an outline on how to activate and use translations successfully. 1. Configuring Language Settings The first step in enabling multilingual support is to configure the Language Settings in Business Central. Users can choose their favourite language or use the organization’s default language settings. This guarantees that when a user logs in, the interface, menus, and forms appear in their preferred language. To configure a language in Business Central: 2. Standard Text Translations Business Central provides built-in translations for standard interface elements and commonly used terms such as “Sales Orders,” “Invoices,” and “Purchase Orders.” These translations are included in the base application by Microsoft. For example, changing the language from English to French automatically updates the captions. However, some standard texts may not be translated by default. To install additional language support: Once installed, the system updates with the new language settings, ensuring a localized user experience. 3. Translating Custom Fields Many businesses customize Business Central by adding custom fields, tables, and industry-specific terminology. While these enhancements improve operational efficiency, they may not be automatically translated in the base system. To resolve this, Business Central provides the CaptionML property, which allows developers to define multilingual captions for custom elements. Example: English: Displays field names and labels in English. French: The same fields are shown with French translations. By implementing the CaptionML property, businesses ensure a seamless multilingual experience even for customized elements. To conclude, Microsoft Dynamics 365 Business Central makes it simple for multinational companies to handle multilingual customers. Companies can improve usability and efficiency across regions by changing language settings, adding extra translations, and ensuring that custom fields are translated using CaptionML. Embracing Business Central’s translation skills enables firms to operate efficiently in a global market while providing a consistent and localized experience to all users. 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.

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange