You might wonder: why would I need this? Why would I need to download source code of Business Central, while I can simply access it through the symbols when I’m working in VSCode – or even better, while I can simply click the symbol, and look at the code from there?
Didn’t you ever wonder: “hey, previous version, this codeunit was still in this app – where is it now”? Or something in the line of: “Where can I find an example of a test-codeunit where they create and post picks”? In the old days, it was easy to get to the source code. It was simply an “export all”. These days – Microsoft’s source code is spread over a multitude of apps. Either as “Application” or as “platform” .. It doesn’t really matter.
Sometimes, it’s just very useful to simply be able to search trough every single letter of source code Microsoft has released as part of a certain version of Business Central. So …
PowerShell to the rescue! 😉
I wrote a little script:
As you can see, I’m using BcContainerHelper to simply:
- Download the artifacts and its platform
- For each “.source.zip”-file, I’ll unpack it in a decent destination directory
You can apply “filters” or “excludes” when you’re for example only interested in a portion of the apps – just to speed up the process.
When done, you’ll have a directory (that you configured in the variable “
$Destination“). Simply open the required version in VSCode, and you’ll be able to search all files.
As you see in the first line of the script .. you can indicate the exact version of BC by providing the right parameters in the “Get-BCArtifactUrl” CmdLet. More info here: Working with artifacts | Freddys blog
May be one interesting example, you can also do something like this:
To get all Test-apps from the be, nl and w1 localization.
Now – this is just the tip of the iceberg of something that someone else in the community is working on (Stefan Maroń) – which is currently in approval state at Microsoft. Nothing to share just yet – but fingers crossed it’s going to get approved, and let the above just be a completely wasted internet space!
Meanwhile – enjoy!