Closed eknraw closed 4 years ago
This is an edge case but potentially very devastating.
If I was developing an AppSource app and included a 50,000-99,999 thousand range field in a table that was used with TransferFields, let's say a "posting" table, I could put myself in an unrecoverable situation by then adding the same field id to an extension table (in a per-tenant extension) of the unposted table. If the data type was not the same this would cause an error even if you have marked fields as ObsoleteState = Removed.
The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 37837.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read: https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/ https://blogs.msdn.microsoft.com/freddyk/2018/04/16/which-docker-image-is-the-right-for-you/
Describe the bug If I set IdRange in app.json to be in an AppSource object ID range and turn on AppSourceCop it doesn't warn/error when using a per tenant extension field id range.
However, if I turn the PerTenantExtensionCop ON it will warn me that a field id is NOT in the 50,000 - 99,999 range, even if I have IdRange to be in an AppSource only range.
To Reproduce Steps and to reproduce the behavior:
Set settings.json:
In app.json (something like this)
Create a new table with a field ID in the 50,000-99,000 range.
AL Code to reproduce the issue
Expected behavior I'd want (hope?) a warning or error that a per tenant extension id field range was being used.
Versions: