Closed DanielGoehler closed 3 years ago
I try to understand this. Few questions:
I reached out for an example (to repro this)
I try to understand this. Few questions:
- only doesn't work with "big" fob file? It does work with a "smaller" fob file
This also occurs if I split the objects into mutiple files.
- the import doesn't fail, but the compile fails.. .
Compilation works fine. Without errors or warnings.
- when you test it yourself, on the same server (hardware), same VM, with same fob-file, with container with same amount of memory, ... it does work?
Different Hardware Server but same docker image, I have to run Sync-NAVTenant afterwards and in some cases even Generate Symbols to get the database to work again. Imcreasing RAM to 16 GB doesn't help.
I guess the PowerShell CmdLet has issues with larger FOB, imports them but timeouts or something else happens while syncing with SQL Server.
I guess I need the exact fob to repro this ..
Should be in your mailbox (send yesterday 10:53). If not please reach out.
I have found something which might be related. Here is also a ready to go example, where I only change one table (5330 "CRM Connection Setup"). Despite enable_symbol_loading = true and generate_symbol_reference = true the Al Compiler says:
Table 'CRM Connection Setup' is missing
the used yaml
[..]
- task: ALOpsDockerStart@1
inputs:
enable_symbol_loading: true
memory_gb: '8'
- task: ALOpsDockerWait@1
inputs:
search_string: 'Ready for connections!'
- task: ALOpsFobImport@1
displayName: 'Import C/SIDE Customisations'
inputs:
usedocker: true
filePath: 'Customisations.fob'
import_action: 'Overwrite'
generate_symbol_reference: true
[..]
Hi @DanielGoehler ,
It seems you did a wrong reference. Can you consider this project: FOBProject.zip
This pipeline just runs, and takes the customization of the fob into account..
Hi @waldo1001,
the pipeline works without ALOpsFobImport. Why do I have to change Record "CRM Connection Setup"
to
Record "Microsoft Dynamics 365 Connection Setup"
althougth this table has the name CRM Connection Setup?
Record "CRM Connection Setup"
works in dev, test and production environment.
Well, I don't know what happened with the fob, or what is wrong with BC version 14 (besides A LOT is wrong with that version) .. but apparently, when you reference the caption of the table, it works. This means that the symbols are wrong. We figured that out by downloading the symbols that the compiler was using during compile. Table 5330 was in those symbols (although it said it wasn't), but with the name equal to the caption.
It could be that there is an issue with the alc.exe of version 14. It could also be that the NST in version 14 generates the wrong symbols.
All I can say is that ALOps is calling the default tools that are available. There's not a lot more we can do :-/
We'll try some more to try to see why VSCode behaves differently than the pipeline.. .
We found the cause. As expected: it's the version of Business Central that contains a bug. You can replicate the bug when you set up the container with "enableSymbolLoading" enabled, and THEN import your fob file with "generatesymbol". At that point, the symbols are corrupt, using the caption as a name.
To mitigate this, we need to "generatesymbols for the entire application".
We'll see we can provide a quickfix to mitigate this BC Bug in ALOps - probably by a "ALOpsDockerExec" step after the fob import.. .
Thanks! Oh boy, I didn't expected such an issue here. A ALOpsDockerExec solution would be nice for already released unfixed BC14 versions.
I try to reproduce this and create a Microsoft Support Case, so at least this gets fixed for upcoming BC14 CUs.
We'll build a new parameter in the fobimport to be able to "force" the "generate symbols". It should not be necessary in newer versions .. but it will fix the issue if necessary (it slows down the pipiline..)
Dear @DanielGoehler ,
We just release v1.437 which contains the update for this. => ALOpsFobImport: New boolean parameter [force_full_generate_symbol_reference], will trigger a full generate symbols after FOB Import.
Kind regards,
Just a quick update: I just got feedback from Microsoft support that this issue will not be not resolved, but they will update the documentation that this does not work.
The import with force_full_generate_symbol_reference takes a little longer, but works fine. So thank you for this feature!
[..]
- task: ALOpsFobImport@1
displayName: 'Import C/SIDE Customisations'
inputs:
usedocker: true
filePath: 'Customisations.fob'
import_action: 'Overwrite'
force_full_generate_symbol_reference: true
[..]
Describe the bug When I import a larger number of C/AL objects in BC 14 the service tier cannot provide Application symbols. I could provide an example via email.
In our docker environment I have run Sync-NAVTenant after importing the objects.
the used yaml
the output