Performance benefits of SetLoadFields in a slow network
Introduction of the SetLoadFields function in AL language that allowed to limit the number of fields returned to the Business Central server by a SQL query was a big step forward towards achieving bet...
SetLoadFields function helps developers to avoid unnecessary table joins and reduce the amount of data sent over the network. But how significant is the benefit of a smaller dataset? When does it really make a difference? Some measurements in a blog post.
www.keytogoodcode.com/post/perform...
03.09.2025 13:00 β π 2 π 1 π¬ 0 π 0
It looks like I need to practice my skills in using the Ctrl+F function. I once asked how I could generate a hash with the Cryptography Management codeunit based on a binary key. Easy, it turns out. There is a function for this that accepts a base64 key. I just did not find it.
06.06.2025 08:18 β π 1 π 0 π¬ 0 π 0
JIT loads vs Full record load
Since the time when I came across this post by Waldo (or actually, he mentioned his test results in one online discussion) I was curious to try it myself and dig into its unexpected results. The quest...
How can just in time loads be faster than a full record load? After all, this means two queries reading the same table. And two are slower than one, right? Right, but only if we allow these two queries to run until completion.
www.keytogoodcode.com/post/jit-loa...
31.05.2025 17:59 β π 7 π 4 π¬ 1 π 0
If the other side was using a text key, this would make things easier for us. The key is actually a hex number shared as text, but they parse it into its actual hexadecimal value before running the hash function.
21.04.2025 08:05 β π 1 π 0 π¬ 0 π 0
This could be another option for a contribution to the system app. The function that generates the hash must decode the Base64 string in this case. But as it is, the function would take the encoded string as the key.
19.04.2025 10:23 β π 0 π 0 π¬ 1 π 0
Yes, that's what I was considering too. Just thinking that the developer experience would be a bit different from classic arrays, as we cannot allocate a specific amount of memory, but have to add one element at a time.
19.04.2025 10:19 β π 0 π 0 π¬ 0 π 0
It could be on overload. Although AL is generally not too good in manipulating byte arrays. Would it even be a good idea to to have a function accepting a list of bytes, considering that AL arrays can only have fixed size?
17.04.2025 15:59 β π 0 π 0 π¬ 1 π 0
I can't see any way around it, but maybe someone has an idea how to generate a hash in AL with a byte sequence as a key instead of a text string?
17.04.2025 13:31 β π 0 π 0 π¬ 1 π 0
I have a good question for #bcalhelp. I need to generate a hash with a function from Cryptography Management CU, which requires a text argument as the key. But I need to send a byte array. Text in AL is UTF-8, so bytes above 7F turn into 2-byte sequences, and my key never matches the counterpart.
17.04.2025 13:31 β π 0 π 0 π¬ 2 π 0
GitHub - adrogin/BCVisuals: Visual control add-ins for Business Central
Visual control add-ins for Business Central. Contribute to adrogin/BCVisuals development by creating an account on GitHub.
I worked a little more on the BC cost tracer and added a couple new features: node grouping and a new layout with the fCoSE algorithm, which is very efficient in compound nodes clustering. Thanks to this algorithm, item ledger entries can be grouped by the document no.
github.com/adrogin/BCVi...
22.03.2025 18:34 β π 3 π 0 π¬ 0 π 0
Looking forward to be on stage at @bctechdays.com with @stefanmaron.com
13.03.2025 10:53 β π 11 π 4 π¬ 0 π 0
And the blank message in this lig entry does not help either. It would be worth adding something meaningful.
04.03.2025 15:06 β π 0 π 0 π¬ 1 π 0
Search in the repository points to Master Data Management in ALAppExtensions, just a feature usage log.
04.03.2025 13:05 β π 1 π 0 π¬ 1 π 0
No other method I'm aware of. And this way, it looks good. It's a clear intention: "I'm only going to use these fields". And then the runtime will adjust the list anyway, if any other fields must be included.
03.03.2025 17:03 β π 3 π 0 π¬ 0 π 0
InStream/OutStream are essentially memory buffers with read/write pointers. In this snippet, CreateInStream instantiates the stream, but does not read the data, whilst ReadAs actually fills the buffer. I don't see as a hack, but it surely can be confusing.
24.02.2025 22:35 β π 2 π 0 π¬ 0 π 0
The holidays are almost over, next week I am back to work and other Business Central activities. But these two weeks made a great breakaway tour.
14.02.2025 19:27 β π 4 π 0 π¬ 0 π 0
Filtering on FlowFields
It has been said so many times that filtering on FlowFields is bad for performance that we are used to avoiding this kind of filters in AL at all costs. So whenever a developer needs to select a subse...
Are you afraid of filters on FlowFields in AL? Well... There is definitely a reason to be cautious. But it may not be as bad as it seems, and certainly not as bad as some other methods which are used to avoid these filters.
www.keytogoodcode.com/post/filteri...
06.02.2025 02:59 β π 10 π 3 π¬ 2 π 1
Table indexes and inserts
Following my series of posts where I have been addressing various aspects of table indexing, this post delves into the same old argument from a different point of view. Previously, I measured timings ...
Following my series of posts where I've been addressing various aspects of table indexing, this post delves into the same argument from a different point of view. Now I want to ask a question: how indexing impacts query performance from the insert/update side.
www.keytogoodcode.com/post/table-i...
21.12.2024 18:58 β π 5 π 2 π¬ 0 π 0
MSFT, #msdyn365bc, Business Central Developer Tools.
https://aka.ms/businesscentral
Solution Architect @ 4ps | MVP | Business Central | Cycling | Dutch | Christian
www.bertverbeek.nl
Partner at http://Plataan.TV | companial.com, former MVP, MCT, Consultant
https://thinkaboutit.be/
Helping people and business to take their D365 Business Central to the next level. Dynamics 365 BC Techno Functional Consultant in Auckland, NZ.
www.thatnavguy.com
Microsoft MVP | Home-brewer, not a hipster! Business Central enthusiast. I blog, speak and bake things.
Read my AL mind at:
https://tine.staric.net
I wasnβt sure if I can post bread pics on Twitter. Iβm definitely posting them here! :D
πΈπͺ/πΊπΈ in Gothenburg Sweden. #MSDYN365BC MVP. He/him. Autistic/ADHD. Dad-joker. Problem solver. Lgbtqia+ Supporter.
This is my business world profile and I'll mostly be engaging in work topics here.
Curious AL developer and author. Microsoft MVP for #msdyn365bc. Product Architect at COSMO CONSULT. Posts are my own opinion.
Tips and news for AL developers: https://nataliekarolak.wordpress.com/
Astronomy, Exoplanets, Astrobiology, Cool Worlds Lab, Columbia University. Be kind to one another.
official Bluesky account (check usernameπ)
Bugs, feature requests, feedback: support@bsky.app