Marcel Chabot
aardvarklabs.bsky.social
Marcel Chabot
@aardvarklabs.bsky.social
Development Practice Manager, Maker, Mad Scientist, Father, Microsoft MVP.
Happy Friday everyone! This week I have another AI project. Ben Cole helped me with this concept.
Here is an example of AI being used to add free items to sales orders based on world events. This AI is a fun example of how AI, Grounded Search, and basic AL code can create something really powerful.
Step-by-Step Guide to AI Campaigns in Business Central
Ben Cole and Dave Wheat approached to develop an AI demonstration for generating marketing campaigns based on regional sales in Business Central. The system identifies relevant postal codes using natural language input, integrating two AI agents to process information efficiently. This approach optimizes cost and enhances user interaction while managing campaigns seamlessly.
aardvarklabs.blog
January 23, 2026 at 1:01 PM
Friday again, and this week's lab notes is something that should help out when starting a new project. It isn't uncommon for me to need to start the coding before the environment is available. AL 17 allows us to download symbols from NuGet.
I can get the latest symbols anytime!
Streamline Your AL Development with Global NuGet Symbols
Lab Notes #3 There have been a few instances where I wanted to start development on a Business Central extension, but the client system isn't ready. You need to download Business Central symbols, so where do you go? I could go grab symbols from another project or point to another Business Central environment. There is another option in Business Central AL 17.0: You can download symbols from the Global NuGet feeds.
aardvarklabs.blog
January 16, 2026 at 1:00 PM
Another Lab Note coming at your this Friday. This week a walk through some of the technology available for debugging Business Event Subscriptions. This came in handy assisting a client in connecting to a custom Business Event, I hope it help you out too.
Debugging Business Event Subscriptions in Business Central
The post discusses troubleshooting Business Event Subscriptions in Business Central, following Tonya Bricco-Meske's insights on hidden Event Subscription Pages. It highlights essential pages for debugging, including the Business Event Subscriptions, Activity Log, and Notifications pages, providing users with tools to resolve issues when subscribing to events.
aardvarklabs.blog
January 9, 2026 at 1:00 PM
Happy Friday. This week I want to thank everyone for an amazing year, and I want to share some of the highlights with everyone.
I have had a great year of growth and learning. I hope your year has been exciting and fulfilling. I'm looking forward to the challenges that come next.
Happy New Year!
2025 Highlights: Engaging Moments in Business Central Events
In 2025, I connected with the Business Central community through events, podcasts, and panels, sharing knowledge and fostering discussions on relevant topics. My blog, Aardvark Labs, exceeded expectations with over 2200 monthly views. Exciting plans for 2026 include more blog posts, video series, and a special Dynamics Con event.
aardvarklabs.blog
December 26, 2025 at 1:00 PM
Happy Friday. I'm testing out a new blog format. It is a challenge I've faced and a Solution. These posts are quick and to the point. I'm calling them "Lab Notes". Let me know what you think.
Managing Optional Extensions in Business Central AL Code
The post discusses handling two clients with similar requirements, one using an optional third-party extension, Binary Stream Multi-Entity Management. It explains a procedure for creating General Journals while selectively interacting with extension fields. The code checks for the extension's installation, ensuring compatibility without creating dependencies, enabling flexible system functioning.
aardvarklabs.blog
December 19, 2025 at 1:00 PM
Happy Friday! I've been posting file parsing examples and I've come to the XML format. Here is an example of how to parse a cXML file.
Do you still see XML files in the wild?
I also have to admit; I had a love for XML that may have been based on some rose-colored history :-).
Have a great weekend!
Importing XML into Business Central with AL
The post discusses the use of XML, specifically cXML, in data exchange within Business Central. It highlights the challenges of strict adherence to XML standards compared to more flexible formats like JSON. The author then provides a parsed example of a cXML purchase order, detailing the process of extracting information from the XML structure.
aardvarklabs.blog
December 12, 2025 at 1:02 PM
Happy Friday! This weeks post returns to our series of data import concepts and rounds out our Excel import with a Multi-Tab example. Excel is such a common data handling format, do you have any Excel format horror stories? Share your "favorites".
Have a great weekend!
Importing Multi-Tab Excel Files into Business Central
This post elaborates on importing multi-tab Excel data into Business Central, specifically focusing on a Header/Line relationship. It uses Sales Header and Detail tables, employing a dictionary to manage connections between headers and lines, ensuring efficient data linking during the import. The example showcases methods for parsing Excel files seamlessly.
aardvarklabs.blog
December 5, 2025 at 1:00 PM
Happy Thanksgiving from my family to yours! No Aardvark Labs post this week, taking a week off to hang out with the family. I'll be back to posting weekly educational content next Friday.
Happy Thanksgiving 2025
Wishing everyone a joyful Thanksgiving from my family to yours!
aardvarklabs.blog
November 27, 2025 at 1:00 PM
Happy Friday! This week we are introducing a gateway feature of Business Central: The User Control Host. This is going to start us down the path of exploring custom Business Central Controls in HTML/JavaScript. Enjoy and have a great weekend!
Understanding User Control Host in Business Central
In this Business Central AL Journey installment, the author introduces Custom Controls for data input and display, emphasizing the use of JavaScript and HTML5. The new User Control Host page type enables embedding web pages, such as Power BI reports, into Business Central, providing a foundational step toward developing custom controls for enhanced user interaction.
aardvarklabs.blog
November 21, 2025 at 1:03 PM
Happy Friday! A quick post about a new feature in Business Central 27.1: The Concealed Text field. I've needed this feature for a long time, and I'm glad it is available. Let me know if you have been waiting as well. Have a great weekend!
How to Use Concealed Text Fields in Business Central AL
Business Central offers tools to secure sensitive data, including Secret Text and Isolated Storage. The recent update, Business Central 27.1, introduces the Concealed Text Field, enabling masked input for sensitive entries to enhance privacy. This feature is easily activated in the Feature Management page and applies to various field types.
aardvarklabs.blog
November 14, 2025 at 1:04 PM
A fantastic fall Friday, a great day for another helpful code unit! This week we take a look at the Environmental Information Code Unit. It can really be helpful when you want to perform specific actions based on details about which environment you are in. Have fun!
Understanding AL Development: Environmental Information Code Unit
The codeunit 457 "Environment Information" in Business Central helps manage extension behavior based on the environment type. It includes functions like IsProduction and IsSandbox to determine the environment and adjust operations accordingly, such as altering email procedures for Sandbox environments and handling SaaS versus OnPremises distinctions effectively.
aardvarklabs.blog
November 7, 2025 at 1:00 PM
Happy Friday. This week we explore an application of CoPilot to simplify the handling of field service technicians notes and turn them into something appropriate to share with a customer on a Sales Invoice. It is a great application of AI and a fun use case. Enjoy!
Using CoPilot to Upgrade Service Notes for Invoices in Business Central AL
A client requires enhanced service technician notes for customer-facing invoices in Business Central. The solution involves employing CoPilot to transform these notes into clear summaries. This implementation includes creating a table for resolution notes and integrating prompts for user input, ultimately streamlining the invoice generation and improving client communication.
aardvarklabs.blog
October 31, 2025 at 12:08 PM
Happy Friday! A few weeks ago I dove into the Type Helper code unit. I was alerted to the String Conversion Management code unit as another great support code unit. I couldn't agree more! Here is a write up on a small, but powerful code unit. Have a great weekend!
Understanding AL Development: String Conversion Management Code Unit
In a previous post we reviewed the Type Helper Code Unit and its collection of useful procedures. There are several other helper code units, and this week we will review the String Conversion Management Code Unit. If you haven't seen the post about the Type Helper, you can find it here: This particular helper stems from the .NET System.Text objects.
aardvarklabs.blog
October 24, 2025 at 12:08 PM
Business Central Wave 2 is bringing some important new features to the Page Scripting tool. These features include arbitrary delete, drag and drop reorder, insert steps, parameters, and sub scripts! Check them out and watch for their release in your Business Central.
Top Improvements in Business Central Page Scripting in Release 2025 Wave 2
The Page Scripting tool has been improved in Business Central 2025 Wave 2, addressing key challenges. Users can now delete steps, insert new ones without re-recording, rearrange steps via drag and drop, add parameters through the UI, and utilize previously generated scripts, making the scripting process more user-friendly and efficient.
aardvarklabs.blog
October 17, 2025 at 12:01 PM
Business Central 2025 Wave 2 introduces a faster way to delete data: Truncate. How much faster is it? Well, I spent a few hours creating a deleting records to bring you the results. Check out this week's Aardvark Labs blog and see the winner. More interestingly how much faster is the winner.
Truncate vs. DeleteAll: Speed in Dynamics 365 Business Central AL
Microsoft Dynamics 365 Business Central 2025 Release Wave 2 (Version 27.0) introduces a new, more efficient way to delete large volumes of data: Truncate. My first question is, how much faster is it? I setup a little experiment. I created a routine to generate 500,000 records. Which took 127,676 millisecond or about 2 minutes. I then deleted the records in one of three different ways.
aardvarklabs.blog
October 10, 2025 at 12:04 PM
Ever need a helping hand? This week we are looking at the Type Helper Code Unit in Business Central. This code unit has 74 helpful procedures in it and we will be making use of it a lot as we delve into API integration in the near future. Have a great weekend!
Understanding AL Development: The Type Helper Code Unit
The Type Helper code unit in Microsoft Dynamics 365 Business Central encapsulates reusable logic for tasks like data formatting, localization, and type conversion. With 74 procedures, it simplifies common operations in development, facilitating API handling. The helper enhances modularity and efficiency by offloading routine functionality to callable units.
aardvarklabs.blog
October 3, 2025 at 12:01 PM
Happy Friday! Can you keep a secret? Well Business Central can! Take a look at what we can do with the SecretText. This is important to keep things like API keys safe.
Enjoy and have a great weekend!
Securing Sensitive Data in Business Central AL using SecretText
The content discusses the importance of keeping sensitive data secret while developing extensions for Business Central, particularly in relation to Azure OpenAI and API keys. It introduces the SecretText variable, which protects confidential information from debuggers and other users. The implementation includes generating JSON objects securely with secret values.
aardvarklabs.blog
September 26, 2025 at 12:01 PM
Did you know that as a Business Central AL Developer you have access to two different implementation methods for OpenAI/CoPilot? There are the ones you can create in Azure OpenAI, and the one Managed by Business Central. There are reasons to use both, check out this week's post to learn more.
Azure OpenAI in Business Central AL: Managed vs Unmanaged
The post discusses two authentication methods for integrating AI in Business Central: using an Azure OpenAI instance or a Managed OpenAI Resource. While the Azure instance provides control over model deployment, the Managed Resource reduces costs and maintenance since it's included in Business Central. The Managed Resource also offers Grounded Bing Search capabilities, but comes with data containment concerns.
aardvarklabs.blog
September 19, 2025 at 12:00 PM
A lovely Friday in Fall, time for some Aardvark Labs! A few weeks ago I posted about importing delimited text files stuck to a single record type. This week we tackle the Header/Detail structure of a Sales Order. This is a common data import that has some interesting parsing challenges.
Enjoy!
Guide to Handling Header and Detail Imports into Business Central with AL
Earlier in our Delimited File Import example we imported and parsed a simple file into Customer records. While useful, there are many cases where a Header and Line system is required, such as Sales Orders. We are going to use concepts from that earlier post, so please take a moment and review if needed. There are two common structures for storing header and line data in a delimited file.
aardvarklabs.blog
September 12, 2025 at 12:00 PM
Welcome to a Friday customized just for you! Well, it would be if you were a Business Central Page and Page Customization object. You can customize pages in Business Central, but you can also create Page Customizations in AL. Take a look at what you can do beyond Page and Page Extensions. Have Fun!
Step-by-Step Guide to Page Customizations for Business Central in AL
BC AL Journey #31 Pages and Page Extensions are a great way to create or update page layouts for Business Central. The issues are that they are "one size fits all", meaning that they are perfect for nobody. What is needed is a page layout that can be customized based on a user or more specifically a user profile. What we need is to be able to do is define a profile, then define customization to pages that are specific to that profile.
aardvarklabs.blog
September 5, 2025 at 12:03 PM
Heads up to my Business Central API Users. BC Release 30 (2027 Wave 1) has some major changes to Business Central APIs and while it sounds like it is a long way away, this change can't wait for the last minute. Here is a write up of what is happening and what you can do to prepare.
Business Central 2027 release wave 1: Preparing for OData Endpoint Removal
As of the writing of this the Business Central 2027 release wave 1 is 18+ months away, however the scope of this change leaves no time to waste. Currently in Business Central any Page can be a Web Service. You can use the magnifying glass, enter Web Services, and see a list of available Web Services. You can see the Customer Card API is a Page with the object ID of 21.
aardvarklabs.blog
September 2, 2025 at 12:04 PM
This fantastic Friday we are going to go back to CoPilot/Azure OpenAI and solve a challenging problem: Address Matching. I've tried several different technologies in the past, now let's see how AI handled the challenge. Spoiler Alert: Amazingly Well. Check out the BLOG for all the details.
Enhancing Business Central with Address Validation AI
Address matching can be challenging due to various abbreviations and misspellings. The writer discusses integrating artificial intelligence to improve accuracy, utilizing tools like Azure OpenAI to evaluate address similarities. The system should return the closest matching address with a certainty percentage, aiding in data completeness within Business Central records.
aardvarklabs.blog
August 29, 2025 at 12:02 PM
I hope you are having an Excel-lent day! This week we are continuing our file import exploration with everyone's favorite spreadsheet, Microsoft Excel. Excel is such a popular tool, having the ability to create interactive imports from Excel files is a huge benefit to users.
Have a great weekend!
Step by Step Guide to Importing Excel Data into Business Central
Microsoft Excel is the leading data management application, widely used despite mixed opinions. The content discusses importing data into a temporary staging table using Excel files. It outlines steps to define columns, manage item records, and implement the import process with specific procedures for handling Excel data, ensuring clarity and efficiency.
aardvarklabs.blog
August 22, 2025 at 2:04 PM
It is a delightful Friday to learn something! This week we are looking at parsing data from CSV files. This goes along with our previous JSON import, and we will see Excel imports in the coming weeks. There is a lot we can do with file imports, and we are going to take a deep dive! Have a great day!
Best Practices for Handling Delimited Data Imports into Business Central
Delimited files, commonly used for data transfer, separate data with various delimiters (e.g., CSV, pipe). These files are unstructured and flat, lacking validation between records. Implementing a temporary staging table ensures data integrity during customer imports. The process involves uploading a file, parsing, and storing customer records systematically for further processing.
aardvarklabs.blog
August 15, 2025 at 12:02 PM
Ready to give your next video meeting a glow up?! Here is a quick walk through of setting up OBS to transform your video camera feed into a studio production! This is great for meetings, presentations, or just adding that little extra to a training. Have a good time!
Enhance Your Video Calls with OBS Studio
In the remote working environment, video calls enhance participant engagement. Using OBS Studio can improve the video appearance during meetings. By configuring video and audio sources, adding images, and utilizing a green screen for better background removal, users can personalize their virtual presence. Activating the virtual camera finalizes the setup.
aardvarklabs.blog
August 13, 2025 at 12:02 PM