Codeunit 4587 "SOA Impl"
SalesOrderAgent · Microsoft.Agent.SalesOrderAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 12 connected objects and pages
SalesOrderAgent · Microsoft.Agent.SalesOrderAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata “Email Inbox” = rd, tabledata User = R |
Procedures
ScheduleSOAgent(var SOASetup: Record "SOA Setup")(internal)ActiveAgentExistInCurrentCompany(): Boolean: Checks if the agent is active in the current company. Method must work even for users that have no access to Agent, thus we need to use User table to check if the agent is enabled.RemoveScheduledTasksIfAgentNotActive(var SOASetup: Record "SOA Setup"): Boolean(internal): Cancels the scheduled tasks of an agent that is no longer live, either deactivated or archived, and clears them from the setup record. Deactivation already removes the tasks when it goes through the agent setup, so this covers tasks that survived, for example when the agent was deactivated from the …RemoveScheduledTask(var SOASetup: Record "SOA Setup")(internal)GetProcessLimitPerDay(var SOASetup: Record "SOA Setup"): Integer(internal)RemoveTaskLogsOlderThan24hrs()RegisterCapability()
Plus 7 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 4400 “SOA Setup” (7 calls:
GetInstanceOffset → CountNonArchivedSetups,RemoveScheduledTask → GetFeatureName,RemoveScheduledTasksIfAgentNotActive → GetFeatureName, …) - Codeunit 8703 “Feature Telemetry” (5 calls:
RemoveScheduledTask → LogUsage,RemoveScheduledTasksIfAgentNotActive → LogError,RemoveScheduledTasksIfAgentNotActive → LogUsage, …) - Codeunit 7773 “Copilot Capability” (3 calls:
RegisterCapability → IsCapabilityRegistered,RegisterCapability → ModifyCapability,RegisterCapability → RegisterCapability) - Codeunit 457 “Environment Information” (1 call:
RegisterCapability → IsSaaSInfrastructure)
Called by
- Codeunit 4400 “SOA Setup” (3 calls:
CreateAgent → ScheduleSOAgent,UpdateAgent → RemoveScheduledTask,UpdateAgent → ScheduleSOAgent) - Codeunit 4586 “SOA Dispatcher” (3 calls:
RunSOAgent → RemoveScheduledTasksIfAgentNotActive,RunSOAgent → RemoveTaskLogsOlderThan24hrs,RunSOAgent → ScheduleSOAgent) - Codeunit 4584 “SOA Recovery” (2 calls:
RunSOARecovery → RemoveScheduledTasksIfAgentNotActive,RunSOARecovery → ScheduleSOAgent) - Codeunit 4588 “SOA Install” (2 calls:
OnInstallAppPerDatabase → RegisterCapability,OnRegisterCopilotCapability → RegisterCapability) - Codeunit 4399 “SOA Annotation” (1 call:
ShouldAddOverProcessLimitAnnotation → GetProcessLimitPerDay) - Codeunit 4582 “SOA Retrieve Emails” (1 call:
RetrieveEmails → GetProcessLimitPerDay) - Codeunit 4585 “SOA Error Handler” (1 call:
RunSOAErrorHandler → ScheduleSOAgent) - Codeunit 4589 “SOA Upgrade” (1 call:
RegisterCapability → RegisterCapability) - Codeunit 4595 “SOA - KPI Track All” (1 call:
TrackChanges → ActiveAgentExistInCurrentCompany)
Recent changes
- 2026-08-19 #10308 Uptake agent archiving in Sales Order Agent (AB#644549) (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: "SOA Impl"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.