Latest Microsoft Dynamics 365 Blogs | CloudFronts

Debugging Made Simple: Using IISExpress.exe for Faster D365 Finance & Operations Development

Summary In modern web application development, debugging efficiency plays a critical role in overall productivity. While full Internet Information Services (IIS) is powerful, it often introduces unnecessary complexity and slows down development cycles. This article explores how IIS Express (iisexpress.exe) provides a lightweight, fast, and developer-friendly alternative for debugging. You will learn how to use IIS Express effectively, understand its advantages over full IIS, and discover practical ways to streamline your debugging workflow for faster and more efficient development. Debugging Faster with IIS Express: A Practical Guide for Modern Developers In modern application development, debugging speed and flexibility can significantly impact productivity. While full IIS is powerful, it often introduces overhead that slows down iterative development. This is where IIS Express (iisexpress.exe) becomes a powerful yet underutilized tool. This article explores how to effectively use IIS Express for debugging, why it matters, and how it can streamline your development workflow. What is IIS Express? IIS Express is a lightweight, self-contained version of Internet Information Services (IIS) designed specifically for developers. It allows you to: Why Use IIS Express for Debugging? Where is IISExpress.exe Located? It is typically found at: C:\Program Files\IIS Express\iisexpress.exe How to Run IIS Express Manually You can start IIS Express from the command line: iisexpress.exe /path:”C:\MyApp” /port:8080 Parameters Explained: a. /path → Physical path of your applicationb. /port → Port number to run the application Debugging with IIS Express in Visual Studio Step 1: Set Project to Use IIS Express a. Open Project Propertiesb. Go to the Web sectionc. Select IIS Express Step 2: Start Debugging Press F5 or click Start Debugging. Visual Studio will: Attaching Debugger Manually Sometimes you may need to debug an already running instance. Steps: You can then add breakpoints in your code. You can add break points in code. Common Debugging Scenarios IIS Express vs Full IIS Feature IIS Express Full IIS Setup Minimal Complex Admin Rights Not required Required Performance Lightweight Production-ready Use Case Development Production Best Practices Strategic Insight Many developers default to full IIS for debugging, but this introduces: IIS Express provides a developer-first approach, enabling: Final Thoughts Debugging should be fast, predictable, and low-friction. IIS Express achieves this by providing a lightweight yet powerful runtime environment. Whether you are building APIs, web applications, or integrations, mastering IIS Express can significantly improve your development efficiency. Key Takeaway Use IIS Express for fast, isolated, and efficient debugging-without the overhead of full IIS. If you are implementing of F&O and want more clarity in your finance processes, feel free to reach out to us at transform@cloudfonts.com. We have helped multiple organizations streamline exactly these scenarios.

Share Story :

How to Extract Tax Components in Purchase Orders in D365 F&O Using Standard Framework

Summary In modern enterprise systems, tax visibility is no longer optional-it’s critical for compliance, reporting, and integrations. This blog explains how to programmatically extract detailed tax components (like GST and surcharges) in Microsoft Dynamics 365 Finance & Operations using standard, Microsoft-aligned methods. It highlights a scalable approach that avoids unsupported workarounds while enabling line-level transparency and integration-ready outputs. In enterprise systems, taxation is often treated as a black box, calculated correctly, yet rarely understood in depth. However, as organizations scale globally and compliance requirements tighten, visibility into tax components becomes a strategic necessity, not just a technical detail. Working with Purchase Orders in Microsoft Dynamics 365 Finance and Operations, one common challenge is: How do we break down tax into its individual components (like 18% GST, 5% surcharge) programmatically? This article explores a clean, scalable, and Microsoft-aligned approach to extracting tax components using standard framework classes-without relying on fragile or unsupported methods. The Problem: Tax Visibility Beyond Totals Most implementations stop at: But modern business scenarios demand: To achieve this, we must go deeper into the tax calculation pipeline. The Standard Tax Calculation Flow In D365 F&O, Purchase Order tax calculation follows a structured pipeline: PurchTable   ↓PurchTotals   ↓Tax Engine   ↓TmpTaxWorkTrans (Tax Components)  The key insight here is: Tax components are not stored permanently—they are generated dynamically during calculation. The Solution: Leveraging PurchTotals and Tax Framework Instead of accessing internal or temporary structures directly, we use standard classes provided by Microsoft. Here is the working approach: PurchTable      purchTable;PurchTotals     purchTotals;Tax tax;TmpTaxWorkTrans tmpTaxWorkTrans; purchTable = PurchTable::find(“IVC-00003”); purchTotals = PurchTotals::newPurchTable(purchTable);purchTotals.calc(); tax = purchTotals.tax(); tmpTaxWorkTrans = tax.tmpTaxWorkTrans(); while select tmpTaxWorkTrans{    info(strFmt(“Tax Code : %1”, tmpTaxWorkTrans.TaxCode));    info(strFmt(“Tax % : %1”, tmpTaxWorkTrans.TaxValue));    info(strFmt(“Tax Amount : %1”, tmpTaxWorkTrans.TaxAmountCur));} Why This Approach Matters 1. Aligns with Microsoft Standard This method mirrors what the system does when you click “Sales Tax” on a Purchase Order form. 2. Avoids Unsupported APIs No dependency on: 3. Works Pre-Posting Unlike TaxTrans, this approach works before invoice posting, making it ideal for: Real-World Output For a Purchase Order with: The output becomes: Tax Code : 18Tax % : 18Tax Amount : 198 Tax Code : 5Tax % : 5Tax Amount : 55 This level of granularity enables: Extending the Approach You can filter by line: where tmpTaxWorkTrans.SourceRecId == purchLine.RecId 2. Multi-Currency Scenarios The same logic works seamlessly for: Tax is calculated in: Integration-Ready Design This structure can be easily exposed via: Strategic Insight In many projects, developers attempt to: These approaches introduce: The better approach is to embrace the framework, not bypass it. Final Thoughts Tax calculation in D365 Finance & Operations is not just about numbers-it’s about designing for transparency, compliance, and scalability. By leveraging: you gain: Key Takeaway If you need tax components in Purchase Orders, don’t query tables, trigger the calculation and read from the framework. If you are implementing of F&O and want more clarity in your finance processes, feel free to reach out to us at transform@cloudfonts.com. We have helped multiple organizations streamline exactly these scenarios.

Share Story :

Tax-on-Tax Configuration in Microsoft Dynamics 365 Finance and Operations: Step-by-Step Guide for 18% + 5% Cascading Tax

SummarySales tax configurations in Microsoft Dynamics 365 Finance and Operations can go beyond simple percentage calculations. In scenarios where taxes are layered or interdependent, businesses often require a tax-on-tax (cascading tax) setup. This blog explains how to configure an 18% primary tax and an additional 5% tax calculated on top of it, ensuring accurate, automated, and compliant tax calculations for complex service-based industries like Oil & Gas. Sales Tax Setup in Microsoft Dynamics 365 Finance & Operations (18% + 5% Tax-on-Tax) In global and industry-specific implementations, taxation is not always flat. Many organizations, especially in regulated sectors, require layered tax calculations where one tax is applied on top of another. In one such implementation within Microsoft Dynamics 365 Finance and Operations, this configuration was successfully used for a service-based company in the Oil and Gas industry. The requirement was straightforward but technically nuanced: a. Apply a primary tax of 18% on the service valueb. Apply an additional 5% tax on the total amount after the first tax This type of setup is commonly required when: a. Multiple statutory taxes are interdependentb. Regulations mandate tax calculation on already taxed valuesc. Service contracts involve multi-layered billing structures By configuring this correctly, businesses can eliminate manual calculations and ensure compliance. Understanding the Requirement The logic follows a cascading structure: a. First, calculate 18% on the base amountb. Then, calculate 5% on (Base Amount + 18% tax) Example Calculation: a. Item price = ₹100b. 18% tax = ₹18c. 5% tax on ₹118 = ₹5.9d. Total tax = ₹23.9e. Final amount = ₹123.9 This demonstrates how the second tax depends on the first, making configuration accuracy critical. Step-by-Step Configuration 1. Create Sales Tax CodesNavigate to:Tax > Indirect taxes > Sales tax > Sales tax codes a. Create Tax Code 1Name: Tax18Percentage: 18% b. Create Tax Code 2Name: Tax5Percentage: 5% 2. Configure Tax-on-Tax For Tax5 (5%): a. Enable: Calculate tax on taxb. Select base tax: Tax18 This ensures Tax5 is calculated on the net amount + Tax18. 3. Create Sales Tax Group Navigate to:Tax > Indirect taxes > Sales tax > Sales tax groups a. Create: SALES_TAX_GROUPb. Add:i. Tax18ii. Tax5 4. Create Item Sales Tax Group Navigate to:Tax > Indirect taxes > Sales tax > Item sales tax groups a. Create: ITEM_TAX_GROUPb. Add:i. Tax18ii. Tax5 5. Assign Tax Groups a. Assign the Item sales tax group to the itemb. Ensure correct mapping in transactions Tax Calculation Flow Step Amount Base Amount ₹1000 GST18 (18%) ₹180 GST5 (5% on 118) ₹59 Total Tax ₹239 Final Amount ₹1239 a. Tax-on-tax must always be configured on the dependent tax (5%)b. Sequence of tax codes directly impacts calculation accuracyc. Always validate through Sales Order → Invoice → Tax detailsd. Perform complete testing in Sandbox before Production deployment Conclusion Tax-on-tax configuration in Microsoft Dynamics 365 Finance and Operations is a powerful capability that enables businesses to handle complex, cascading tax requirements with precision. By structuring tax dependencies correctly: a. The base tax (18%) is calculated firstb. The dependent tax (5%) is automatically applied on the cumulative amount This ensures: a. Accurate financial reportingb. Regulatory compliancec. Zero manual intervention For industries dealing with layered taxation models, this approach is not just helpful-it is essential. I hope you found this blog useful. If you would like to discuss anything further, feel free to reach out to us at transform@cloudfronts.com.

Share Story :

Master Guide: Team Foundation Server (TFVC) & Azure DevOps Configuration for Dynamics 365 Finance & Operations

In the world of Dynamics 365 Finance & Operations (D365 F&O), efficient code management isn’t just a luxury-it’s a critical requirement. Whether you are a seasoned developer or just setting up your first Virtual Machine (VM), correctly configuring Visual Studio with Azure DevOps (Team Foundation Server/TFVC) is the bedrock of a stable development lifecycle. This guide will walk you through the step-by-step configuration to ensure your environment is ready for enterprise-grade development. 1. Why TFVC and Not Git? While Git is widely adopted across modern software development, Team Foundation Version Control (TFVC) continues to be the preferred version control system for Dynamics 365 Finance & Operations due to its architectural fit. 2. Prerequisites Before you dive into Visual Studio, ensure you have the following ready: 3. Step-by-Step Configuration Step A: Connect Visual Studio to Azure DevOps Step B: The “Golden” Folder Structure Before mapping, you must define a clean folder structure in your Azure DevOps repository (Source Control Explorer). A standard structure looks like this: Step C: Workspace Mapping (The Critical Step) This is where most errors occur. You must map the server folders (Azure DevOps) to the specific local directories where the D365 runtime looks for code. Note: On some local VHDs or older VMs, the drive letter might be C: or J: instead of K:. Verify your AOSService location before mapping. Step D: Configuring Dynamics 365 Options Once mapped, you need to tell Visual Studio to organize new projects correctly. 4. Best Practices for the Development Lifecycle To conclude, configuring Visual Studio for D365 F&O is a one-time setup that pays dividends in stability. By ensuring your Metadata maps to the AOS service directory and your Projects map to your user directory, you create a seamless bridge between your IDE and the D365 runtime. 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 :

Redefining Financial Accuracy: The Strategic Advantage of Journal Posting Reversals in Dynamics 365 Business central

Sometimes, it becomes necessary to correct a posted transaction. Instead of manually adjusting or attempting to delete it, you can utilize the reverse functionality. Reverse journal postings are helpful for correcting mistakes or removing outdated accrual entries before creating new ones. A reversal mirrors the original entry but uses the opposite sign in the Amount field. It must use the same document number and posting date as the original. After reversing, the correct entry must be posted. Only entries created from general journal lines can be reversed, and each entry can be reversed only once. To undo a receipt or shipment that hasn’t been invoiced, use the Undo action on the posted document. This applies to Item and Resource quantities. You can undo postings if an incorrect negative quantity was entered (for example, a purchase receipt with the wrong item quantity and not yet invoiced). Similarly, incorrect positive quantities posted as shipped but not invoiced, such as sales shipments or purchase return shipments. can also be undone. Pre-requisites Business Central onCloud Steps: Open the transaction you wish to reverse. In this case, we aim to reverse the payment for the customer shown below. Click on Ledger Entries to view all transactions associated with this customer. As shown, this payment has already been applied to an invoice. Therefore, you must first unapply the payment before proceeding. Use the Unapply Entries action button to unapply the entries for the selected customer. Once you successfully unapplied payment you can see “remaiing amount” is equal to “Amount” field. Now click on “Reverse Transaction”. You can view the related entries for this transaction. Click the Reverse button, and a pop-up will appear once the reversal entries have been posted for the selected transaction. The reverse entry has now been created, reflecting the same document number and amount. Leveraging the reverse transaction functionality in Business Central enables businesses to correct errors seamlessly, improve operational efficiency, and uphold the integrity of their financial data. Whether managing invoices, payments, or other ledger entries, this feature is an essential tool for maintaining transparency and accuracy in your financial workflows. To Conclude, the reverse transaction feature in Business Central is a powerful tool that simplifies the process of correcting posted transactions. Instead of manually adjusting or deleting entries, you can efficiently reverse them, ensuring your financial records remain accurate and consistent. 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 :

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 :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange