Most developers stop at SetLoadFields and think they’re done optimizing. But here’s the catch: loading too many fields wastes resources, and touching a field you didn’t load triggers a hidden fetch that kills performance.The real win? Combine Partial Records with AddLoadFields deliberately, load only what you need, when you need it. That’s how you keep…
Read articleLatest articles
Microsoft Dynamics 365 Business Central
Are you tired of users complaining that “the Invoice takes time to open” every single time they click preview? In a high-volume environment, re-rendering the same complex document multiple times a day is a waste of CPU and SQL resources. ❌ The ProblemStandard report rendering is synchronous and heavy. If a report has complex SIFT…
Read articleLast week we talked about SQL Indexing to find records faster. But what if you don’t want to find records, you just want the total?Looping through 100,000 ledger entries to sum an “Amount” is like counting grains of sand one by one. In Business Central, we use SIFT to let the system do the math…
Read articleYou added a custom Tracking Number field to the Sales Invoice Header. In Sandbox, it runs smooth. But in Production with 500,000+ records? Filtering drags for 15 seconds and locks up the UI.The culprit? A Table Scan. SQL is reading every single row to find your data because you didn’t give it a map. ✖️…
Read articleLast week we locked down passwords with SecretText. This week, let’s talk about where those secrets live. Because if you’re still saving them in a Setup Table, they’re not really secret, they’re exposed. The best bet is to move your sensitive data into the Vault: Isolated Storage. ✖️ The Problem – “Open Door”Think your secrets…
Read articleWhen “Text” becomes a ticking time bomb…An audit uncovers passwords sitting in plain sight in your database, API keys exposed in the debugger, Credentials leaking through telemetry logs. The verdict? Critical security vulnerability.As developers, we often juggle sensitive keys, but relying on the standard Text data type is like leaving your house keys dangling in…
Read articleEver opened a Record Page and been stuck watching the spinning wheel while a BC page crunches numbers? That’s a user experience killer. ✖️ The Problem: Blocking UIBy default, AL runs synchronously, that means if your page calls an external API or crunches complex totals inside OnAfterGetCurrRecord, the page is locked until the work is…
Read articleEver tried adding the Document Attachment FactBox to a custom table and hit “Record not open”? Here’s how I solved it and how you can avoid the same trap. ✖️ The Problem: Standard factbox doesn’t know your table.The standard document attachment uses RecordRef. If you don’t handle it correctly, it breaks. What’s really happening behind…
Read articleEver had a report, dashboard or any other analytics freeze because someone else was posting a record? That’s locking contention. By default, AL plays it safe, it waits for other transactions to finish before reading. But here’s the thing, you don’t always have to wait. ✖️ The Problem: Default Locking Blocks Your Reads.By default, Business…
Read articleDo you notice functions taking longer than expected to load or execute?Performance bottlenecks can stem from many sources, but inefficient record checks are a common culprit. A frequent error is the use of Record.Count() in scenarios where the lighter Record.IsEmpty() would suffice.👉 By replacing Count() with IsEmpty(), you avoid unnecessary scans, save processing time, and…
Read article