Latest Microsoft Dynamics 365 Blogs | CloudFronts

Boost Productivity with the Search in Company Data Feature in Business Central

In modern business settings, employees spend a significant portion of their time searching for information rather than using it. According to Microsoft, office workers can spend up to 20 % of their working time simply looking for data. With the “Search in company data” feature in Business Central, organizations can now provide users with faster, broader, and more relevant search capabilities—giving them more time to focus on strategic tasks rather than just data retrieval. Using this feature is straightforward and intuitive. You can either highlight any text within Business Central and open the Tell Me window, or type one or more keywords directly into it. Then, select the Search company data option to explore matching information across your system. So instead of opening Item list page and searching item name you can simply use above option. Once you click on Search Company Data it will open Search result with new page. You can simply click on result to open searched item page. You can enable more table to search across them by clicking “Setup where to search” option. To conclude, the Search in Company Data feature in Microsoft Dynamics 365 Business Central empowers users to find information faster and more efficiently. Instead of navigating through multiple pages or lists, users can now access the data they need directly through the Tell Me window. With the added flexibility to configure which tables and fields are searchable, organizations can tailor the experience to meet their specific needs. By simplifying the search process and enabling broader data accessibility, this feature not only saves time but also enhances productivity-allowing users to focus on decision-making and value-driven tasks rather than manual data lookups. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Taming the Chaos: A Guide to Dimension Correction in Business Central

We’ve all been there. You’re closing out the month, and you spot it: a General Journal line where the “Department” dimension is set to “Sales” but should have been “Marketing.” Or perhaps a purchase invoice was posted with an incorrect “Project” code. In the world of accounting and Microsoft Dynamics 365 Business Central, dimensions are the lifeblood of meaningful reporting, and even a single mistake can ripple through your financial statements, leading to misguided decisions and frantic period-end corrections. Fortunately, Microsoft Dynamics 365 Business Central offers a powerful, built-in safety net: the Dimension Correction feature. This isn’t just a handy tool, it’s a game-changer for financial integrity and auditor peace of mind. What Are Dimensions, and Why Do Mistakes Happen? Before diving into corrections, let’s quickly recap. Dimensions in Business Central are tags like Department, Project, Cost Center, or Region. Instead of creating separate G/L accounts for every possible combination, dimensions allow you to slice and dice your financial data, delivering incredible analytical power. Common Reasons These Errors Occur: In the past, fixing mistakes meant reversing entries, posting manual journals, and leaving a messy audit trail. Not anymore. Enter the Hero: The Dimension Correction Feature The Dimension Correction feature allows you to change dimensions on already posted entries without creating new transactions or affecting original amounts. It simply updates the dimensional context of the existing entry. Key Benefits of Dimension Correction How to Perform a Dimension Correction: A Step-by-Step Guide Let’s walk through correcting a simple example. Scenario: A telephone expense was incorrectly posted to the SALES department. It should have been posted to the MARKETING department. Step 1: Locate the Posted Entry Step 2: Initiate the Dimension Correction Step 3: Make the Correction Step 4: Verify the Change To conclude, The Dimension Correction feature transforms a once-tedious, error-prone process into a controlled, efficient, and auditable task. It empowers your finance team to maintain the integrity of your financial data without complex accounting workarounds. By understanding how to use this feature and following simple best practices, you ensure that your dimensions-and therefore your management reports – are always accurate, reliable, and ready to guide your business forward. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Don’t Just Delete, TRUNCATE: A Deep Dive into Blazing-Fast Data Clearing in Business Central

If you’ve worked with data in Business Central, you’ve undoubtedly used the DELETE or DELETEALL commands. They get the job done, but when you’re dealing with massive datasets ike clearing out old ledger entries, archived sales orders, or temporary import tables they can feel painfully slow. There’s a better, faster way. Let’s talk about the TRUNCATE TABLE command, the unsung hero of high-performance data purging. What is TRUNCATE TABLE? In simple terms, TRUNCATE TABLE is a SQL command that instantly removes all rows from a table. Unlike DELETE, it doesn’t log individual row deletions in the transaction log. It’s a bulk operation that de-allocates the data pages used by the table, which is why it’s so incredibly fast. In the context of Business Central, you can execute this command directly from an AL codeunit. Yes, it’s that simple. Calling the .TruncateTable() method on a record variable targets its corresponding table and empties it completely. TRUNCATE TABLE vs. DELETE/DELETEALL: What’s the Difference? This is the crucial part. Choosing the right tool is key to performance and data integrity. Feature TRUNCATE TABLE DELETE / DELETEALL Performance Extremely Fast. Operates at the data page level. Slow. Logs every single row deletion individually. Transaction Log Minimal logging. Fills the log with a single “deallocated page” entry. Heavy logging. Fills the log with an entry for every row deleted. Where Clause No. It’s all or nothing. You cannot add a filter. Yes. You can use SETFILTER or SETRANGE to delete specific records. Table Triggers Does not fire. No OnBeforeDelete or OnAfterDelete triggers are executed. Fires for each row that is deleted. Referential Integrity Can fail if a FOREIGN KEY constraint exists. Respects and checks constraints, potentially failing on related records. Resets Identity Seed Yes. The next record inserted will have the first ID in the series (e.g., 1). No. The identity seed continues from where it left off. Transaction Rollback Can be rolled back if used inside a transaction, but it’s still minimally logged. Can be rolled back, as all individual deletions are logged. When Should You Use TRUNCATE TABLE? Given its power and limitations, TRUNCATE TABLE is perfect for specific scenarios: A Real-World Business Central Example Imagine you have a custom “Data Import Staging” table. Every night, a job imports thousands of items from an external system. The first step is always to clear the staging area. The Slow Way (using DELETEALL): The Blazing-Fast Way (using TRUNCATE TABLE): The performance difference can be staggering, turning a minutes-long operation into one that completes in under a second. Critical Warnings and Best Practices With great power comes great responsibility. The limitations of TRUNCATE TABLE are not just footnotes—they are critical considerations. NO FILTERS! This is the biggest “gotcha.” You cannot use SETRANGE before calling TruncateTable(). The method will ignore any filters and always delete everything. Double and triple-check your code to ensure you are targeting the correct table. Bypasses Business Logic: Because table triggers do not fire, any essential business logic in the OnDelete trigger will be skipped. Do not use TRUNCATE TABLE on tables where the delete triggers perform critical actions (e.g., posting, ledger entry creation, validation). Using it on main transaction tables like “G/L Entry” or “Sales Line” is almost always a bad idea. Foreign Key Constraints: If another table has a foreign key constraint pointing to the table you’re trying to truncate, the command will fail with an error. DELETEALL would also fail in this case, but the error message might be different. To Conclude, TRUNCATE TABLE is a powerful tool that should be in every Business Central developer’s arsenal. When used correctly, it can dramatically improve the performance of data maintenance tasks. The Rule of Thumb: Use DELETEALL when you need to respect business logic, delete specific records, or work with tables that have complex relationships. Use TRUNCATE TABLE when you need to quickly and completely empty a large, standalone table where bypassing business logic is safe and acceptable. Embrace TRUNCATE TABLE for the right jobs and watch your large-scale data operations fly. Reference: https://yzhums.com/67343/, We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com

Share Story :

Microsoft Dynamics 365 Business Central: The Future of Mid-Market ERP Growth

Microsoft Dynamics 365 Business Central: The Future of Mid-Market ERP Growth The ERP market is undergoing a fundamental transformation, and Microsoft Dynamics 365 Business Central (BC) is at the center of this evolution. Once perceived as a mid-market ERP solution, BC has rapidly matured into a powerful, cloud-first platform capable of supporting not just small businesses but also larger enterprises looking for agility, scalability, and deep integration. The Growth Story Business Central has experienced unprecedented growth over the past few years. Today, it powers more than 45,000 organizations worldwide, doubling its customer base in less than three years. Equally impressive is the growth in active users, which has risen by more than 75% year-on-year, with a particularly strong uptake among organizations with over 100 users—showing BC is no longer just an SMB tool. Microsoft’s investment in global expansion has also paid dividends. With localization support across 160+ countries, BC has become a truly international solution, making it the go-to ERP for businesses seeking consistency across geographies. Drivers Behind the Momentum Several factors are fueling this surge in adoption: A Strategic Shift in Customer Profile What’s particularly notable is the rapid growth of larger customers adopting BC. The number of customers with 100+ paid users has grown by more than 100% year-on-year. This shift highlights BC’s ability to scale and compete directly with larger ERP players traditionally serving the enterprise segment. The Challenges Ahead Despite its growth trajectory, Business Central faces challenges: The Road Ahead Looking ahead, Business Central is poised to play a leading role in shaping the ERP landscape. Its cloud-native architecture, combined with Microsoft’s innovation in AI and global reach, positions it as the ERP of choice for mid-market businesses scaling rapidly—and even for enterprises seeking agility. In many ways, BC represents more than just an ERP system; it’s a strategic growth enabler. By embedding intelligence, integrating seamlessly with the Microsoft stack, and offering flexibility through partners, Business Central is proving that the future of ERP is not just in the cloud—it’s intelligent, scalable, and accessible. To conclude, the story of Business Central is a story of transformation—of ERP systems, of business models, and of organizations embracing agility. For leaders looking ahead, BC is not just a software choice; it’s a growth strategy. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.

Share Story :

The Future of Financial Reporting: How SSRS in Dynamics 365 is Transforming Finance Teams

In Microsoft Dynamics 365 Finance and Operations (D365 F&O), reporting is a critical aspect of delivering insights, decision-making data, and compliance information. While standard reports are available out-of-the-box, many organizations require customized reporting tailored to specific business needs. This is where X++ and SSRS (SQL Server Reporting Services) come into play. In this blog, we’ll explore how reporting works in D365 F&O, the role of X++, and how developers can create powerful, customized reports using standard tools. Overview: Reporting in D365 F&O Dynamics 365 F&O offers multiple reporting options: Among these, SSRS reports with X++ (RDP) are the most common for developers who need to generate transaction-based, formatted reports—like invoices, purchase orders, and audit summaries. Key Components of an SSRS Report Using X++ To create a custom SSRS report using X++ in D365 F&O, you typically go through these components: Step-by-Step: Building a Report with X++ 1. Create a Temporary Table Create a temporary table that stores the data used for the report. Use InMemory or TempDB depending on your performance and persistence requirements. TmpCustReport tmpCustReport; // Example TempDB table 2. Build a Contract Class This class defines the parameters users will input when running the report. [DataContractAttribute]class CustReportContract{    private CustAccount custAccount; [DataMemberAttribute(“CustomerAccount”)]    public CustAccount parmCustAccount(CustAccount _custAccount = custAccount)    {        custAccount = _custAccount;        return custAccount;    }} 3. Write a Report Data Provider (RDP) Class This is where you write the business logic and data extraction in X++. This class extends SRSReportDataProviderBase. [SRSReportParameterAttribute(classStr(CustReportContract))]class CustReportDP extends SRSReportDataProviderBase{    TmpCustReport tmpCustReport; public void processReport()    {        CustReportContract contract = this.parmDataContract();        CustAccount custAccount = contract.parmCustAccount();         while select * from CustTable where CustTable.AccountNum == custAccount        {            tmpCustReport.AccountNum = CustTable.AccountNum;            tmpCustReport.Name = CustTable.Name;            tmpCustReport.insert();        }    } public TmpCustReport getTmpCustReport()    {        return tmpCustReport;    }} 4. Design the Report in Visual Studio 5. Create Menu Items and Add to Navigation To allow users to access the report: Security Considerations Always create a new Privilege and assign it to Duty and Role if this report needs to be secured. This ensures proper compliance with security best practices. Best Practices To conclude, creating reports using X++ in Dynamics 365 Finance and Operations is a powerful way to deliver customized business documents and analytical reports. With the structured approach of Contract → RDP → SSRS, developers can build maintainable and scalable reporting solutions. Whether you’re generating a sales summary, customer ledger, or compliance documentation, understanding how to use X++ for reporting gives you full control over data and design. I hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.

Share Story :

Mastering Multithreaded Batch Jobs in Dynamics 365 Finance & Operations

In the world of finance and operations, efficiency and accuracy are critical. Batch jobs play a vital role in automating repetitive tasks, processing large volumes of data, and ensuring seamless business operations. For organizations using Microsoft Dynamics 365 Finance and Operations (D365 F&O), the X++ programming language provides a powerful way to design, schedule, and execute batch jobs effectively. This blog explores how batch jobs function in D365 F&O, their importance in financial and operational workflows, and best practices for implementing them using X++. What Are Batch Jobs in D365 F&O? Batch jobs in Dynamics 365 Finance and Operations are automated processes that run in the background without user intervention. They are ideal for: Batch jobs help reduce manual effort, minimize errors, and improve efficiency. Example: A Simple X++ Batch Job class MyBatchJobTask extends RunBaseBatch { // Define variables str description; // Main execution logic public void run() {     info(“Batch job started: ” + description);  // Business logic here (e.g., update records, process transactions)     ttsbegin;         // Example: Update ledger entries         LedgerJournalTable journalTable;         journalTable.Description = description;         journalTable.insert();     ttscommit;  info(“Batch job completed successfully.”); }  // Constructor public static MyBatchJobTask construct() {     return new MyBatchJobTask(); }  // Main method to run the job public static void main(Args _args) {     MyBatchJobTask batchJob = MyBatchJobTask::construct();     batchJob.description = “End-of-Day Reconciliation”;  // Run the batch job     if (batchJob.prompt())     {         batchJob.run();     } }  } Key Benefits of Batch Jobs in Finance & Operations Best Practices for Batch Jobs in X++ – Example: x++ BatchHeader batchHeader = BatchHeader::construct(); batchHeader.addTask(this); batchHeader.addRuntimeTask(MyOtherBatchTask::construct(), 1); batchHeader.save(); 2. Implement Error Handling & Logging 3. Optimize Performance 4. Schedule Jobs Efficiently 5. Test in a Non-Production Environment Real-World Use Cases 1. Automated Invoice Posting 2. Inventory Revaluation 3. Bank Reconciliation Matching To conclude, batch jobs in Dynamics 365 Finance and Operations (using X++) remain a cornerstone of financial and operational automation. By following best practices—such as optimizing performance, implementing error handling, and leveraging batch groups—organizations can maximize efficiency while reducing manual effort. As Dynamics 365 Finance & Operations continues to evolve, integrating AI and cloud-based batch processing will further enhance speed and reliability. 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 :

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.

Share Story :

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.

Share Story :

Getting Started with Dynamics 365 Finance & Operations: Table and Form Customization

Dynamics 365 Finance and Operations (D365 F&O) allows customization through extensions, enabling developers to add new fields to existing tables and forms without modifying the original Microsoft code. This approach ensures upgrade safety and maintainability. In this blog, we’ll cover: Step 1: Creating a Table Extension A table extension lets you add custom fields to an existing table (e.g., CustTable for customers). 1. Create a Table Extension In Visual Studio, right-click your project → Add → New Item. Select Dynamics 365 Items → Data Model → Table Extension. Name it (e.g., MyCustTableExtension). 2. Define the New Fields After choosing the appropriate data type and entering the required information, you can proceed to create the field. 3. Synchronize the Database After adding fields: Right-click the project → Build. Right-click the project → Dynamics 365 → Synchronize Database. Step 2: Extending a Page to Display the New Fields Now, let’s add these fields to the Customer Details page (CustTable form). 1. Create a Page Extension Right-click your project → Add → New Item. Select Application Explorer → User Interface → Forms  → Create Extension. Name it (e.g., MyCustTablePageExtension). 2. Add Fields to the Page You can drag and place where you want. 3. Build and Test Build the project (F6). Run the CustTable form (Ctrl+F5). Open a customer record → Your new fields should appear under “General Tab”. Best Practices for Extensions To conclude, with table and form extensions, you can safely customize D365 F&O without altering base Microsoft code. This ensures smoother upgrades and better maintainability. Try it out and enhance your F&O implementation today! 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 :

Driving Efficiency with Automation: Transforming Sales Processes with Recurring Invoices in Microsoft Dynamics 365 Business Central

Businesses regularly invoice customers and require an efficient method to generate these invoices simultaneously. Microsoft Dynamics 365 Business Central offers a feature called “Create Recurring Sales Invoices,” which enables the batch creation of sales invoices for multiple customers using predefined recurring sales lines. Pre-requisites Business Central onCloud Configuration: To set up recurring sales lines. Search globally “Recurring sales lines” and choose the related link. Now select the “New” action and fill in the fields as necessary. There are some fields that are missing like Amount you can add it by Personalization and fill in the necessary data. Now assign recurring sales line template codes to customers that you want to create invoices for them. Now search for “Create recurring sales invoices”. On the Create recurring sales invoices page fill necessary data. In the Code filter field, enter the code for standard sales lines that are assigned to a customer that you want to create sales invoices for. You can see sales invoices are created for the customers with the specified sales invoice template code. To conclude, Microsoft Dynamics 365 Business Central’s recurring sales lines feature streamlines the creation of sales documents for transactions that occur regularly. By setting up standard sales lines and assigning them to customers, businesses can automate the insertion of these lines into sales documents, enhancing efficiency and reducing manual entry errors. This functionality is particularly beneficial for managing recurring orders, ensuring consistency, and saving time in the sales process. 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