Category Archives: D365 Finance and Operations
How a Leading North American Commercial Vehicle Manufacturer Prevented Incorrect Purchase Prices on Purchase Orders Using Dynamics 365 Finance & Operations
For growing businesses running Dynamics 365 Finance & Operations, procurement accuracy is non-negotiable. As order volumes climb and vendor pricing evolves, even a small gap in how purchase prices are managed can quietly erode margins, trigger invoice disputes, and undermine trust in the system. One of the most common and most overlooked – causes of pricing errors on Purchase Orders is something surprisingly simple: outdated trade agreement records that were never closed. Have you ever updated a vendorās price in D365 FO, only to find that Purchase Orders raised the next week still show the old price? If youāre nodding, this article is for you. Consider this: organisations that leave overlapping trade agreement records unmanaged often find hundreds – sometimes thousands – of duplicate active price records for the same Item Ć Vendor combination in their PriceDiscTable. Each one is a potential pricing conflict waiting to surface on a Purchase Order. The cumulative effect on procurement accuracy, AP reconciliation time, and vendor relationships is significant. By the end of this article, you will understand exactly why this happens, how D365 FOās price engine actually resolves trade agreements, and the single rule that eliminates the problem entirely. Why This Matters Incorrect purchase prices on POs are not just a data nuisance. They lead to overpayments that chip away at margins, invoice mismatches that clog up Accounts Payable, and worst of all – procurement teams who stop trusting the system and start overriding prices manually on every order. Once that happens, the entire value of centralized pricing governance is gone. Why Weāre Writing This At CloudFronts, weāve implemented and supported Dynamics 365 F&O procurement modules across manufacturing, distribution, and services organisations. This specific issue – stale trade agreements causing wrong PO prices has come up in nearly every engagement where vendor prices are managed through the Trade Agreement Journal. Weāve seen the pattern, diagnosed the root cause repeatedly, and built the automation to prevent it. This article distils that experience into something actionable. How D365 FO Resolves Purchase Prices The price on a Purchase Order line does not come from the item master. It is resolved from a Trade Agreement – a dated record that says: āFor this item, from this vendor, in this currency, starting from this date, the unit price is X.ā These records are created through the Trade Agreement Journal, posted, and stored in the PriceDiscTable. When a PO line is created, the price search engine finds every posted record whose date window (From Date to To Date) covers the PO date, filters by matching keys (item, vendor, currency, site, warehouse, quantity break), and selects the price. Critically, the system does not prefer the most recently posted record. It looks at date windows. If two records both covers today, the engine has two valid candidates – and its tie-breaking behaviour is not something you should rely on for pricing accuracy. The Problem: Overlapping Records Hereās how the issue plays out. A vendor price is loaded into D365 FO – either from a legacy system integration or manually by a buyer. The record is created with an open-ended To Date (the sentinel 1900-01-01 or a far-future date), meaning it never expires. Months later, a new negotiated price arrives. A fresh trade agreement line is added for the same Item Ć Vendor. But nobody closes the original record. Both records now have date windows that include today. The price engine finds two matches, and sometimes the older, stale price wins. Root cause: there is no closure step. Every new price is layered on top of the old one instead of replacing it in time. The Fix: Close Before You Create The rule: Whenever a new price record is created for an Item Ć Vendor combination, the currently active record must have its To Date set to Today ā 1. The new recordās From Date is set to Today. This produces two non-overlapping windows – old price valid up to yesterday, new price effective from today. Why Today ā 1 and not Today? If both dates include the same day, the engine still finds two candidates. One dayās difference makes the resolution deterministic. Worked Example Item purchased from Vendor A, USD, quantity break of 1: Event Action From Date To Date Price 22 June ā Initial load Create Record A 22 June 2026 Open-ended $7.00 24 June ā New price Close Record A 22 June 2026 23 June 2026 $7.00 24 June ā New price Create Record B 24 June 2026 Open-ended $6.50 After posting: any PO dated 24 June or later picks $6.50. Historical POs on or before 22 June still resolve to $7.00. Clean, unambiguous, audit safe. Where to Enforce This Rule Inbound integration: If prices flow from a legacy system via OData, build a custom API endpoint in D365 FO that handles closure server-side. For each incoming line, the API finds the active record, generates a closing line (To Date = Today ā 1), creates the new line (From Date = Today), and posts the journal atomically. This avoids the three round trips and race conditions of handling closure on the source side. Manual entry by buyers: Add an event handler on the Trade Agreement Journal line table that auto-generates a paired closing line whenever a buyer adds a new price. The buyer reviews both lines in the unposted journal and posts as usual. This removes the human step thatās been failing, while still giving the buyer visibility and control before committing. Edge Cases to Handle To conclude, everything in this article comes down to one rule: never leave the old price open when you create a new one. Close it with a To Date of one day before the new price starts. Do it in the same journal, in the same transaction, whether the price comes from an integration or a buyerās keyboard. Hereās your next step: run a query on your PriceDiscTable for any Item Ć Vendor combinations that have more than one active PricePurch record … Continue reading How a Leading North American Commercial Vehicle Manufacturer Prevented Incorrect Purchase Prices on Purchase Orders Using Dynamics 365 Finance & Operations
Share Story :
Overcoming Zoho API Limitations in Payroll Automation for a Global Hardware Manufacturer
Summary This blog highlights how Azure Logic Apps was used to overcome a critical API limitation encountered during the integration of Zoho People with FNO for payroll management. During the implementation for a global manufacturing hardware enterprise, we discovered that Zoho’s API allows a maximum of 200 records to be fetched in a single request. While this limitation may not impact smaller organizations, it creates significant challenges for enterprises managing large employee datasets. To address this issue, a scalable Azure Logic Apps solution was developed that dynamically retrieves records in batches, consolidates the results, and returns a complete dataset for downstream processing. This blog explains: Table of Contents 1. Customer Scenario During the implementation of a payroll integration between Zoho People and FNO, employee master data needed to be synchronized automatically to support payroll processing. The organization maintained a large workforce within Zoho People, and payroll operations depended on accurate employee data being transferred to downstream systems. As the integration design progressed, a significant limitation was identified within Zoho’s API framework. The API could return a maximum of 200 records per request. For organizations with hundreds or thousands of employees, this restriction created a challenge in retrieving complete employee datasets efficiently. 2. Business Challenge The integration required access to the full employee dataset from Zoho People. However, the following challenges emerged: Limited API Response Size Zoho’s API only returns 200 records per request. Large Employee Dataset The organization maintained significantly more than 200 employee records. Manual Pagination Not Feasible Static API calls would require manual intervention or complex custom development. Scalability Concerns As employee counts continued to grow, the solution needed to support future expansion without requiring redesign. The objective was to create a scalable and automated mechanism capable of retrieving all employee records regardless of volume. 3. Integration Architecture The solution architecture follows a simple but highly scalable pattern. Process Flow 4. Configuration Steps Step 1: Add HTTP Trigger Step 2: Initialize Variables Step 3: Do Until Loop Step 4: HTTP Request Action Step 5: Output Variable Step 6: Compose Variable Step 7: Append to Array Variable Step 8: Set Variable Step 8: Increment Variable Step 9: Add Response Trigger 5. Why Azure Logic Apps? Azure Logic Apps was instrumental in creating a flexible and efficient solution. Key capabilities that made Logic Apps the ideal choice included: Dynamic Variable Management Allows runtime manipulation of counters and arrays. Scalable Workflow Execution Supports large datasets without requiring custom application development. Native API Integration Provides seamless connectivity with REST-based services. Low-Code Development Accelerates implementation and simplifies maintenance. Enterprise Reliability Offers monitoring, logging, and error-handling capabilities required for production environments. 6. Outcome The final solution successfully overcame Zoho’s API record limitation. The Logic App automatically: This approach ensured the success of the Zoho-FNO integration while maintaining scalability for future business growth. 7. Business Impact 1] Fully Automated Data Retrieval Employee data is retrieved without manual intervention. 2] Improved Scalability The solution can support organizations with thousands of employee records. 3] Reduced Development Complexity Logic Apps eliminated the need for extensive custom coding. 4] Faster Integration Processing Data retrieval occurs efficiently through automated pagination. 5] Improved Reliability Built-in monitoring and error handling improve operational stability. 6] Future-Proof Architecture The solution continues to perform effectively as employee counts grow. To conclude, Integration projects often reveal platform-specific limitations that require creative problem-solving. In this implementation, Zoho’s 200-record API limitation had the potential to impact payroll synchronization for a growing workforce. By leveraging Azure Logic Apps, we developed a scalable and automated solution capable of dynamically retrieving and consolidating employee data regardless of record volume. The solution not only resolved the immediate challenge but also established a reliable and future-ready integration framework capable of supporting continued organizational growth. For organizations facing similar API limitations, Azure Logic Apps provides a powerful platform for building scalable, low-code integration solutions that simplify complex data processing requirements.
Share Story :
Payroll Transformation for a Global Hardware Manufacturer Using Zoho People and Finance & Operations
As businesses scale, payroll complexity grows bringing challenges around employee data, attendance, compensation structures, and compliance. Manual processes not only consume valuable time but also increase the risk of costly errors. The Zoho People-FNO integration transforms payroll into a streamlined, automated process, ensuring accurate salary calculations, seamless data synchronization, and complete transparency across HR and finance operations. We recently implemented this solution for a global manufacturing hardware enterprise, enabling them to automate payroll workflows, eliminate manual data reconciliation, improve payroll accuracy, and reduce administrative overhead. The integration provided a scalable foundation for managing a growing workforce while maintaining compliance and enhancing the employee experience through faster, more transparent payroll processing. For organizations focused on operational efficiency and sustainable growth, this integration delivers measurable business value from day one. Understanding the Architecture of Zoho and FNO Integration The integration between Zoho People and FNO involves a clear, structured workflow. Below is an overview of the steps involved: This architecture ensures a smooth flow of data between Zoho and FNO, simplifying payroll management for businesses of all sizes. Key Advantages of Zoho and FNO Integration The integration between Zoho People and FNO streamlines payroll management, providing several key benefits: Effortless Payroll Management for Growing Businesses To conclude, efficient payroll management is essential for any growing business. By integrating Zoho People with FNO, businesses can automate payroll processes, ensure accurate calculations, and provide employees with easy access to their payslips. The seamless data flow, real-time updates, and reduced manual intervention significantly improve operational efficiency and transparency. If youāre ready to optimize your payroll system, now is the time to take action. Embrace the Zoho and FNO integration to simplify your processes, reduce errors, and create a transparent payroll system that benefits both your employees and your organization. Contact us today to learn how this integration can simplify your payroll management process. Reach out at transform@cloudfronts.com.
Share Story :
From Approval Bottlenecks to Real-Time Visibility: Transforming Procure-to-Pay Through ERP Integration for a Leading North American Commercial Vehicle Manufacturer
Summary 1. Identified the operational and strategic costs of fragmented Procure-to-Pay (P2P) processes across procurement and finance functions.2. Highlighted how manual, siloed workflows lead to approval bottlenecks, data inconsistencies, and invoice disputes.3. Explained how ERP integration eliminates manual handoffs by connecting procurement and finance into a unified, data-consistent system.4. Demonstrated the business value of real-time visibility across spending, commitments, and vendor payment status.5. Positioned a strong P2P process as a direct driver of cost efficiency, financial control, and business agility. Table of Contents 1. Introduction2. The Problem3. What Changes with Integration4. What Businesses Gain5. Conclusion Introduction We implemented this solution for a leading North American commercial vehicle manufacturer with complex multi-entity operations, where disconnected procurement and finance processes had a significant impact on business performance. Procurement and finance are central to business performance, yet in many organisations they continue to operate in silos. Each function manages its own data, workflows, and priorities, creating gaps that undermine efficiency, accuracy, and leadership visibility across the organisation. This disconnect is not merely an internal inconvenience. Over time, it leads to missed deadlines, strained vendor relationships, and financial reporting that lags the pace at which business decisions need to be made. For organisations looking to scale or compete in demanding markets, these gaps represent a genuine strategic risk. The Procure-to-Pay (P2P) cycle sits at the centre of this challenge. Spanning everything from raising a purchase request to issuing final payment, it is where delays and mismatches are most visible, and where the cost of inefficiency is most directly felt by both operational teams and leadership. The Problem Figure 1: Procure-to-Pay Cycle Problems Without Integration vs. Outcomes with ERP Integration Despite advances in enterprise technology, many organisations still rely on fragmented, manual approaches to procurement and finance. Email-based approval chains, spreadsheet-driven tracking, and disconnected systems remain common each introducing friction that slows the P2P cycle and reduces data reliability. Approval bottlenecks cause purchase orders to stall, disrupting timelines and delaying downstream activities. Duplicate data entry creates inconsistencies that consume significant time to identify and correct. Invoice mismatches between what was ordered, received, and billed result in payment disputes that erode vendor trust and divert finance team effort away from higher-value work. Beyond day-to-day operational impact, the absence of real-time visibility creates a deeper structural problem. Leadership is left making spending decisions based on stale or incomplete data, budget adherence is difficult to monitor, and bottlenecks go undetected until they have already caused delays. The organisation becomes reactive responding to problems rather than preventing them. How the Integration Works Figure 2: ERP Integration Architecture Source Systems, Azure Logic Apps Middleware, and Target D365 Modules The integration follows an event-driven model a design approach in which processes are triggered by specific business events rather than scheduled batch runs or manual interventions. This shift has significant implications for speed, accuracy, and responsiveness throughout the P2P cycle. When a purchase request is created, a vendor record is updated, or an invoice is submitted, the integration layer responds immediately. Data is extracted through secure, authenticated APIs, validated against predefined rules, transformed into the format required by the target system, and pushed into the ERP without human intervention and typically within seconds. This real-time responsiveness eliminates the latency inherent in batch-based integrations, where data may be hours out of date by the time it reaches the systems that need it. For procurement and finance teams working to tight timelines, that difference is material and directly impacts how quickly decisions can be made and acted upon. What Changes with Integration ERP integration addresses these challenges by connecting procurement and finance into a unified, data-consistent system. Rather than information being passed manually between teams or re-entered across platforms, it flows automatically triggered by real business events and governed by standardised rules applied consistently across the organisation. When a purchase request is raised, all relevant data is immediately available to every stakeholder in the approval chain without manual handoffs or follow-up emails. Approvals are routed automatically based on predefined rules, timelines are enforced, and exceptions are flagged in real time rather than discovered days later during reconciliation. Standardisation is another significant benefit. With all users working from the same data and the same process definitions, the inconsistencies that arise from team-specific workarounds are eliminated. Audit trails are complete and reliable, compliance becomes easier to demonstrate, and the system can adapt as the organisation evolves without requiring constant manual adjustment. What Businesses Gain The benefits of a well-integrated P2P system extend across every level of the organisation. Procurement teams process requests and approvals faster, with significantly less administrative burden. Finance teams reconcile invoices more efficiently and gain clearer visibility into outstanding commitments and cash flow. Vendors receive timely, accurate payments improving commercial relationships and, over time, creating opportunities for preferential terms and stronger partnerships. At the leadership level, integration delivers something particularly valuable: reliable, real-time insight. Executives can monitor procurement activity, track budget adherence, and assess financial performance without waiting for manually compiled reports. This enables faster course correction, more confident planning, and better alignment between procurement strategy and broader business objectives. Organisations in high-volume, multi-entity environments such as Daimler Truck North America, a leading North American commercial vehicle manufacturer operating brands including Freightliner, Western Star, and Thomas Built Buses across complex, multi-geography supply chains benefit most significantly. In industries where operational precision and cost control are non-negotiable, the ability to manage procurement and payments with full visibility and minimal friction is a genuine competitive differentiator. To conclude, a well-designed integration does more than automate existing steps it transforms the Procure-to-Pay cycle into a fast, reliable, and transparent process that serves operational teams, finance leadership, and the wider business alike. The principles outlined in this article event-driven architecture, modular parent-child orchestration, delta processing, and comprehensive logging form the foundation of an integration that can scale with the business and adapt to evolving requirements. For organisations operating in complex, high-volume environments, this is not a technical upgrade. It is a strategic enabler. Ready to modernize … Continue reading From Approval Bottlenecks to Real-Time Visibility: Transforming Procure-to-Pay Through ERP Integration for a Leading North American Commercial Vehicle Manufacturer
Share Story :
Beyond the Spreadsheet: How a Leading Oil & Gas and Marine Service Provider Automated GST, Payments, and Reconciliation Through a Single ERP
Executive Summary Modern finance organizations operating in highly regulated, asset-intensive industries such as Oil & Gas and Marine Services face a growing paradox. While enterprise ERPs like Microsoft Dynamics 365 are designed to be systems of record, the surrounding financial ecosystemābanking portals, tax authority platforms, HR systems, and reporting toolsāoften remains fragmented and manually operated. This fragmentation introduces three systemic risks: This article presents a connected finance architecture where ERP, banking systems, and statutory compliance platforms are deeply integrated through APIs, transforming finance operations into a frictionless, auditable, and real-time engine. The solution described eliminates file-based handoffs, reduces human dependency, and establishes the ERP as a single source of financial truth. Industry Context: Why Energy & Marine Finance Is Uniquely Complex Organizations in the energy and marine sectors operate under conditions that magnify finance risk: In this environment, manual finance operations are not just inefficientāthey are dangerous. Case Environment Overview The organization profiled in this implementation exhibits the following characteristics: Pre-Integration Challenges Before integration, finance operations were characterized by: These processes introduced latency, reconciliation gaps, audit exposure, and key-person dependency. The Core Problem: Disconnected Financial Workflows The central failure point was workflow discontinuity. Although financial transactions originated in the ERP, execution and compliance occurred outside it, breaking end-to-end traceability. Finance Stage System Used Risk Introduced Invoice Entry ERP Low Approval ERP Low Payment Execution Bank Portal High GST Filing GSP Portal High Reconciliation Excel Very High Every manual handoff created: The Vision: A Connected Finance Ecosystem The transformation goal was not automation for its own sake, but financial continuity. Design Principles Architecture Overview: ERP-Centric Integration Dynamics 365 Finance & Supply Chain was positioned as the financial command center. From this hub: This architecture eliminated spreadsheet dependency entirely. Regulatory Automation: Solving GST, E-Invoicing, and E-Way Bills The Compliance Challenge Manual GST compliance introduces risks such as: The Solution Integration with ClearTax enabled direct statutory interaction from Dynamics 365. Automated Capabilities Compliance ceased to be an external obligation and became a native ERP function. Automated Banking: From Approval to Disbursement Without Re-Entry The Payment Risk Manual bank instruction entry introduces: The Integrated Payment Flow This ensured zero data re-entry between ERP and bank. Governance Controls Embedded in the System 3-Way Matching Enforcement Mandatory matching between: This applies to both services and materials, ensuring no unauthorized leakage. N-Level Approval Framework Approval workflows span: Each approval is: HR Integration: Eliminating Expense Fragmentation HR expense data from Eazework flows directly into Dynamics 365. Benefits: Reconciliation and Audit Readiness A 1:1 relationship between bank accounts and main accounts was enforced. This resulted in: Decision Intelligence: Power BI as the CFOās Cockpit Power BI dashboards provide: Dashboards refresh three times daily: Finance leaders operate on live data, not yesterdayās spreadsheets. Proof & Metrics Dimension Outcome Legal Entities 7 + 1 consolidation Compliance Scope GST, IRN, E-Way Bills Payment Modes NEFT, RTGS Manual Entry Eliminated Data Accuracy Single vendor master Reporting Latency Near real-time Step-by-Step Implementation Playbook FAQs a. Can E-Way Bills be cancelled from the ERP?Yes. Cancellation is automated and synchronized with the GST portal. b. How are On-Account payments handled?Payments can be created manually and auto-applied later without reconciliation issues. c. What happens to rejected vendors?They are auto purged after six months to maintain data hygiene. d. Closing Thought: Finance Without Friction The future of finance is not additional manpower-it is architectural integrity. Organizations that eliminate manual interfaces between ERP, banks, and regulators achieve: The frictionless finance engine is no longer optional. It is the new baseline. To conclude, for Oil & Gas and Marine service providers, financial complexity is not going away. Multi-entity structures, regulatory obligations, and high-value transactions will only intensify. The answer is not more people – it is better architecture. When ERP, banking, and compliance systems are genuinely connected, finance transforms from a cost center into a control center. Transactions execute without re-entry. Compliance happens within the workflow. Reconciliation closes itself. This implementation demonstrates that frictionless finance is not a future ambition – it is an available reality today. The only question left for finance leaders in this space is simple: How long can you afford to operate without it? Ready to Transform Your Finance Operations? If your organization is still bridging ERP, banking, and compliance through spreadsheets and manual processes, it is time for a different conversation. Our team has deep expertise implementing connected finance architectures for Oil & Gas and Marine service providers – from Dynamics 365 configuration to GST automation and real-time banking integration. Write to us at transform@cloudfronts.com and discover how quickly your finance function can move from fragmented to frictionless.
Share Story :
Six Currencies, Seven Entities, Zero Reconciliation Headaches: How Dynamics 365 Delivered Financial Clarity for an Oil & Gas and Marine Services Provider
Global energy service providers operate across multiple jurisdictions, currencies, and regulatory regimes. This complexity demands precision in financial reporting and transparency in profitability analysis. Achieving reliable site-level profitability in such an environment requires a holistic architectural approach to financial consolidation rather than incremental fixes or tactical workarounds. Legacy State Challenges Strategic DecisionThe organization implemented Dynamics 365 Finance & Supply Chain as a unified financial backbone, replacing legacy IFS systems and spreadsheet-driven workflows. This decision was accompanied by a critical architectural trade-off: moving away from locally customized, entity-specific account structures toward a single, global Chart of Accounts (COA). Benefits of Standardization Unified COA StructureThe global COA was standardized using a 1000ā6000 series: This created a common financial language across the organization, enabling both global consolidation and local statutory compliance. Engineering Derived Dimensions for Data Integrity Standardizing accounts alone was insufficient to achieve granular profitability visibility. The architecture required a mechanism to enforce dimensional consistency and eliminate manual errors. Derived Dimension FrameworkFive core dimensions were defined: Segment, Sub-Segment, Region, State, and Site. System Integration Operational Customization From Static Spreadsheets to Dynamic Power BI Dashboards Legacy Reporting Modernized Workflow Reporting Model Operational Cadence Frameworks Proof and Metrics Step-by-Step Implementation Playbook FAQs a. How do you handle different fiscal years?The system supports reporting for both JanuaryāDecember and AprilāMarch fiscal calendars to meet diverse statutory requirements. b. Can we track unbilled revenue?Yes. Project Management modules track planned versus actual work, allowing finance teams to post and reverse accrued revenue monthly. c. What happens if a site selects the wrong dimension?This risk is mitigated through derived dimensions, which automatically populate dependent dimensions based on the selected Site code. To conclude, this architecture not only addresses immediate challenges but also positions the organization for long-term sustainability. It enables leadership to make informed decisions based on reliable, timely data, while ensuring compliance across diverse regulatory environments. Ultimately, the shift represents a move from reactive financial management to proactive, strategic control-delivering clarity, accountability, and resilience across global operations. Connect with CloudFronts to get started at transform@cloudfonts.com
Share Story :
How to Access a Dynamics 365 Finance & Operations Sandbox Database from a DEV VM Using JIT Access
In Microsoft Dynamics 365 Finance & Operations, direct SQL access to Sandbox environments is restricted for security reasons. However, you can access the Sandbox database from a DEV VM using Just-in-Time (JIT) access and SQL credentials provided through Lifecycle Services (LCS). This guide explains the complete process step-by-step. Prerequisites Before connecting, ensure you have: Step 1: Request JIT Access Open your Sandbox environment in LCS. Navigate to: Environment ā Maintain ā Enable access Depending on organization policies: Common access types: Step 2: Retrieve SQL Connection Details After JIT access is enabled: Go to: Environment Details ā Full details You will find: Example: Field Example Server axdbserver.database.windows.net Database AxDB Authentication SQL Authentication Step 3: Whitelist DEV VM Public IP (If Required) Some environments require firewall whitelisting. From DEV VM: In LCS: Maintain ā SQL firewall configuration Add: Wait a few minutes for propagation. Step 4: Open SSMS on DEV VM Launch: SQL Server Management Studio Step 5: Enter Connection Details In SSMS: Server Name Paste SQL server name from LCS. Example: axdbserver.database.windows.net Authentication Select: SQL Server Authentication Login Enter SQL username from LCS. Password Enter temporary password from LCS. Step 6: Configure Encryption Settings Click: Options ā Connection Properties Ensure: Step 7: Connect to Database Click: Connect If successful, you can access: Important Notes Sandbox Databases Are Usually Read-Only Microsoft restricts many write operations. Avoid: unless explicitly approved. Access Is Temporary JIT access expires automatically after the approved duration. You may need to: Production Database Access Direct Production DB access is heavily restricted and generally unavailable. Use: instead. Common Connection Errors Login Failed Possible reasons: Cannot Open Server Requested by Login Usually firewall issue. Solution: SSL / Certificate Error Enable: Recommended Best Practices Use Read-Only Queries Prefer: SELECT TOP 100 * FROM CUSTTABLE Avoid update/delete statements. Use Views Instead of Base Tables Many standard views provide safer reporting access. Avoid Heavy Queries Large queries may impact environment performance. Example SQL Query SELECT TOP 10 ACCOUNTNUM, NAME FROM CUSTTABLE ORDER BY CREATEDDATETIME DESC Security Recommendations To conclude, Using Just-in-Time (JIT) access to connect a Sandbox database through SQL Server Management Studio (SSMS) in Microsoft Dynamics 365 Finance & Operations provides a secure and controlled way to troubleshoot, validate data, and perform reporting activities without granting permanent elevated access. Reach out at transform@cloudfronts.com.
Share Story :
How a Top North American Commercial Vehicle Manufacturer Connected D365 F&O with Legacy Systems Without Disrupting Operations
What happens when a global manufacturing giant needs to modernize its operations without grinding critical business processes to a halt? The answer is not a rip-and-replace approach – it is a carefully engineered integration strategy that lets modern and legacy systems co-exist, communicate, and complement each other. Are you planning an ERP upgrade but worried about what happens to the legacy systems your operations depend on? If so, this is for you. One of North Americaās leading commercial vehicle manufacturers faced exactly this dilemma. With decades of investment in legacy financial and warehouse management systems, a hard cutover to a new ERP was not an option. Yet the need for a modern, scalable platform was undeniable. Their solution? Introduce Microsoft Dynamics 365 Finance & Operations (D365 F&O) as the new operational backbone – while keeping their legacy systems in play for financial control – and build robust, bi-directional integrations to bridge both worlds. At CloudFronts, we had the privilege of architecting and implementing those integrations. This blog walks you through three core data flows: Spot Purchase Orders, Advance Shipment Notices (ASN), and Goods Receipt Notes (GRN) – and what it really takes to make a modern ERP talk to a legacy system without missing a beat. Why Replace When You Can Integrate? Legacy systems in large manufacturers are not just old software. They carry years of financial logic, vendor relationships, and compliance configurations that are too risky to discard overnight. Replacing them introduces enormous operational and compliance risk. Doing nothing, however, is not an option either. The approach our client took – and one we increasingly recommend for manufacturers, distributors, and large enterprises – is a co-existence model: This means the business gets the agility of a modern ERP on day one, without putting financial operations at risk. The three integrations do the heavy lifting. Architecture at a Glance Before diving into each integration, it helps to understand the overall data flow pattern and the Azure services involved: Component Role D365 F&O System of record for purchasing and receiving operations Legacy System Retains financial control, inventory management authority Azure Logic Apps Parent-child middleware: orchestrates, transforms, and routes data Azure Blob Storage Checkpoint management for reliable incremental processing Azure Table Storage Full execution logs for traceability, audit, and failure replay The three integrations work in concert: Integration 1: Spot Purchase Orders ā D365 F&O to Legacy Business Problem A Spot Purchase Order is an ad-hoc purchase order raised outside of long-term contracts ā often for urgent material procurement. Spot POs are created and managed in D365 F&O by procurement teams. However, the legacy system is the system of financial record, meaning every Spot PO created in D365 must be reflected in the legacy system for financial commitment tracking and vendor payment processing. Without integration, this would require manual re-entry – a process prone to error, delay, and duplication. How the Integration Works Parent Logic App – Spot PO Orchestrator The primary Logic App runs on a scheduled recurrence and uses a checkpoint mechanism stored in Azure Blob Storage to fetch only incremental changes – purchase orders created or modified since the last successful run. This ensures efficiency and prevents reprocessing of already-handled records. The workflow determines the operation type required for each PO: For each scenario, the Logic App fetches enriched data from multiple D365 F&O OData entities and constructs a structured JSON payload tailored for the legacy systemās API. ā Tech Note: OData Entities Used PurchaseOrderHeaders, PurchaseOrderLinesV2, PurchaseLineDataEntities, WHSPurchLines, StatusCustomDatas Child Logic App – SendRequest (Reusable) Rather than embedding API communication logic directly in the orchestrator, we separated it into a reusable child Logic App. This child app receives the constructed payload, retrieves an OAuth 2.0 Bearer token, and executes the HTTP POST call to the legacy systemās API endpoint. This modular design pays dividends during maintenance: any change to authentication logic or API communication is made once in the child app and automatically applies to all parent integrations. Failed Record Handler Every enterprise integration needs robust failure recovery. When an API call fails: Sample Payload – Spot PO Create Sample JSON Payload: { “userId”: “JSMITH”, “order”: “456789”, // Last 6 digits of D365 PO number “vendor”: “VEND001”, “receiptLoc”: “SITE01”, “vendorOvrdCd”: “14”, “lineItems”: [{ “orderLine”: “001”, “item”: “ITEM001”, “openQty”: 10, “deliveryDate”: “061526”, // MMddyy format for legacy compatibility “comment”: “MPSSYS order – JSMITH” }] } } ā Business Impact: Zero manual re-entry of purchase orders between systems. Every Spot PO created or changed in D365 F&O is automatically reflected in the legacy system within minutes. Integration 2: Advance Shipment Notices ā Legacy to D365 F&O Business Problem An Advance Shipment Notice (ASN) is a notification sent by the legacy WMS to the receiving system, informing it of an incoming shipment before it physically arrives. D365 F&O needs to receive ASNs to create Inbound Load Headers and Load Lines – enabling warehouse teams to prepare for receiving. Without this integration, receiving teams in D365 would be blind to incoming shipments until trucks arrived at the dock – eliminating any opportunity for advance dock scheduling, labor planning, or inventory pre-positioning. The Hybrid Integration Approach This integration presented an interesting technical challenge: the standard D365 F&O Inbound ASN V5 API supports a well-defined XML format, but the business required additional fields beyond what the standard API supports. The solution was a two-step Hybrid ASN Integration approach: ā Tech Note: API Endpoint Pattern Insert: POST {{BASE_URL}}/api/connector/enqueue/{{ACTIVITY_ID}}?entity=Inbound ASN V5 Enrich: PATCH on InboundLoadHeaders and WHSASNWorkData Smart Insert vs. Update Determination To handle scenarios where an ASN might be re-sent for corrections or resynchronization, the integration includes a check before processing: This idempotent design prevents duplicate inbound loads from being created when the legacy system re-sends an ASN. One nuance worth noting: in D365ās standard ASN structure, the LoadId, ShipmentId, and LicensePlateNumber must carry the same value. The legacy systemās outbound ASN payload is configured to honour this requirement – ensuring clean data entry … Continue reading How a Top North American Commercial Vehicle Manufacturer Connected D365 F&O with Legacy Systems Without Disrupting Operations
Share Story :
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.