A ten-part, hands-on series that takes you from an empty folder to a working Business Central extension: tables, fields and data types, pages, actions, extensions, codeunits, events, reports, APIs, permissions, tests and shipping, with every property explained.
If you are new to AL, the language used to build on Business Central, the hardest part is not any single concept. It is that the information is spread across hundreds of documentation pages, and nobody tells you which properties matter on day one and which can wait until year two.
This series fixes that. Ten parts, in the order you need them, each walking through one kind of object in detail: how to build it, every property you will actually use and what it does, the code, and the mistakes people make. If you came from NAV and C/AL, you will recognise most of the ideas. Tables are still tables. What NAV called forms are now pages. The big change is that you never touch Microsoft's objects directly any more: you extend them.
Every part adds to one small, realistic extension called Pallet Manager. A warehouse wants to record which pallet each item ships on, how many units fit on a pallet, and how many pallets an order will need. It is small enough to understand in an afternoon and touches every object type a beginner needs.
| Object | Name | Built in |
|---|---|---|
| Enum 50100 | BBX Pallet Material | Parts 1 and 4 |
| Table 50100 | BBX Pallet Type | Parts 2 and 3 |
| Table extension 50100 | BBX Item (adds fields to Item) | Part 4 |
| Pages 50100, 50101 | BBX Pallet Type List and Card | Part 5 |
| Page 50102, page extensions 50100, 50101 | FactBox, Item Card and Item List extensions | Part 6 |
| Codeunits 50100, 50101 | BBX Pallet Mgt. and BBX Pallet Subscribers | Part 7 |
| Report, query, XMLport 50100 | Pallet Requirements, Items by Pallet Type, Pallet Type Import | Part 8 |
| Page 50103 | BBX Pallet Type API | Part 9 |
| Permission sets, install and upgrade codeunits, tests | BBX Pallet View and Edit, Install, Upgrade, test app | Part 10 |
Everything uses the prefix BBX and the ID range 50100 to 50149, which is how a per-tenant extension should be set up. Swap in your own prefix and range when you build for real.
Every complete code example in the series starts with a namespace, namespace BusinessBoxed.PalletManager;, followed by using lines for the Microsoft objects it touches, such as using Microsoft.Inventory.Item;. Namespaces are how Microsoft organises its own code, and they keep a growing app tidy. They are optional: leave the namespace line out and your objects go into the global namespace and work exactly as before. We show them throughout so you can see how they work, and leave the choice to you. Part 1 explains them in full.
If some of the vocabulary is new, read every object type in Business Central, explained first. It is the plain-English version of this series, written for people who are not developers. Then come back here and start with part 1.
When you are ready to go further, these posts pick up where the series stops: events and IsHandled, interfaces, changing a live extension without losing data, AL-Go and pipelines and writing extensions that survive release waves.
Want help with your first extension, or a review of one you have already built? Book a 30-minute call.