I'm working on a Swedish client for an on premise installation and this client has some non-extension based third party objects that are generally used in Sweden NAV installs that are in a part of the 12 million range of object numbers. I am able to download symbols without error, however Visual Studio Code complains that it cannot find the symbols for any of these objects for the third party solution. Currently this client is in a test system prior to implementation and is running our our developer license which emphatically does have permissions to this object range.
Since I have a need to use some of these tables and codeunits in my extension, this is causing a problem. I have done the following:
(We are on BC CU 1)
- Made sure I have the correct version of the AL development tools for Visual Studio code (2.0.56865)
- Recompiled all objects.
- Built server application objects (through the "classic" developer interface)
- Sync schema for all tables (through the "classic" developer interface)
- Run the finsql command=generatesymbolreference successfully (output to log file, no errors or warnings) multiple times.
- Restarted the service multiple times between each of these steps.
Note that both the web client and RTC can be run and pages and tables that are part of this third party solution can be viewed/run without issue, so I am reasonably comfortable in saying this is almost certainly not a permission issue, unless visual studio code has a limitation in that regard.
Does anybody have any ideas on what it might be that I am missing? Everything works except use of these third party objects and I cannot find any reason why those symbols might not be loaded.
0
Answers
https://community.dynamics.com/business/b/businesscentraldevitpro/archive/2018/11/20/business-central-on-premises-licenses
2. Did you start the client like this before you compiled?
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-running-cside-and-al-side-by-side#continuously-generate-symbols-each-time-you-compile-objects-in-cside
> Are you using the new BC licence type (issued after CU 1 was released)?
I have just regenerated our dev license and installed it, but unfortunately I am still getting the same problem.
> Did you start the client like this
> finsql.exe generatesymbolreference=yes
I have read that article but I do not believe we need to do that as we're attempting to do exclusively extension based development for this client so the base object symbols should ideally never change. I did run the command=generatesymbolreference after putting in the new license however, and that command did complete successfully.
If it's on premise BC then you may opt for Internal Extension it may allow you to use the blocked tables.
To use it go to app.json and add:
"target": "Internal",
May be it will solve the issue still you may need to check.
Let me know if it works!
Sorry, that does not appear to have worked either. It is worth noting that it does not tell me the symbols are blocked or otherwise outside my permissions, it says they are simply missing.
ie. {
"resource": "/c:/NAVExport/RedactedClientName/Extensions/L2959/src/Rep50010.SLSalesOrder.al",
"owner": "_generated_diagnostic_collection_name_#0",
"code": "AL0185",
"severity": 8,
"message": "Table 'PEB Document Translation' is missing",
"source": "AL",
"startLineNumber": 421,
"startColumn": 12,
"endLineNumber": 421,
"endColumn": 45
}
As per my knowledge , symbols contains only base objects reference.
For your need you have to convert your whole Third party solution first in Extension.
They have mentioned:
Support
The support commitment regarding the product concerns Microsoft's two latest major versions. Currently version NAV 2016, NAV 2017, NAV 2018 (June 2018) and Dynamics 365 Business Central.
Do they have an extension version of the same?
I tried the same and the access is only for base objects in VS Code
Check if they have a PEB Extension Version available.... else you have to avoid using the objects and opt for events and subscriptions provided by them like : LOCAL [IntegrationEvent] OnInitBaseReportsSelection
Not the news I was hoping for, but we may have to defer the report part of the project until the third party does have an extension based solution because we also require new database fields that are added by extension, so I cannot even write the reports as classic modifications because the reports will not be able to see the extension based fields at dev time.
Then let me return to the original question as to whether you have to do anything special to get those symbols to load? We're using the SweBase addon for Sweden customers (which is probably similar to your German ELSTER in nature) and we have just added the objects to the database in the 12 million range. Any time I load symbols it doesn't appear to be able to see those symbols from visual code.
For our current project it isn't critical that I be able to do this, as the reports that I need to modify all work off of customer configured field references (which can be set to extension fields fortunately). It's not ideal however and in the future we will explicitly need to be able to extend / customize those objects.
Basically it ran like this:
Activated 'Enable Symbol Loading at Server Startup' on the server, restarted service.
Imported our fobs to the database (BC CU02 DE on-prem)
Installed a matching client (i.e. also BC CU02) for this database
Generated symbols using the finsql.exe of this client, without any filtering. I used my own script for this with a GUI, this offers easier handling than with the dreaded command line. It's available here:
http://www.msdynamics.de/viewtopic.php?f=17&t=34603
That took about 12 minutes.
After that we could publish, sync and install our dependency app and subsequently use it.
https://redandbundle.com/2018/11/05/symbols-of-madness/
It may contain warnings that prevent the symbol generation for certain objects like in this case with a UsageCategory in the RequestPage of some reports. That is something that older builds did not complain about, only the current ones consider this an invalid property.
A naverrorlog.txt file is not created in this case, so these warnings can easily be overlooked.