It was fun presenting with Dmitry Katson at @bctechdays.com about vibe coding vs. hand-crafted AL. It turned out that AI is helpful, but not for every step on the way. The conclusion was evident: It takes a captain to use a copilot! The community voted and thought the same. But, we had our beer! ๐ป
Posts by Arend-Jan Kauffmann
The @bctechdays.com bear has been adopted!
Thanks for confirming. My point is that there is an AL:Package command in VS Code. I don't like mixing up command names. It's either package or compile. And in this case package is the correct term. Call me purist or perfectionist (which I am actually), but I'm a bit of a stickler for accuracy.
In fact this is packaging, right? Compiling means translating into another language.
๐ฏ Did you learn your lessons? ๐ซข
@aj.kauffmann.nl told us he did!
In this session, with a lot of demos, he told all about his "Lessons learned from using Power Automate approvals with Business Central".
Link to the learning material on YouTube: bit.ly/3F7NNH6
#MSdyn365BC
๐ ๐ ๐ ๐
Learn from @aj.kauffmann.nl lessons learned!!!!
๐ ๐ ๐ ๐
Coming Monday, May 12, AJ will share his lessons learned using #powerautomate approvals with #msdyn365bc. Join AJ to save yourself a lot of hassle.
Did not subscribe yet? Use the registration on our website areopa.academy
Full house at Days of Knowledge Nordic organized by Directions4Partners
#msdyn365bc #doknordic
๐จ Workshops are filling up fast! ๐จ
Several of our #BCTechDays workshops on Wed 11 June are already SOLD OUT โ thanks to everyone whoโs registered so far! ๐
There are still spots available for our Tue 10 June #msdyn365bc workshops.
๐ฏ Secure your place before they're gone
That's easy, the Rest Client module supports mocking test results. You don't need to use the new HttpClientHandler feature in test codeunits for this, it's a built-in feature of the Rest Client itself.
I had this idea for my session at Directions NA! Great minds... ๐
I'm also using it daily. But I can't get used to how the Tab key works with auto completion. When a dropdown is open, then I expect Tab to insert the selected value rather than a suggestion. I can't find a setting for this. Using Enter for dropdowns and Tab for suggestions is very uncomfortable.
What are you waiting for? Registrations for #BCTechDays are open.
Reserve your seat today!
The Rest Client is my favorite. ๐
I have solved this in the past with a local web service and Azure Relay Hybrid Connection. Works like a charm.
Thanks, and yes, alguidelines.dev is part of my source to pick ideas from.
I may mention LinterCop. But the focus is on real knowledge. Tools are most useful when you understand what they do and why they do it.
I'm preparing a session about AL fundamentals you should know, even in a world of AI and Copilots. Think of properties, patterns, code that could be replaced by setting a few properties, etc.
Looking for input, what should I definitely not forget to cover?
#msdyn365bc
@aj.kauffmann.nl's work on the REST Client module is a perfect example of #TogetherWeWin. Bit by bit, AJ is adding improvements, to the benefit of us all. Now, making REST calls with #MSDyn365BC is as easy as 1,2,3 ๐ Thanks AJ ๐ Here the latest #WhatsCooking ๐๏ธ: www.youtube.com/watch?v=qNHU...
The typical use case is transferring data from a buffer table without code in the triggers to the target table. For example a buffer table filled by an API call.
HttpContent.ReadAsStream (in .Net) copies content into a memorystream (buffered in memory). That's why you can still read the stream while the original HttpContent is already out of scope.
In my opinion this is a hack. I'd rather have a solution that works with properly scoping the variables.
Codeunit 2351 "Rest Client Impl." implements a few Create() and Initialize() functions to assign default implementations to interfaces in case none were provided.
All public functions call CheckInitialized() to enforce the codeunit is initialized.
A real constructor like C# classes would be welcome!
No, that's my point. Of course it makes sense placing triggers in the correct order. But with nested dataitems the triggers of the outer dataitem come after the inner dataitem. Which makes it less readable.
Creating some logs today...
Now do the same with nested dataitems so that the order of triggers in outer and inner dataitems make sense. ๐ซฃ๐
Interesting session from Rob Oud at Dutch Dynamics Community about the new Word add-in for reports In Business Central. With a valentine's day theme. ๐
#msdyn365bc
You should look at the Rest Client module. Much easier to work with!
Yup, Copilot can be wrong. You are still the captain. ๐
And next edit is really a new feature and not just suggesting the next few (new!) lines.
For example, change purchase to sales on one line and then it suggests similar changes on other (existing!) lines in the same procedure.
That is called auto completion.
But this new feature suggests modifications to other existing lines, based on what you changed. See the video.
This is not about the usual auto completion, but the next edit suggestion. After modifying something it automatically suggests modifications on other lines than the current. That's really powerful and a good addition to auto completion.
That's another option indeed. But generally I don't need absolute line numbers. If I'm looking for a line number it's always relative to the function. So I chose to not waste the space. ๐
How many times did you count lines in an AL code function to get to the line reported by the debugger?
Change the way how line numbers are displayed to relative, place the cursor on the procedure line and you'll easily find the line number you are looking for!
#msdyn365bc