AL Object ID Ninja

Zero-configuration, dead-simple, lightning fast, no-collision object ID assignment for multi-user repositories

From the blog

Top 5 things I miss in AL

The community often criticizes Microsoft for adding new platform features only when Microsoft needed them. Well, it has been a bit too harsh - Microsoft did add improvements in other situations, too. But still, if you compare it to other Microsoft's languages like TypeScript or C#, the AL language isn't really advancing.

Looking back at C/AL, the AL language has really brought a lot of improvements. We have native JSON types, HTTP API, interfaces, overloads, and a lot more. But still, the overall change of the AL language was minor improvement, rather than a real evolution that transition to VS Code could have allowed.

Here's the list of top five things I'd absolutely love to see in AL. And I have strong reasons to believe that all of them would be fairly easy to implement for Microsoft. Let's get started.

How about Rollback in AL?

I've never truly understood why we could explicitly commit a transaction, but we could only implicitly roll one back. There is a universe of difference between throwing an error (and ending the call stack), and rolling back (and continuing execution).

There was always a way to roll back and go on, sure. Wrap the entire thing in a if Codeunit.Run() block, throw an error as the last thing inside that codeunit, and there you go. Problem solved. Well, not quite.