-
AL static code analysis warning: When setting global variables in a Report
Today I noticed that if you set global variables in a report they get lost when using preview mode. It would be nice if there was a AL static code analysis warning when doing this with the hint that you should set AllowScheduling = false otherwise the global variables will not work for preview mode.
report 50100 "Item Label"
{
[..]
procedure SetItemFilter(ItemFilter: Text)
begin
ItemFilterGlobal := ItemFilter;
end;
var
ItemFilterGlobal: Text;
}
pageextension 50100 "Item List" extends "Item List"
{
actions
{
addafter(CopyItem)
{
action("Item Label")
{
Caption = 'Item Label';
ApplicationArea = All;
Promoted = true;
PromotedOnly = true;
PromotedCategory = Process;
Image = Report;
trigger OnAction()
var
Item: Record Item;
ItemLabel: Report "Item Label";
FirstRecord: Boolean;
ItemFilter: Text;
begin
CurrPage.SetSelectionFilter(Item);
if Item.FindSet() then begin
FirstRecord := true;
repeat
if (FirstRecord = true) then begin
ItemFilter := Item."No.";
FirstRecord := false;
end else begin
ItemFilter := ItemFilter + '|' + Item."No.";
end;
until (Item.Next() = 0);
end;
ItemLabel.SetItemFilter(ItemFilter);
ItemLabel.Run();
end;
}
}
}
}
-
Add GitHub Codespaces support for AL Language Extension
Currently the AL Language Extension don't work in GitHub Codespaces (https://docs.github.com/en/codespaces/overview). You can install the extension, but almost all except of three commands are missing and the few that are there don't work, e.g. Command 'AL: Go!' resulted in an error (command 'al.go' not found) or Command 'AL: Open Events Recorder' resulted in an error (command 'al.openEventRecorder' not found).
-
Prevent "We’re temporarily postponing updates to version"
Today I received the following mail for every cloud customer we :
Subject: We’re temporarily postponing updates to version 23
We’re temporarily postponing updates to version 23.0, and your tenant has one or more environments currently scheduled to receive this update.
If you have an environment scheduled to receive an update while updates are postponed, your environment will not be updated automatically, but will be rescheduled to seven days after the originally scheduled date.
You can manage the scheduling of environment updates from the Dynamics 365 Business Central admin center.
I checked my mailbox and also found
- We are temporarily postponing updates to version 22.0
- We are temporarily postponing updates to version 21.0
- We are temporarily postponing updates for version 20.5
To avoid problems with upgrades, you should test your upgrades before releasing them to the general public. You don't specify why this is happening and taking our customer, I notice that leaves a bad impression of Business Central and how Microsoft handles quality of major updates.
How about take a copy 10% of cloud databases, put them in an isolated service tier so that nothing can communicate to the outside? And only if all succeed, release this update in 3 update rings (First < 20%, Fast < 40% and Broad 100% (=all) ).
-
Solve the Issues in AL GitHub Repo
There are currently so many open issues in the AL GitHub repository: https://github.com/microsoft/AL/issues
Currently there are 459. It is frustrating that so many developers take the time to repo these issues to GitHub, but so many are not resolved and remain open for so long. My suggestion is to fix them before creating any new feature, so that we developers have a fully functional development environment again.
In my experience, C/AL development certainly had its flaws, but it wasn't as memory and CPU hungry, and the compiler didn't have as many problems as the AL compiler.
-
Make runtime apps compatible with newer cumulative updates of the same major
To make it easier to deploy OnPrem ISV modules to customers, it would be nice if a runtime version for Business Central version 22.0 was compatible with a later CU version of the same version, so that we could deploy the application for the minimum version of that major version and use it on later CUs. The prerequisite for this is, of course, that there are no breaking changes in the BaseApp. Normally there are not.
Currently, if you publish a runtime created for BC 22.0 to a BC 22.1 or BC 22.2 environment, you get a warning that this application is not compatible with that version.
-
Improve Enum checks for Rec.GET()
The AL compiler notes that if I assign e.g. Text Value to Enum, that this is not possible. For MyTable.Validate(Option, 'Text'); I the error message:
Argument 2: cannot convert from 'Text' to the type of Argument 1 'Enum "My Enum"
It would be nice if the AL compiler would recordnize then same if I use the same text when getting the record. For MyTable.Get('VALUE', 'Text'); I get no error.
Full example: https://pastebin.com/4Yr9tgxT
-
We have encounter some malicious input. Please remove that and try again
When I try to post AL code or a link to a GitHub issue, I get the following error message
We have encounter some malicious input. Please remove that and try again
Neither is malicious. Could you check the settings on aka.ms/BCIdeas?
-
More service health infos in Dynamics 365 Business Central admin center
Today the Package Deployment service for BC Cloud Databases stopped working (see https://www.yammer.com/dynamicsnavdev/#/Threads/show?threadId=2492489102573568 for details). It would be nice if when there are issues with backend services, they also show up in the Service Health section in the Dynamics 365 Business Central admin center, so I don't have to ask on Yammer, create a support case or ask on X/Twitter.
-
AL Language Extension: Allow site-by-site installation for current version and specific version
Currently the AL language extension doesn't work because the compiler crashes on BC14 projects. You get the error message Cannot convert from
to _MissingTypeSymbol (https://github.com/microsoft/AL/issues/7529) and it seems that nobody at Microsoft cares. Some people have pointed out in a Yammer discussion (https://www.yammer.com/dynamicsnavdev/#/Threads/show?threadId=2495228732121088) that BC 14 isn't even supported anymore, but many customers are still using it. With the C/SIDE development environment you didn't have this problem because you could site-by-site any CU version and use the same version the customer is working on.So it would be nice if you could install the current and a specific version of the AL Language Extension site by site. Then runtime version 3.0 project should use the e.g. BC 14 AL Language Extension and the current version should run the runtime version 4.0 and later, so that BC 14 works as is and the new feature of the current version doesn't break the BC 14 AL Language Extension.
-
Microsoft BaseApp Update Cadance
In addition to the App Update Cadence (https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/tenant-admin-center-manage-apps#update-installed-apps-with-environment-updates) released last week, it would be nice if our customers also received the Update Cadence for the Microsoft BaseApp. At the moment it looks like a lot of fixes and new features will be added with Cumulative Updates 1, 2 and 3. Also, many new features won't be released with the major version xx.0, so the bug fixes will even arrive in later Cumulative Updates. Many of our customers are annoyed that the major updates break their ERP system and this cause a lot of support hours. This would dramatically reduce the total cost of ownership and improve customer satisfaction with this Microsoft SaaS offering.
The Microsoft BaseApp Update Cadence option could be monthly (default) and bi-annual (only matured Cumulative Update xx.5+).
So it would be nice if you, as a customer, could decide that you only want to receive updates twice a year with a mature version that has been tested by the early adopters.
It might also make sense to smooth out the role with you spitting the monthly option into update rings like in Intune (Test (Beta), First, Fast, Broad).