Codeunit 2611 Feature Management Facade in 28
- App
- System Application
- Namespace
- System.Environment.Configuration
Versions171819202122232425262728latest
Source in 28
src/System Application/App/Feature Key/src/FeatureManagementFacade.Codeunit.al173 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.Environment.Configuration;
/// <summary>
/// This codeunit provides public functions for feature management.
/// </summary>
codeunit 2611 "Feature Management Facade"
{
Access = Public;
var
FeatureManagementImpl: Codeunit "Feature Management Impl.";
/// <summary>
/// Returns true if the feature is enabled and data update, if required, is complete.
/// </summary>
/// <param name="FeatureId">the feature id in the system table "Feature Key"</param>
/// <returns>if the feature is fully enabled</returns>
procedure IsEnabled(FeatureId: Text[50]): Boolean;
begin
exit(FeatureManagementImpl.IsEnabled(FeatureId));
end;
/// <summary>
/// Returns true if the feature is enabled and data update, if required, is complete.
/// </summary>
/// <param name="FeatureId">the feature id in the system table "Feature Key"</param>
/// <param name="AllowInsert">specifies if inserts are allowed while checking for feature being enabled</param>
/// <returns>if the feature is fully enabled</returns>
procedure IsEnabled(FeatureId: Text[50]; AllowInsert: Boolean): Boolean;
begin
exit(FeatureManagementImpl.IsEnabled(FeatureId, AllowInsert));
end;
/// <summary>
/// Updates the status in "Feature Data Update Status" records related to all companies.
/// Also sends the notification reminding user to sign in again after feature is enabled/disabled.
/// </summary>
/// <param name="FeatureKey">the current "Feature Key" record</param>
procedure AfterValidateEnabled(FeatureKey: Record "Feature Key")
begin
FeatureManagementImpl.AfterValidateEnabled(FeatureKey);
end;
/// <summary>
/// Gets the URL to let users try out a feature.
/// <param name="FeatureKey">The feature key for the feature to try.</param>
/// </summary>
procedure GetFeatureKeyUrlForWeb(FeatureKey: Text[50]): Text
begin
exit(FeatureManagementImpl.GetFeatureKeyUrlForWeb(FeatureKey))
end;
/// <summary>
/// Returns true if the feature has an interface implementation.
/// </summary>
procedure GetImplementation(FeatureDataUpdateStatus: Record "Feature Data Update Status") Implemented: Boolean;
begin
exit(FeatureManagementImpl.GetImplementation(FeatureDataUpdateStatus));
end;
/// <summary>
/// Retrurns the result of the interface's GetTaskDescription method.
/// </summary>
procedure GetTaskDescription(FeatureDataUpdateStatus: Record "Feature Data Update Status") TaskDescription: Text;
begin
exit(FeatureManagementImpl.GetTaskDescription(FeatureDataUpdateStatus));
end;
/// <summary>
/// Runs the interface's review data method.
/// </summary>
procedure ReviewData(FeatureDataUpdateStatus: Record "Feature Data Update Status"): Boolean;
begin
exit(FeatureManagementImpl.ReviewData(FeatureDataUpdateStatus));
end;
/// <summary>
/// Schedules or starts update without any UI interaction.
/// </summary>
/// <param name="FeatureDataUpdateStatus">The current status record</param>
/// <returns>true if user picked Update or Schedule and the task is scheduled or executed.</returns>
procedure UpdateSilently(var FeatureDataUpdateStatus: Record "Feature Data Update Status"): Boolean;
begin
exit(FeatureManagementImpl.UpdateSilently(FeatureDataUpdateStatus));
end;
/// <summary>
/// Schedules or starts update depending on the options picked on the wizard page.
/// </summary>
/// <param name="FeatureDataUpdateStatus">The current status record</param>
/// <returns>true if user picked Update or Schedule and the task is scheduled or executed.</returns>
procedure Update(var FeatureDataUpdateStatus: Record "Feature Data Update Status"): Boolean;
begin
exit(FeatureManagementImpl.Update(FeatureDataUpdateStatus));
end;
/// <summary>
/// Cancels the scheduled task before it is started.
/// </summary>
procedure CancelTask(var FeatureDataUpdateStatus: Record "Feature Data Update Status"; ClearStartDateTime: Boolean)
begin
FeatureManagementImpl.CancelTask(FeatureDataUpdateStatus, ClearStartDateTime);
end;
/// <summary>
/// Runs the interface's data updata method and updates the feature status.
/// </summary>
procedure UpdateData(var FeatureDataUpdateStatus: Record "Feature Data Update Status")
begin
FeatureManagementImpl.UpdateData(FeatureDataUpdateStatus);
end;
procedure GetFeatureDataUpdateStatus(FeatureKey: Record "Feature Key"; var FeatureDataUpdateStatus: Record "Feature Data Update Status")
begin
FeatureManagementImpl.GetFeatureDataUpdateStatus(FeatureKey, FeatureDataUpdateStatus);
end;
[IntegrationEvent(false, false)]
internal procedure OnAfterUpdateData(var FeatureDataUpdateStatus: Record "Feature Data Update Status")
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnBeforeUpdateData(var FeatureDataUpdateStatus: Record "Feature Data Update Status")
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnBeforeScheduleTask(FeatureDataUpdateStatus: Record "Feature Data Update Status"; var DoNotScheduleTask: Boolean; var TaskId: Guid)
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnGetImplementation(FeatureDataUpdateStatus: Record "Feature Data Update Status"; var FeatureDataUpdate: Interface "Feature Data Update"; var ImplementedId: Text[50])
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnShowTaskLog(FeatureDataUpdateStatus: Record "Feature Data Update Status")
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnInitializeFeatureDataUpdateStatus(var FeatureDataUpdateStatus: Record "Feature Data Update Status"; var InitializeHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnAfterFeatureEnableConfirmed(var FeatureKey: Record "Feature Key")
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnAfterFeatureDisableConfirmed(FeatureKey: Record "Feature Key")
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnBeforeSetFeatureStatusForOtherCompanies(var FeatureDataUpdateStatus: Record "Feature Data Update Status"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
internal procedure OnBeforeOpenFeatureManagement(var FeatureManagementPageID: Integer; var IsHandled: Boolean)
begin
end;
}Procedures, 12
| Name | Parameters | Returns | Access | Obsolete |
|---|---|---|---|---|
| IsEnabled | (Text[50]) | Boolean | public | - |
| AfterValidateEnabled | (Record Feature Key) | public | - | |
| GetFeatureKeyUrlForWeb | (Text[50]) | Text | public | - |
| GetImplementation | (Record Feature Data Update Status) | Boolean | public | - |
| GetTaskDescription | (Record Feature Data Update Status) | Text | public | - |
| ReviewData | (Record Feature Data Update Status) | Boolean | public | - |
| Update | (var Record Feature Data Update Status) | Boolean | public | - |
| CancelTask | (var Record Feature Data Update Status, Boolean) | public | - | |
| UpdateData | (var Record Feature Data Update Status) | public | - | |
| GetFeatureDataUpdateStatus | (Record Feature Key, var Record Feature Data Update Status) | public | - | |
| IsEnabled | (Text[50], Boolean) | Boolean | public | - |
| UpdateSilently | (var Record Feature Data Update Status) | Boolean | public | - |
Events, 10
| Kind | Name | Parameters | Obsolete |
|---|---|---|---|
| Integration event | OnAfterUpdateData | (var Record Feature Data Update Status) | - |
| Integration event | OnBeforeScheduleTask | (Record Feature Data Update Status, var Boolean, var Guid) | - |
| Integration event | OnGetImplementation | (Record Feature Data Update Status, var Interface Feature Data Update, var Text[50]) | - |
| Integration event | OnShowTaskLog | (Record Feature Data Update Status) | - |
| Integration event | OnBeforeUpdateData | (var Record Feature Data Update Status) | - |
| Integration event | OnInitializeFeatureDataUpdateStatus | (var Record Feature Data Update Status, var Boolean) | - |
| Integration event | OnAfterFeatureEnableConfirmed | (var Record Feature Key) | - |
| Integration event | OnAfterFeatureDisableConfirmed | (Record Feature Key) | - |
| Integration event | OnBeforeSetFeatureStatusForOtherCompanies | (var Record Feature Data Update Status, var Boolean) | - |
| Integration event | OnBeforeOpenFeatureManagement | (var Integer, var Boolean) | - |