Codeunit 7774 "Copilot Capability Impl"
System Application · System.AI
Across versions
- BC23present
- BC241 procedures changed
- BC253 procedures added, 2 procedures removed
- BC2615 procedures added, 6 procedures removed
- BC278 procedures added, 2 procedures removed
- BC28unchanged
- BC291 procedures added
- BC30unchanged
Neighbourhood 24 connected objects and pages
System Application · System.AI · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata “Copilot Settings” = rimd |
Event subscriptions
- GetCopilotCapabilityStatus subscribes to Codeunit “System Action Triggers” GetCopilotCapabilityStatus
- OpenCopilotCapabilities subscribes to Codeunit “Navigation Bar Subscribers” OnBeforeDefaultOpenCopilotCapabilities
- GetCopilotCapabilityInfo subscribes to Codeunit “System Action Triggers” GetCopilotCapabilityInfo
Procedures
RegisterCapability(CopilotCapability: Enum "Copilot Capability"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC26 + BC27 + BC27 − BC27RegisterCapability(CopilotCapability: Enum "Copilot Capability"; CopilotAvailability: Enum "Copilot Availability"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC26 + BC27 + BC27 − BC27RegisterCapability(CopilotCapability: Enum "Copilot Capability"; CopilotAvailability: Enum "Copilot Availability"; CopilotBillingType: Enum "Copilot Billing Type"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC26 + BC27 + BC27 − BC27RegisterCapability(CopilotCapability: Enum "Copilot Capability"; CopilotAvailability: Enum "Copilot Availability"; CopilotBillingType: Enum "Copilot Billing Type"; AzureAIServiceType: Enum "Azure AI Service Type"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC26 + BC27 + BC27 − BC27SetCopilotCapability(Capability: Enum "Copilot Capability"; CallerModuleInfo: ModuleInfo; AIServiceType: Enum "Azure AI Service Type")+ BC26ModifyCapability(CopilotCapability: Enum "Copilot Capability"; CopilotAvailability: Enum "Copilot Availability"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC27ModifyCapability(CopilotCapability: Enum "Copilot Capability"; CopilotAvailability: Enum "Copilot Availability"; CopilotBillingType: Enum "Copilot Billing Type"; LearnMoreUrl: Text[2048]; CallerModuleInfo: ModuleInfo)+ BC27UnregisterCapability(CopilotCapability: Enum "Copilot Capability"; var CallerModuleInfo: ModuleInfo)IsCapabilityRegistered(CopilotCapability: Enum "Copilot Capability"; CallerModuleInfo: ModuleInfo): BooleanIsCapabilityRegistered(CopilotCapability: Enum "Copilot Capability"; AppId: Guid): BooleanIsCapabilityActive(CallerModuleInfo: ModuleInfo): Boolean+ BC26IsCapabilityActive(CopilotCapability: Enum "Copilot Capability"; CallerModuleInfo: ModuleInfo): Boolean+ BC26IsCapabilityActive(CopilotCapability: Enum "Copilot Capability"; AppId: Guid): Boolean+ BC26GetCapabilityName(): Text+ BC26CapabilityToEnumName(CopilotCapability: Enum "Copilot Capability"): Text+ BC26CheckCapabilitySet()+ BC26CheckCapabilityServiceType(ServiceType: Enum "Azure AI Service Type")+ BC26CheckEnabled(CallerModuleInfo: ModuleInfo)+ BC26IsCapabilityEnabled(Capability: Enum "Copilot Capability"; CallerModuleInfo: ModuleInfo): Boolean+ BC26 + BC26IsCapabilityEnabled(Capability: Enum "Copilot Capability"; Silent: Boolean; CallerModuleInfo: ModuleInfo): Boolean+ BC26 + BC26AddTelemetryCustomDimensions(var CustomDimensions: Dictionary of [Text, Text]; CallerModuleInfo: ModuleInfo)+ BC26SendActivateTelemetry(CopilotCapability: Enum "Copilot Capability"; AppId: Guid)SendDeactivateTelemetry(CopilotCapability: Enum "Copilot Capability"; AppId: Guid; Reason: Option; FeedbackEnabled: Boolean)+ BC26 − BC26GetCopilotCategory(): Code[50]AddStatusAndBillingTypeTelemetryDimension(CopilotStatus: Enum "Copilot Status"; CopilotBillingType: Enum "Copilot Billing Type"; var CustomDimensions: Dictionary of [Text, Text])+ BC27AddTelemetryDimensions(CopilotCapability: Enum "Copilot Capability"; AppId: Guid; var CustomDimensions: Dictionary of [Text, Text])IsAdmin(): BooleanCheckGeoAndEUDB(var WithinGeo: Boolean; var WithinEUDB: Boolean)+ BC25GetDataMovementAllowed(var AllowDataMovement: Boolean)+ BC25UpdateGuidedExperience(AllowDataMovement: Boolean)DeactivateCapability(var CopilotSettingsLocal: Record "Copilot Settings")+ BC26IsPublisherMicrosoft(CallerModuleInfo: ModuleInfo): Boolean+ BC27GetCopilotBillingType(): Enum "Copilot Billing Type"+ BC27IsProductionEnvironment(): Boolean+ BC27
Plus 2 local procedures.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 43 “Language” (5 calls:
AddStatusAndBillingTypeTelemetryDimension → GetDefaultApplicationLanguageId,AddTelemetryCustomDimensions → GetDefaultApplicationLanguageId,AddTelemetryDimensions → GetDefaultApplicationLanguageId, …) - Codeunit 8711 “Telemetry” (4 calls:
ModifyCapability → LogMessage,SendActivateTelemetry → LogMessage,SendDeactivateTelemetry → LogMessage, …) - Codeunit 7772 “Azure OpenAI Impl” (3 calls:
CheckPrivacyNoticeState → GetAzureOpenAICategory,GetDataMovementAllowed → GetAzureOpenAICategory,IsTenantAllowedToUseAOAI → GetAzureOpenAICategory) - Codeunit 9027 “Plan Ids” (3 calls:
IsAdmin → GetBCAdminPlanId,IsAdmin → GetD365AdminPlanId,IsAdmin → GetGlobalAdminPlanId) - Codeunit 1563 “Privacy Notice” (2 calls:
CheckPrivacyNoticeState → GetPrivacyNoticeApprovalState,GetDataMovementAllowed → GetPrivacyNoticeApprovalState) - Codeunit 1990 “Guided Experience” (2 calls:
UpdateGuidedExperience → CompleteAssistedSetup,UpdateGuidedExperience → ResetAssistedSetup) - Codeunit 457 “Environment Information” (2 calls:
IsProductionEnvironment → IsProduction,IsTenantAllowedToUseAOAI → IsSaaSInfrastructure) - Codeunit 7771 “Azure OpenAI” (2 calls:
GetCopilotCapabilityInfo → IsEnabled,GetCopilotCapabilityStatus → IsEnabled) - Codeunit 8703 “Feature Telemetry” (2 calls:
IsTenantAllowedToUseAOAI → LogError,SetCopilotCapability → LogError) - Codeunit 9024 “Azure AD Graph User” (2 calls:
IsAdmin → IsUserDelegatedAdmin,IsAdmin → IsUserDelegatedHelpdesk) - Codeunit 152 “User Permissions” (1 call:
IsAdmin → IsSuper) - Codeunit 2200 “Azure Key Vault” (1 call:
IsTenantAllowedToUseAOAI → GetAzureKeyVaultSecret) - Codeunit 433 “Azure AD Tenant” (1 call:
IsTenantAllowedToUseAOAI → GetAadTenantId) - Codeunit 7757 “Copilot Notifications” (1 call:
DeactivateCapability → ShowCapabilityChange) - Codeunit 7775 “Copilot Telemetry” (1 call:
SetCopilotCapability → SetCopilotCapability) - Codeunit 9016 “Azure AD Plan” (1 call:
IsAdmin → IsPlanAssignedToUser) - Page 7775 “Copilot AI Capabilities” (1 call:
OpenCopilotCapabilities → (object))
Called by
- Codeunit 7772 “Azure OpenAI Impl” (15 calls:
GenerateEmbeddings → AddTelemetryCustomDimensions,GenerateEmbeddings → CheckCapabilitySet,GenerateEmbeddings → CheckEnabled, …) - Codeunit 7779 “Azure DI Impl.” (11 calls:
AnalyzeInvoice → AddTelemetryCustomDimensions,AnalyzeInvoice → CheckCapabilityServiceType,AnalyzeInvoice → CheckCapabilitySet, …) - Codeunit 7786 “Copilot Quota Impl.” (7 calls:
CanConsume → GetCopilotCategory,LogAgentUserAIConsumption → CapabilityToEnumName,LogAgentUserAIConsumption → GetCopilotCategory, …) - Codeunit 7773 “Copilot Capability” (5 calls:
IsCapabilityActive → IsCapabilityActive,IsCapabilityRegistered → IsCapabilityRegistered,ModifyCapability → ModifyCapability, …) - Codeunit 7775 “Copilot Telemetry” (5 calls:
SendCopilotActionInvokedTelemetry → AddTelemetryDimensions,SendCopilotActionInvokedTelemetry → GetCopilotCategory,SendCopilotDataMovementUpdatedTelemetry → GetDataMovementAllowed, …) - Page 7775 “Copilot AI Capabilities” (5 calls:
OnOpenPage → CheckGeoAndEUDB,OnOpenPage → GetDataMovementAllowed,OnOpenPage → IsAdmin, …) - Codeunit 7757 “Copilot Notifications” (2 calls:
ShowAIQuotaNearlyUsedUpLearnMore → IsAdmin,ShowAIQuotaUsedUpLearnMore → IsAdmin) - Codeunit 7784 “AOAI User Message Impl” (2 calls:
AddFilePart → IsPublisherMicrosoft,AddTextPart → IsPublisherMicrosoft) - Page 7770 “Copilot Cap. Early Preview” (1 call:
SetActionsEnabled → IsAdmin) - Page 7773 “Copilot Capabilities Preview” (1 call:
SetActionsEnabled → IsAdmin) - Page 7774 “Copilot Capabilities GA” (1 call:
SetActionsEnabled → IsAdmin)
Recent changes
- 2026-09-09 #11204 Chat v2 privacy notice behavior changed to not auto agree for Eval companies (main, BC30, fix)
- 2026-07-23 #9206 Added new privacy policy for BizChat depending on Microsoft Copilot 365 with EEA environments behavior changes (main, BC30, feature)
Deprecations
- procedure ModifyCapability: guarded (#if not CLEAN27)
- procedure RegisterCapability: guarded (#if not CLEAN27)
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Copilot Capability Impl"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.