Over several days now I have been hearing about an issue with a Business Central environment where we wanted to use a hybrid development approach, also known as Side-by-Side. Theoretically, everything seemed to be in place. Symbols downloaded, VS Code installed with all of the plugins. There is way more to all of this, of course. Just to successfully download the symbols, some developers go through hell.
It is all achievable and it is quite well documented. Of course, there is also that “creativity” factor that has been applied, because each version we’re working with might be a different build so compatibility has to be considered. Other considerations include whether it is in the cloud, on-premises, or a private cloud service. With all of the versions, builds, and environments out there, the struggle is real.
Our goal is simple – develop AL extensions into a database that is already modified using good old C/AL with good old development methods. So many developers are used to C/AL, and few are trying to evolve into AL. Its almost as if developers are reminiscent of C/AL and don’t want to let it go, even though its days are numbered.
Well, with the goal known, a typical quest begins with a Google search the topic. You will find some forums and articles. You scan through them quickly to get to the solution as fast as possible, scrolling to the end of the page. Some pages will not have a solution; just more rabbit holes. Other pages simply don’t make sense, while others seem like they do and you spend half your day following the instruction only to find out that it still doesn’t make any sense. All this search happens so fast, yet you spend so much time on it you want to give up.
In all this hurry to find a solution, I feel like very important details get missed. For instance, when a quick gratification is sought after, you tend to scroll through an article missing that detail, or much worse, completely miss the article altogether. The goal you’re trying to reach is documented here
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-running-cside-and-al-side-by-side but if you don’t read it carefully or don’t pay attention to what the writer is trying to say, you will completely miss the point and waste your time reading other forums or boards. I am not saying that other sources are irrelevant, just that you need to decide which content to follow and commit to spending time reading the content. Read it all with all of your attention, not with half of it. If you start reading into content with 100% attention, you will find out quickly that it is irrelevant, so move on. But if it is relevant, continue on and finish it.
Anyways, do not miss this important detail. Documentation by Microsoft notes:
If you make changes in C/SIDE and start the C/SIDE development environment without the generatesymbolreference
flag set to yes
, the symbols downloaded from Visual Studio Code will not reflect your changes.
C/AL developers and most anyone else is used to starting their applications from the Start menu but the default icon does not start a development environment with this flag on. So any development you do will never end up in VS Code unless you have modified your shortcut icon to execute with this parameter: ‘finsql.exe generatesymbolreference=yes’ or have started the Development Environment from a command prompt.
I found that even if you
generatesymbolreference
in command prompt as described in many useful posts, you will not get your custom fields, variables or anything in VS Code until you compile your objects starting the Development Environment as described here and of course, in the ultimate source of this writing: Microsoft’s “
Running C/SIDE and AL Side-by-Side” article.
Good luck! Hope you find this helpful.
Try Navisiontech Support today! We offer 2 FREE hours of support for nearly ALL versions of Dynamics NAV, from version 3 to Business Central. Our support team is US based and will provide support not only for your ERP system, but also for SQL Server, EDI, supply chain management tools, and even code-level support.
Leave A Comment