BC on premise - problem with only some symbols not loading

borealisborealis Posts: 26Member
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.

Best Answers

  • borealisborealis Posts: 26
    Accepted Answer
    Thank you SuD and Nikhil,

    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.

Answers

  • KowaKowa Posts: 884Member
    edited 2018-12-10
  • borealisborealis Posts: 26Member
    Kowa,

    > 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.
  • nikhil01993nikhil01993 Posts: 5Member
    Hi,

    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!
  • borealisborealis Posts: 26Member
    Nikhil,

    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
    }
  • borealisborealis Posts: 26Member
    Accepted Answer
    Thank you SuD and Nikhil,

    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.
  • KowaKowa Posts: 884Member
    SuD wrote: »
    As per my knowledge , symbols contains only base objects reference.
    This is not the case. You can generate symbols for your own objects if they exist in the database. We had to create a dependency app this week because MS moved some local German tax reporting objects (ELSTER) to a base extension recently, and were able to access all objects (AL or C/AL) during development. Our little app installs without issues to a new on-prem database as long as our add-on objects exist there together with the MS ELSTER base app.

    Kai Kowalewski
  • borealisborealis Posts: 26Member
    Kowa,

    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.
  • KowaKowa Posts: 884Member
    edited 2019-01-07
    With a docker container it worked immediately, but with a normal server we had to make several attempts, because the command=generatesymbolreference does not generate errors where you would expect them. At first it did not run properly, so we got errors when we tried to publish our app claiming that our setup tables were not part of the database, even though they were there.

    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.
    Kai Kowalewski
  • KowaKowa Posts: 884Member
    edited 2019-01-09
    Here are other possible issues that might prevent getting your symbols.
    https://redandbundle.com/2018/11/05/symbols-of-madness/
    Kai Kowalewski
  • KowaKowa Posts: 884Member
    edited 2019-02-26
    Also check the content of the navcommandresult.txt.
    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 regard this an invalid property.
    2dlhlv3928il.png
    A naverrorlog.txt file is not created in this case, so these warnings can easily be overlooked.
    Kai Kowalewski
Sign In or Register to comment.