Codeunit 4301 "Agent Impl."
System Application · System.Agents
Across versions
- BC23-24not present
- BC25added
- BC263 procedures added, 2 procedures removed
- BC2717 procedures added, 14 procedures changed
- BC285 procedures added, 1 procedures removed
- BC296 procedures added
- BC30unchanged
Neighbourhood 13 connected objects and pages
System Application · System.Agents · BC25-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata Agent = rim, tabledata “All Profile” = r, tabledata Company = r, tabledata “Copilot Settings” = r, tabledata “Agent Access Control” = d, tabledata “Application User Settings” = rim, tabledata User = r, tabledata “User Personalization” = rim |
Procedures
CreateAgent(AgentMetadataProvider: Enum "Agent Metadata Provider"; var UserName: Code[50]; AgentUserDisplayName: Text[80]; var TempAgentAccessControl: Record "Agent Access Control" temporary): GuidΔ BC27Activate(AgentUserSecurityID: Guid)Δ BC27Deactivate(AgentUserSecurityID: Guid)Δ BC27Archive(AgentUserSecurityID: Guid)+ BC29IsArchivingSupported(AgentUserSecurityID: Guid): Boolean+ BC29 + BC29IsArchived(AgentUserSecurityID: Guid): Boolean+ BC29ShowAgent(AgentUserSecurityID: Guid)+ BC29GetUserAccess(AgentUserSecurityID: Guid; var TempAgentAccessControl: Record "Agent Access Control" temporary)Δ BC27 + BC27 − BC27PopulateProfileTempRecord(ProfileID: Text[30]; ProfileAppID: Guid; var TempAllProfile: Record "All Profile" temporary)+ BC27SetProfile(AgentUserSecurityID: Guid; var AllProfile: Record "All Profile")Δ BC27 + BC27 + BC27SetProfile(AgentUserSecurityID: Guid; ProfileID: Text; ProfileAppID: Guid)Δ BC27 + BC27 + BC27UpdateLocalizationSettings(AgentUserSecurityID: Guid; LanguageID: Integer; LocaleID: Integer; TimeZone: Text[180])+ BC27 + BC27UpdateLocalizationSettings(AgentUserSecurityID: Guid; var NewUserSettingsRec: Record "User Settings")+ BC27 + BC27GetUserSettings(AgentUserSecurityID: Guid; var UserSettingsRec: Record "User Settings")+ BC27GetUserName(AgentUserSecurityID: Guid): Code[50]Δ BC27GetDisplayName(AgentUserSecurityID: Guid): Text[80]Δ BC27SetDisplayName(AgentUserSecurityID: Guid; DisplayName: Text[80])Δ BC27GetModelId(AgentUserSecurityID: Guid): Code[30]+ BC28GetModelName(AgentUserSecurityID: Guid): Text[70]+ BC28SetModelId(AgentUserSecurityID: Guid; ModelId: Code[30])+ BC28SetModelIdToAuto(AgentUserSecurityID: Guid)+ BC28IsActive(AgentUserSecurityID: Guid): BooleanΔ BC27UpdateAgentAccessControl(AgentUserSecurityID: Guid; var TempAgentAccessControl: Record "Agent Access Control" temporary)Δ BC27UpdateAgentUserSettings(NewUserSettings: Record "User Settings")Δ BC27ProfileLookup(var UserSettingsRec: Record "User Settings"): BooleanAssignPermissionSets(var UserSecurityID: Guid; var TempAccessControlBuffer: Record "Access Control Buffer" temporary)+ BC27 − BC27GetPermissionSets(AgentUserSecurityID: Guid; var TempAccessControlBuffer: Record "Access Control Buffer" temporary)+ BC27GetAgent(var Agent: Record Agent; UserSecurityID: Guid)Δ BC27SelectAgent(var Agent: Record "Agent")+ BC28SelectAgent(var Agent: Record "Agent"; AlwaysShowUI: Boolean)+ BC28ShowNoAgentsAvailableNotification()+ BC26OpenNoAgentsLearnMore(Notification: Notification)+ BC26OpenSetupPageId(AgentMetadataProvider: Enum "Agent Metadata Provider"; AgentUserSecurityID: Guid)+ BC27GetAccessControlForSingleCompany(AgentUserSecurityID: Guid; var SingleCompanyName: Text[30]): Boolean+ BC27GetCopilotAvailabilityDisplayText(Agent: Record Agent): Text+ BC27
Plus 12 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.
- Page extension 9204 “User Settings” (3 calls:
AssignCompany → (object),GetAccessControlForSingleCompany → (object),GetUserSettings → (object)) - Codeunit 8711 “Telemetry” (1 call:
OpenSetupPageId → LogMessage) - Page 9212 “Roles” (1 call:
ProfileLookup → (object)) - Page extension 4353 “Agent Card” (1 call:
ShowAgent → (object))
Called by
- Codeunit 4321 “Agent” (27 calls:
Activate → Activate,Archive → Archive,AssignPermissionSet → AssignPermissionSets, …) - Codeunit 4325 “Agent Setup Impl.” (4 calls:
OpenAgentLookup → SelectAgent,OpenProfileLookup → ProfileLookup,OpenSetupPage → GetAgent, …) - Page 4316 “Agent List” (2 calls:
OnOpenPage → ShowNoAgentsAvailableNotification,UpdateControls → GetCopilotAvailabilityDisplayText) - Page 4315 “Agent Card” (1 call:
UpdateControls → GetCopilotAvailabilityDisplayText) - Page 4317 “Agent User Settings” (1 call:
OnQueryClosePage → IsArchived) - Page 4320 “View Agent Access Control” (1 call:
OnAfterGetRecord → GetAccessControlForSingleCompany) - Page 4334 “View Agent Permissions” (1 call:
OnAfterGetRecord → GetAccessControlForSingleCompany) - Page 4338 “Select Agent Access Ctrl Part” (1 call:
Initialize → GetAccessControlForSingleCompany) - Page 4340 “Select Agent Permissions Part” (1 call:
GetAccessControlForSingleCompany → GetAccessControlForSingleCompany)
Recent changes
- 2026-09-07 #11040 [Agent Archiving] Payables and Expense agent implementation for IAgentArchiving (main, BC30, feature)
- 2026-08-26 #10631 Integration/main to releases 29.x 31a860b5 (releases/29.x, BC29, feature)
- 2026-08-24 #10431 [Agent Archiving] Fix broken reference links to archived agents and their tasks (main, BC30, fix)
- 2026-07-28 #8967 Ability to archive agents (main, BC30, feature)
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: "Agent Impl."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.