BC27 finally confirmed a few things many of us noticed during 26.x, several events stopped firing even though they weren’t obsolete. Those left extensions behaving unpredictably, especially if they depended on those routines.
Microsoft now classifies these as breaking changes, which makes this a good time to look at a tool most AL developers rarely use preprocessor directives.
If you maintain code across multiple runtime versions or support customers in different upgrade stages, directives like #if paired with symbols such as CLEAN26 or CLEAN27 allow you to version your logic cleanly without separate branches.
In my full write-up, I break down what Microsoft is doing behind the scenes, why these symbols work well, and how to apply them in real cases like:
- NoSeriesManagement → “No. Series” in Business Foundation
- Invoice Post. Buffer → Invoice Posting Buffer and the event changes around it