Codeunit 8356 MCP Upgrade, source in 29
Source2829
src/System Application/App/MCP/src/Configuration/Codeunits/MCPUpgrade.Codeunit.al115 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.MCP;
using System.Upgrade;
codeunit 8356 "MCP Upgrade"
{
Subtype = Upgrade;
InherentEntitlements = X;
InherentPermissions = X;
trigger OnUpgradePerDatabase()
begin
UpgradeMCPAPIToolVersion();
UpgradeMCPSystemDefaultAsDefault();
EnableApiToolsOnExistingConfigurations();
UpgradeRegisterMCPCapability();
end;
internal procedure UpgradeMCPAPIToolVersion()
var
MCPConfigurationTool: Record "MCP Configuration Tool";
MCPConfigImplementation: Codeunit "MCP Config Implementation";
UpgradeTag: Codeunit "Upgrade Tag";
begin
if UpgradeTag.HasDatabaseUpgradeTag(GetMCPAPIToolVersionUpgradeTag()) then
exit;
MCPConfigurationTool.SetRange("API Version", '');
if MCPConfigurationTool.FindSet() then
repeat
if MCPConfigImplementation.IsAPIPage(MCPConfigurationTool."Object ID") then begin
MCPConfigurationTool."API Version" := MCPConfigImplementation.GetHighestAPIPageVersion(MCPConfigurationTool."Object ID");
MCPConfigurationTool.Modify();
end;
until MCPConfigurationTool.Next() = 0;
UpgradeTag.SetUpgradeTag(GetMCPAPIToolVersionUpgradeTag());
end;
internal procedure UpgradeMCPSystemDefaultAsDefault()
var
MCPConfiguration: Record "MCP Configuration";
UpgradeTag: Codeunit "Upgrade Tag";
begin
if UpgradeTag.HasDatabaseUpgradeTag(GetMCPSystemDefaultAsDefaultUpgradeTag()) then
exit;
if MCPConfiguration.Get('') then begin
MCPConfiguration.Default := true;
MCPConfiguration.Modify();
end;
UpgradeTag.SetUpgradeTag(GetMCPSystemDefaultAsDefaultUpgradeTag());
end;
internal procedure EnableApiToolsOnExistingConfigurations()
var
MCPConfiguration: Record "MCP Configuration";
UpgradeTag: Codeunit "Upgrade Tag";
begin
if UpgradeTag.HasDatabaseUpgradeTag(GetMCPEnableApiToolsUpgradeTag()) then
exit;
MCPConfiguration.ModifyAll(EnableApiTools, true);
UpgradeTag.SetUpgradeTag(GetMCPEnableApiToolsUpgradeTag());
end;
internal procedure UpgradeRegisterMCPCapability()
var
MCPCopilotCapReg: Codeunit "MCP Copilot Cap. Reg.";
UpgradeTag: Codeunit "Upgrade Tag";
begin
if UpgradeTag.HasDatabaseUpgradeTag(GetRegisterMCPCapabilityUpgradeTag()) then
exit;
MCPCopilotCapReg.RegisterMCPCapability();
UpgradeTag.SetUpgradeTag(GetRegisterMCPCapabilityUpgradeTag());
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Upgrade Tag", OnGetPerDatabaseUpgradeTags, '', false, false)]
local procedure RegisterUpgradeTags(var PerDatabaseUpgradeTags: List of [Code[250]])
begin
PerDatabaseUpgradeTags.Add(GetMCPAPIToolVersionUpgradeTag());
PerDatabaseUpgradeTags.Add(GetMCPSystemDefaultAsDefaultUpgradeTag());
PerDatabaseUpgradeTags.Add(GetMCPEnableApiToolsUpgradeTag());
PerDatabaseUpgradeTags.Add(GetRegisterMCPCapabilityUpgradeTag());
end;
local procedure GetMCPAPIToolVersionUpgradeTag(): Text[250]
begin
exit('MS-619475-MCPAPIToolVersion-20260126');
end;
local procedure GetMCPSystemDefaultAsDefaultUpgradeTag(): Text[250]
begin
exit('MS-612454-MCPSystemDefaultAsDefault-20260216');
end;
local procedure GetMCPEnableApiToolsUpgradeTag(): Text[250]
begin
exit('MS-631012-MCPEnableApiTools-20260603');
end;
local procedure GetRegisterMCPCapabilityUpgradeTag(): Text[250]
begin
exit('MS-641612-RegisterMCPCapability-20260612');
end;
}