Codeunit 3303 "Payables Agent"
PayablesAgent · Microsoft.Agent.PayablesAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 18 connected objects and pages
PayablesAgent · Microsoft.Agent.PayablesAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Subtype | Install |
| Permissions | tabledata “Payables Agent Setup” = R, tabledata User = R, tabledata Agent = R, tabledata “Agent Task Message” = R |
Event subscriptions
- OnRegisterCopilotCapability subscribes to Page “Copilot AI Capabilities” OnRegisterCopilotCapability
- ClassifyDataSensitivity subscribes to Codeunit “Data Classification Eval. Data” OnCreateEvaluationDataOnAfterClassifyTablesToNormal
- CreateAgentTask subscribes to Codeunit “E-Doc. Import” OnAfterProcessIncomingEDocument
- OnOpenInboundEDocumentsPage subscribes to Page “Inbound E-Documents” OnOpenPageEvent
Procedures
GetSetupPageId(AgentUserId: Guid): IntegerGetSummaryPageId(AgentUserId: Guid): IntegerGetAgentAnnotations(AgentUserId: Guid; var Annotations: Record "Agent Annotation")GetAgentTaskMessagePageId(AgentUserId: Guid; MessageId: Guid): IntegerGetDefaultInitials(): Text[4]GetInitials(AgentUserId: Guid): Text[4]GetFirstTimeSetupPageId(): IntegerShowCanCreateAgent(): BooleanGetCopilotCapability(): Enum "Copilot Capability"GetCurrentSessionsEDocument(): Record "E-Document": If the current session is a payables agent session, this procedure will return the e-document being processed by the agent.GetEDocumentForAgentTask(AgentTaskId: BigInteger): Record "E-Document": Given a payables agent task id, it returns the e-document associated with the task.BuildAgentTask(EDocument: Record "E-Document"; Agent: Record Agent)SetAgentTaskTitle(AgentTaskID: BigInteger; InvoiceNo: Text[50]; VendorName: Text[100])(internal)RegisterCapability()(internal)GetCustomDimensions(): Dictionary of [Text, Text]PayablesAgentExistsAcrossAllCompanies(): Boolean(internal): Checks whether a Payables Agent exists in any company in the current environment.IsPayablesAgentSession(var SessionTaskID: BigInteger): BooleanGetDefaultProfile(var TempAllProfile: Record "All Profile" temporary)GetDefaultAccessControls(var TempAccessControlBuffer: Record "Access Control Buffer" temporary)
Plus 1 local procedures.
Triggers
OnInstallAppPerDatabase
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 3307 “Payables Agent Setup” (7 calls:
BuildAgentTask → ShouldRequestReview,CreateAgentTask → FeatureName,CreateAgentTask → GetAgent, …) - Codeunit 3318 “PA Trial” (4 calls:
BuildAgentTask → GetTrialInvoiceCount,BuildAgentTask → GetTrialInvoiceLimit,BuildAgentTask → IncrementTrialInvoiceCount, …) - Codeunit 7773 “Copilot Capability” (3 calls:
RegisterCapability → IsCapabilityRegistered,RegisterCapability → ModifyCapability,RegisterCapability → RegisterCapability) - Codeunit 4312 “Agent Session” (2 calls:
IsPayablesAgentSession → GetCurrentSessionAgentTaskId,IsPayablesAgentSession → IsAgentSession) - Codeunit 1751 “Data Classification Eval. Data” (1 call:
ClassifyDataSensitivity → SetTableFieldsToNormal) - Codeunit 3306 “Payables Agent KPI” (1 call:
CreateAgentTask → InsertKPIEntry) - Codeunit 3313 “PA Annotation” (1 call:
GetAgentAnnotations → GetAgentAnnotations) - Codeunit 4315 “Agent Task Builder” (1 call:
BuildAgentTask → Initialize) - Codeunit 4316 “Agent Task Message Builder” (1 call:
BuildAgentTask → Initialize) - Codeunit 457 “Environment Information” (1 call:
RegisterCapability → IsSaaSInfrastructure) - Codeunit 8711 “Telemetry” (1 call:
CreateAgentTask → LogMessage)
Called by
- Codeunit 3311 “PA Billing” (5 calls:
LogPATrackingRecord → GetCustomDimensions,LogPurchaseDocumentDraftCreated → GetCustomDimensions,LogPurchaseDocumentDraftLinesProcessed → GetCurrentSessionsEDocument, …) - Codeunit 3316 “PA Events” (3 calls:
RecordKnownSenderOnAgentProcessingStep → IsPayablesAgentSession,TrackFinalizedEDocuments → IsPayablesAgentSession,UpdateAgentTaskTitleOnPurchaseDocumentDraftCreated → SetAgentTaskTitle) - Codeunit 3305 “Payables Agent Upgrade” (2 calls:
RegisterCapability → RegisterCapability,RegisterTrial → PayablesAgentExistsAcrossAllCompanies) - Codeunit 3318 “PA Trial” (2 calls:
ResetTrial → GetCustomDimensions,StartTrial → GetCustomDimensions) - Page extension 3309 “PA Purchase Invoice List” (2 calls:
UploadInvoiceWithAgent → GetCustomDimensions,UploadInvoiceWithAgent → PayablesAgentExistsAcrossAllCompanies) - Codeunit 3308 “PA Open Current E-Document” (1 call:
OnRun → GetCurrentSessionsEDocument) - Codeunit 3315 “PA Session Events” (1 call:
RegisterSubscribersOnAfterLogin → IsPayablesAgentSession) - Page 3304 “Payables Agent Setup” (1 call:
ProcessTrialUploadIfPending → GetCustomDimensions)
Recent changes
- 2026-07-07 #9139 Fix Payables Agent permission error opening E-Document (main, BC30, fix)
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: "Payables Agent"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.