Tag Archives: Dynamics 365
Easy JavaScript Examples for Dynamics 365 CRM – Repository
Are you tired of spending hours searching for the right JavaScript functions to use in Dynamics 365 CRM? If so, you’re not alone. Developers often struggle to find commonly used functions scattered across different sources, making it frustrating to build quick solutions or bug fixing. What if you had a single repository containing all the essential JavaScript functions at your fingertips? That’s exactly what this blog offers, a one-stop resource where you’ll find everything you need, from retrieving field values to automating actions on forms. With these functions in one place, you can save time, eliminate guesswork, and focus on creating impactful solutions for your Dynamics 365 projects. As a Microsoft Certified Trainer (MCT) and Microsoft Certified Professional, I’ve spent my career deploying Dynamics 365 solutions for organizations across the globe. My hands-on experience in architecting and implementing complex solutions has given me deep insight into the challenges developers face—one of the most common being finding and applying the right JavaScript functions efficiently. Let’s explore the most commonly used JavaScript functions for quick reference and seamless development Best Practices: Always check if a field or control is null before interacting with it. Keep JavaScript functions modular and reusable. Avoid using deprecated APIs, always follow the latest Microsoft documentation. Conclusion: JavaScript is a game-changer when it comes to customizing Dynamics 365 CRM, and having a go-to repository for commonly used functions can save you significant time and effort. With these functions at your fingertips, you’ll be better equipped to build dynamic forms, automate processes, and enhance the overall user experience. And smoother operations for your business. Now that you’ve explored these essential JavaScript functions, why not take your Dynamics 365 knowledge even further? Check out this blog on error handling in Dynamics 365 plugins to strengthen your expertise in server-side customizations as well. Bookmark this repo, and let’s make development faster and easier together!
Add Tooltip for Column Headers in Power BI: A Step-by-Step Guide
Introduction Tooltips are a powerful feature in Power BI, offering additional context and information for visuals. However, tooltips are not natively supported for column headers in Power BI. This means users cannot view detailed information about column headers directly. Fortunately, there’s a workaround to address this limitation, which we’ll explore in this blog post. The method we are going to use is the Action buttons. We will add an action button to column headers, and the action button will have a tooltip that shows header details. Please find a step-by-step guide for the same – 1. First, we need to insert a button. Here I have used a blank button since I want to show the tooltip when the user hovers through a particular column area, but you can use any of the buttons based on your choice. 2. Now, go to the button visual settings, turn on the action button, set the type to bookmark with None as an option, and specify the tooltip. Conclusion In this blog post, we discussed adding tooltips to the column headers to give users more context. we hope you found this blog post helpful! If you have any questions or want to discuss further, please contact us at transform@cloudfronts.com.
Seamless Integration between D365 Project Operations & Business Central
Are you an organization who has sophisticated Project needs, however your financial requirements are simple? You may be in a position where you are having Project Operations and Business Central deployed or you are considering going with Project Operations for your sophisticated Project needs, and Business Central because your finances are simple, and you feel D365 Finance & Operations would be an over kill for your requirements. Once you get into this position, you realise that Project operations and Business Central are two disintegrated systems. Microsoft does not provide this integration out of the box. While it does for Finance & Operations, it has left PO and BC integration for the partners to figure out. Why a Single Source of Truth Matters For businesses managing complex projects, real-time, accurate insights into both project progress and financials aren’t a luxury—they’re essential. Without an integrated approach, processes slow down, errors multiply, and operational agility takes a hit. Our Perspective: By integrating D365 Project Operations with Business Central, companies can seamlessly connect project and financial data. This integration reduces errors, unifies workflows, and enables decision-makers to act with confidence. Why Integrated Systems Are Essential As projects scale, cost tracking, billing, and resource management become harder to manage. An integration of D365 Project Operations and Business Central creates a cohesive environment where data flows naturally, helping teams move past the blockers of siloed systems. Here’s How Integration Changes the Game – Unified, Real-Time Data Visibility Imagine having access to all of your financial and project data in one location. Team leads and finance managers can save time, no longer needing to cross-check numbers across systems. Data flows seamlessly between Project Operations and Business Central, enabling accurate budgeting and invoicing. – Automation Cuts Out Tedious Processes Say goodbye to manual reconciliation. Updates made in Project Operations sync directly with Business Central—eliminating double entries and minimizing errors. This enhances accuracy and efficiency, freeing your team members to focus on other things rather than data entry. – End-to-End Project Lifecycle Management This integration supports each project phase, from budgeting and invoicing to reporting. Full visibility means greater accountability, and everyone—from managers to teams—has the insights needed to make informed, timely decisions. – Insights That Drive Better Planning and Execution With integrated analytics and Power BI, you’re not just gathering data; you’re transforming it into actionable insights. View project profitability and resource utilization in one place, enabling better project planning and seamless operations. – Stock scenarios are covered If you are an engineering company running heavy, long term deployment projects, you are probably worried how will Project operations cover the scenarios where I need to have stock consumption on my project tasks. We have you covered here, too, so don’t worry. With the Project operations and Business Central integration we have also figured out how the stocks entries need to flow from Project Operations to Business Central because your stock movements happen in Business Central This will ensure accurate stock consumption against the projects without worrying about what goes on in the background. – WIP tracking With the actuals being passed onto Business Central, your Finance team will have WIP postings in place to give an accurate picture of the progress on the Project. Why Partner with Us? Having guided numerous businesses through D365 implementations, we know how to bridge gaps between project and financial management to unlock greater flexibility and efficiency. Our team is here to tailor this integration to your unique business needs. Ready to See the Difference? Think about your current project and financial workflows. Imagine the time saved and clarity gained by integrating them. Ready to explore what D365 integration can do for your business? Reach out to us at transform@cloudfronts.com for a free consultation, and let’s work toward operational excellence together.
How to Setup and Manage Reminder in Business Central
Are you struggling with keeping track of important deadlines and tasks in Business Central? I’m going to show you how to easily set up and manage reminders, so you never miss a critical follow-up or due date again. Did you know that businesses using reminder systems are 70% more likely to meet their deadlines consistently? In this guide, I’ll walk you through the simple steps to create, customize, and manage reminders in Microsoft Business Central. Get ready to boost your team’s productivity and keep your projects on track! Navigate to Reminder Setup: Conclusion Setting up and managing reminders in Microsoft Dynamics 365 Business Central is a powerful way to streamline accounts receivable and maintain healthy cash flow. By configuring reminder terms, linking them to specific customers, and using Business Central’s automated reminder creation and sending options, businesses can ensure timely payment collections while reducing manual effort. Properly managed reminders not only help businesses stay organized but also improve customer relationships by clearly communicating payment expectations. Regularly reviewing and adjusting reminders allows businesses to stay flexible and responsive, ensuring that the reminder process remains efficient and effective. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Unlocking the Power of Ternary Operators and Extendable Interfaces in Business Central
Developers are continually looking for ways to write cleaner, more efficient code. Two powerful tools that have emerged to meet this need are the ternary operator and extendable interfaces. This blog explores how these features can enhance your AL code, making it more readable and maintainable. Ternary Operator in Business Central The ternary operator, introduced in the 2024 release wave 2 of Business Central, is a concise way to perform conditional assignments. It offers a streamlined alternative to traditional if-else statements, promoting code clarity and reducing verbosity. Syntax and Example The ternary operator in AL has the following syntax: condition ? exprIfTrue : exprIfFalse Here’s an example that demonstrates its usage: pageextension 50300 CustomerListExtension extends “Customer List” {layout { addlast(Content) { field(“Customer Status”; IsCustomerActive) { ApplicationArea = All; } }} var IsCustomerActive: Text; trigger OnAfterGetCurrRecord();begin IsCustomerActive := Rec.Blocked = Rec.Blocked::” ” ? ‘Active’ : ‘Inactive’;end;} In this example, the ternary operator is used to determine whether a customer is active or inactive based on their Blocked status. The result is a concise and more readable conditional assignment. Extendable Interfaces in Business Central Extendable interfaces provide a modular and flexible way to define reusable logic across different components in Business Central. They allow developers to create scalable systems that can easily adapt to changing business requirements. Defining and Implementing Extendable Interfaces Base Interface: interface INotificationProvider {procedure SendNotification(Message: Text): Text;} Extended Interface: interface INotificationProviderExt extends INotificationProvider {procedure SendEmailNotification(Message: Text): Text;procedure SendSMSNotification(Message: Text): Text;} Implementing the Interfaces in Codeunits: Email Notification Provider:codeunit 50301 EmailNotificationProvider implements INotificationProvider {procedure SendNotification(Message: Text): Text;begin exit(‘Email sent with message: ‘ + Message);end;} SMS Notification Provider:codeunit 50302 SMSNotificationProvider implements INotificationProvider {procedure SendNotification(Message: Text): Text;begin exit(‘SMS sent with message: ‘ + Message);end;} Advanced Notification Provider:codeunit 50303 AdvancedNotificationProvider implements INotificationProviderExt {procedure SendNotification(Message: Text): Text;begin exit(‘Notification sent with message: ‘ + Message);end; procedure SendEmailNotification(Message: Text): Text;begin exit(‘Email sent with message: ‘ + Message);end; procedure SendSMSNotification(Message: Text): Text;begin exit(‘SMS sent with message: ‘ + Message);end;} Real-World Application Let’s implement these interfaces in a page extension to add actions for sending notifications to customers. pageextension 50300 CustomerListExt extends “Customer List” {actions { addafter(ApplyTemplate) { action(SendEmail) { ApplicationArea = All; Image = Email; Caption = ‘Send Email’; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProvider := EmailNotificationProvider; Message(iNotificationProvider.SendNotification(‘Email message to customer’)); end; } action(SendSMS) { Image = Phone; Caption = ‘Send SMS’; ApplicationArea = All; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProvider := SMSNotificationProvider; Message(iNotificationProvider.SendNotification(‘SMS message to customer’)); end; } action(SendAdvancedNotification) { Image = Notification; Caption = ‘Send Advanced Notification’; ApplicationArea = All; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProviderExt := AdvancedNotificationProvider; Message(iNotificationProviderExt.SendEmailNotification(‘Advanced Email message to customer’)); Message(iNotificationProviderExt.SendSMSNotification(‘Advanced SMS message to customer’)); end; } }} var iNotificationProvider: Interface INotificationProvider; iNotificationProviderExt: Interface INotificationProviderExt; EmailNotificationProvider: Codeunit EmailNotificationProvider; SMSNotificationProvider: Codeunit SMSNotificationProvider; AdvancedNotificationProvider: Codeunit AdvancedNotificationProvider;} This example demonstrates how to use extendable interfaces to create a flexible and maintainable notification provider system in Business Central, allowing for different types of notifications to be added seamlessly. Conclusion The ternary operator and extendable interfaces in Business Central are powerful tools that can significantly enhance your AL code. By using the ternary operator, you can streamline conditional logic and improve code readability. Extendable interfaces, on the other hand, allow for modular, scalable solutions that can adapt to changing business needs. Embrace these features to build more efficient, maintainable, and future-proof solutions in Business Central.
Optimizing Cash Flow: Effective Reminder Systems in Business Central
Maintaining timely communication with customers about outstanding payments is crucial. Business Central makes this easier with its automated reminder feature, helping businesses streamline their collection process while maintaining positive client relationships. This sets the stage for discussing the “how-to” steps for sending reminders in Business Central. Reminders can be used to remind clients of past-due amounts and to solicit payment. You can assign reminder terms to customers and set them up to manage accounts receivable. You have control over how the reminder process operates with reminder terms. You can specify a set of reminder levels for each reminder term. Rules governing when to send reminders, what fees to charge, and whether to compute interest are all included in reminder levels. A grace period setting is another feature of reminder levels that makes sure you don’t remind customers about bills they have already paid. Pre-requisites – Business Central onCloud – Reminder terms You have to choose how and when to remind clients who have past-due payments. You may also wish to deduct interest or fees from their accounts. Any number of reminder terms can be configured. Lets see how we can set automate reminders for ovedue customers Configuration: – Select the reminder term or terms for which you want to use this automation in the Reminder Terms Filter field.– Select the frequency of automation runs in the Cadence field.– Next, select whether the automation generates, issues, or sends reminders by selecting New on the Actions FastTab.– Select OK.– Complete the fields on the setup page as needed, depending on the action the automation is performing.– Go to Settings for reminder actions to find out more about the settings.– The Move up and Move down actions allow you to change the sequence in which the automation’s actions execute after you’ve configured them. Set cadence to manual and click on start button it will create reminders for customers witb overdue amount Now setup automation to issue reminders similar to above Click on action and choose Issue reminder action When issuing a reminder, entries are created in the customer ledger with details like the posting and tax dates. You can use the “Issue Reminders Setup” page to decide if these dates should be replaced by the dates from the reminder itself. For instance, if a reminder was created yesterday but issued today, the due date will adjust by one day. Once you click on start button it will move all draft reminders to issue reminder. From here by using above actions, you can sent reminders to customer manually also or mark it as sent if you already sent mail by yourself. Let’s create third entry to send reminders to customers Now before running this last job que, you need to set email body for customers Search Reminder terms and choose default value in our case we have added Domestic as a reminder term This is the template you will see when you click on “Customer Communication.” It can be changed to suit your needs. Once you schedule all three-job automatic it will start sending emails to customers Conclusion: In conclusion, automating reminders in Business Central streamlines the payment collection process, helping businesses maintain cash flow and reduce overdue receivables. By leveraging customizable reminder settings, companies can create tailored communication that encourages timely payments while maintaining positive customer relationships. The system’s flexibility and automation capabilities allow for efficient financial management, minimizing manual intervention and improving overall productivity. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Simplifying Sales with Business Central 2024 Wave 2: CSV Integration Made Easy
For growing businesses, managing sales efficiently is crucial as processes and reporting become more complex. Microsoft Dynamics 365 Business Central 2024 Wave 2 (BC25) introduces an exciting new feature that helps you create sales lines quickly by using data from a CSV (comma-separated values) file. This feature, powered by Copilot, simplifies the sales order process and saves valuable time. Are You Struggling to Manage Your Sales Lines? Are you finding it challenging to keep up with sales line entries? If you’re looking to automate this process, this article is for you. According to recent studies, businesses that streamline their sales processes can reduce order creation time by up to 80%. Additionally, companies using automated solutions see a 25% increase in productivity and improved accuracy in their sales data. Why CSV Integration Matters As businesses expand, the volume and complexity of sales orders increase. Having an efficient method to manage sales lines is essential for maintaining operational flow and customer satisfaction. The new CSV integration feature in Business Central 2024 Wave 2 allows you to: – Save Time: Upload your sales data all at once, eliminating the need for tedious manual entry. – Reduce Errors: Ensure your sales line data is accurate and consistent, minimizing mistakes that can occur with manual entry. – Manage Data Easily: Use a simple spreadsheet format to organize your sales line details before uploading them. How to Use the CSV Integration Feature Step-by-Step Guide 1. Prepare Your CSV File: Start by creating a CSV file containing all the sales line details you need, such as item numbers, quantities, and prices. 2. Log into Business Central: Open your Business Central account and navigate to the sales order section. 3. Upload the CSV File: – Click on the Copilot symbol and select “Suggest Sales Line.” – Choose “Attach” and upload your CSV file. Note: Only CSV files can be selected. PS: Only CSV (comma-separated values) can be selected. 4. Review the Suggestions: After uploading, review the suggested sales lines. You can make any adjustments if necessary. – For actions like matching or viewing, choose the appropriate options and click “Generate” for Copilot to suggest sales lines based on your data. Column Action: Matching: View: 5. Finalize Your Order: Once you’re satisfied with the sales lines, click “Insert.” Your sales lines will now be successfully added to the sales order. Conclusion The new CSV integration feature in Business Central 2024 Wave 2 makes managing sales orders easier than ever. With Copilot’s assistance, you can save time, reduce errors, and streamline your sales process. We encourage you to explore this feature and see how it can transform your sales operations. If you need further assistance, feel free to reach out to CloudFronts for practical solutions that can help you implement this powerful tool effectively.
Quality Control in Business Central – Part 1
Quality isn’t just a standard—it’s a promise. For pharmaceutical industries where quality can make or break success, we are offering a quality control module in business central which is in compliance with GMP. Imagine what you could achieve with a streamlined, GMP-compliant solution that integrates seamlessly into your existing workflows. With our new quality control module in Business Central, not only can your business meet Good Manufacturing Practice (GMP) standards, but you can also elevate product consistency, enhance traceability, and make real-time quality insights accessible. Let’s explore how this tool is built to not only meet requirements but drive your business forward This blog series dives into the step-by-step process of implementing and optimizing our GMP-compliant quality control module in Business Central. Let’s begin, Customer order is received – In a manufacturing company, company will receive an order from customer. Based on the order and availability of product the user will prepare a Proforma invoice. Proforma Invoice – User will create a proforma invoice with all the details of the order and send that invoice for approval internally. – Once that invoice is approved, the user will convert that proforma invoice into sales order. Sales order – Once a sales order is created after approval, user will then plan the production. – To plan the schedule, we have customised a page, “Planning Schedule” – The planning schedule has to be prepared from the sales order page. Later the page is accessible with global search as well. – User will select the item no. on the page and click on “Planning” button on the action bar. – System will automatically create lines/batches for the sales order quantity. These batches are created based on the production Bom details in the master. – When the user is ready to create production orders for the first batch, user will click on the “carry out action” checkbox and the from the action bar click on “Create production order button” – System will automatically create firm planed production order for the entire batch. – Now that the firm plan production orders are ready, user can run the Planning (shortage) worksheet Planning Worksheet – User will run the planning worksheet to figure out the shortages for the production of Finished goods. – To get the shortages, user will click on “Calculate regenerative plans” button on the action bar. A filter page will pop up, enter the date range for the shortages and click on “ok” – When the lines are generated, user can directly select the lines on the worksheet and create a Purchase indent (It is an internal document used by companies to authorize the requisition of Materials.) – User can club multiple lines in one purchase indent. Thank you for reading this blog. We’ve started the series with sales order and covered in the MRP process, and we hope you found the information valuable. In our next blog, we will start the Procurement Quality Check process, exploring its significance and the steps involved in ensuring that all procured materials meet our stringent quality standards. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Understanding OData.Etag in Postman and Related Features
Introduction Open Data Protocol (oData) is a web protocol for querying and updating data. It simplifies the data exchange between clients and servers, allowing for easy integration with RESTful APIs. One important feature of oData is the use of ETags (Entity Tags), which are part of the HTTP protocol and help manage the state of resources. ETags serve as a version identifier for a resource. When a client retrieves a resource, the server sends an ETag in the response. The client can then use this ETag in subsequent requests to ensure that it is working with the most current version of that resource. What is oData.ETag? In Postman, oData.ETag refers specifically to the ETag values used in oData responses. These tags help maintain data integrity during updates. When a client attempts to update a resource, it can include the ETag in the request headers. If the ETag matches the current version on the server, the update proceeds. If not, the server rejects the request, preventing unintended data overwrites. Using oData.ETag in Postman Fetching an ETag: When you send a GET request to an oData endpoint, look for the ETag header in the response. For example:GET https://api.example.com/odata/productsThe response might look like this:HTTP/1.1 200 OKETag: “W/\”123456789\”” Updating a Resource with ETag: When you need to update the resource, include the ETag in the If-Match header of your PUT or PATCH request:PATCH https://api.example.com/odata/products(1)If-Match: “W/\”123456789\””Content-Type: application/json { “name”: “Updated Product Name”} If the ETag matches, the update occurs; otherwise, you’ll receive a 412 Precondition Failed response. Related Features in Postman Conditional Requests: Beyond oData, ETags are useful in REST APIs for conditional requests. You can use If-None-Match to check if a resource has changed before downloading it again, saving bandwidth and time. CORS Preflight Requests: When working with cross-origin requests, browsers may perform preflight checks using OPTIONS requests. Understanding ETags can help in managing these requests effectively, ensuring your API can handle them smoothly. Caching Strategies: Implementing caching with ETags can enhance performance. Postman can simulate caching behavior, allowing you to test how your API behaves when dealing with cached responses. Error Handling: Testing how your API handles errors, such as a mismatched ETag, is crucial for robustness. Postman’s test scripts can validate error responses and ensure that your API behaves as expected. Conclusion Understanding oData.ETag in Postman is essential for developers working with RESTful APIs, especially in scenarios where data integrity is critical. By leveraging ETags, you can ensure safe and efficient data updates, manage caching, and improve your overall API interactions.
How to Send D365 CRM Emails with Attachments Using Power Automate
Introduction In this guide, we’ll walk through the process of sending emails from D365 CRM with attachments using Power Automate. This step-by-step approach will help you understand how to automate your email communications from CRM with attachments efficiently. Use-Case Let’s say you’re working on a project where you need to send emails from D365 CRM that include attachments. In this example, the document is stored in SharePoint, and its URL is linked within the CRM record. This setup is common in CRM where files are centrally stored in SharePoint but need to be easily accessible in CRM for email communication and tracking in CRM. However, this approach is versatile—whether you want to attach specific documents, generate them dynamically, or handle a range of file types, it can be adapted to meet your use-case needs. Why this solution? Main objective of using D365 Emails is the ability to track the emails to the record to keep track of communications in timeline. Also, manually attaching documents to each email is time-consuming and prone to errors. With Power Automate, you can automate this process, ensuring that every email includes the right attachment without extra steps. This solution not only saves time but also reduces the risk of sending incorrect or outdated files, keeping your communications accurate and efficient. Implementation – Step by Step As per my use-case, I have added a column in Accounts table that will hold my SharePoint file URL which I’ll use in power automate. Step 1: Trigger the Flow when a flag is marked true to send email report. Step 2: Get the file content using SharePoint path Step 3: Create a new ‘Email Message’ record in data verse (Add a new row) Step 4: Add a new row for ‘Attachments’ and link to email message record Add the custom value as shown below Add Base64 to your file content Add file name Step 5: Send the email That’s it Let’s test it – Results Trigger the flag (as per my use-case) The Email record with attachment Conclusion By integrating Power Automate to handle attachments from SharePoint, you streamline your email process, save time, and minimize errors. This solution is especially valuable for cases requiring frequent attachments or centralized file storage, as it keeps communication efficient and files up-to-date. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com