Codeunit 6993 "Expense Agent API Validation"
ExpenseAgent · Microsoft.ExpenseAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 60 connected objects and pages
ExpenseAgent · Microsoft.ExpenseAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
Procedures
VerifyAgentAccess()VerifyAgentAccess(SkipEnableAgentCheck: Boolean)GetAadAppId(): TextIsCurrentUserExpenseAgent(): BooleanTryGetExpenseAgentUserId(var ExpenseAgentUserId: Guid)(internal)
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 6922 “Expense Agent Entra App Mgt.” (3 calls:
GetAadAppId → GetAadAppId,IsCurrentUserExpenseAgent → IsCurrentUserExpenseAgent,TryGetExpenseAgentUserId → GetEnabledExpenseAgentUserId)
Called by
- Page 6968 “Expense User Cons. API” (3 calls:
CanConsume → VerifyAgentAccess,LogAIConsumption → VerifyAgentAccess,OnInit → VerifyAgentAccess) - Codeunit 6954 “EA KPI Track” (2 calls:
UpdateEntry → IsCurrentUserExpenseAgent,UpdateEntry → TryGetExpenseAgentUserId) - Page 6927 “Expenses API” (2 calls:
OnInit → VerifyAgentAccess,OnInsertRecord → IsCurrentUserExpenseAgent) - Page 6928 “Expense Reports API” (2 calls:
OnInit → VerifyAgentAccess,OnInsertRecord → IsCurrentUserExpenseAgent) - Table 6900 “Expense” (2 calls:
SetExpenseUserOnCreate → IsCurrentUserExpenseAgent,UpdateExpenseUserOnModify → IsCurrentUserExpenseAgent) - Table 6906 “Expense Report Header” (2 calls:
SetExpenseUserOnCreate → IsCurrentUserExpenseAgent,UpdateExpenseUserOnModify → IsCurrentUserExpenseAgent) - Table 6907 “Expense Report Line” (2 calls:
SetExpenseUserOnCreate → IsCurrentUserExpenseAgent,UpdateExpenseUserOnModify → IsCurrentUserExpenseAgent) - Page 6905 “Expense Report Line Item API” (1 call:
OnInit → VerifyAgentAccess) - Page 6906 “Posted Exp. Rep. Line Item API” (1 call:
OnInit → VerifyAgentAccess) - Page 6907 “Expense Payment Method API” (1 call:
OnInit → VerifyAgentAccess) - Page 6908 “Exp. Rep. Line Attachments API” (1 call:
OnInit → VerifyAgentAccess) - Page 6909 “Exp. Report Line Particip. API” (1 call:
OnInit → VerifyAgentAccess) - Page 6913 “Posted Exp. Report Lines API” (1 call:
OnInit → VerifyAgentAccess) - Page 6914 “Expense Categories API” (1 call:
OnInit → VerifyAgentAccess) - Page 6915 “Exp. Report Line Per Diem API” (1 call:
OnInit → VerifyAgentAccess) - Page 6917 “Employees API” (1 call:
OnInit → VerifyAgentAccess) - Page 6918 “Expense Users API” (1 call:
OnInit → VerifyAgentAccess) - Page 6919 “Expense Groups API” (1 call:
OnInit → VerifyAgentAccess) - Page 6921 “Expense Locations API” (1 call:
OnInit → VerifyAgentAccess) - Page 6922 “Expense Rule Conditions API” (1 call:
OnInit → VerifyAgentAccess) - Page 6923 “Expense Rules API” (1 call:
OnInit → VerifyAgentAccess) - Page 6924 “Expense Posting Groups API” (1 call:
OnInit → VerifyAgentAccess) - Page 6925 “Expense Subcategories API” (1 call:
OnInit → VerifyAgentAccess) - Page 6926 “Posted Exp. Rep. Line Att. API” (1 call:
OnInit → VerifyAgentAccess) - Page 6929 “Expense Report Lines API” (1 call:
OnInit → VerifyAgentAccess) - Page 6935 “Expense Itemizations API” (1 call:
OnInit → VerifyAgentAccess) - Page 6936 “Expense Participants API” (1 call:
OnInit → VerifyAgentAccess) - Page 6942 “Expense Agent Setup API” (1 call:
OnInit → VerifyAgentAccess) - Page 6950 “Expense Attachments API” (1 call:
OnInit → VerifyAgentAccess) - Page 6954 “Expense Per Diem API” (1 call:
OnInit → VerifyAgentAccess) - Page 6955 “Expense Approval Setup API” (1 call:
OnInit → VerifyAgentAccess) - Page 6957 “Posted Expense Reports API” (1 call:
OnInit → VerifyAgentAccess) - Page 6958 “Expense Location API” (1 call:
OnInit → VerifyAgentAccess) - Page 6963 “Expense Rule Violations API” (1 call:
OnInit → VerifyAgentAccess) - Page 6964 “Exp. Rep. Rule Violations API” (1 call:
OnInit → VerifyAgentAccess) - Page 6969 “Approver View API” (1 call:
OnInit → VerifyAgentAccess) - Page 6983 “EA Outbox Email API” (1 call:
OnInit → VerifyAgentAccess) - Page 6984 “Expense Agent Access Ctrl API” (1 call:
OnInit → VerifyAgentAccess) - Page 6986 “Tenant Feedback Setting API” (1 call:
OnInit → VerifyAgentAccess) - Page 7074 “EA KPI” (1 call:
GetEntraAppUserIdForDrillDown → TryGetExpenseAgentUserId) - Page 7082 “Expense Capabilities API” (1 call:
OnInit → VerifyAgentAccess) - Page 7085 “Expense VAT Spec. API” (1 call:
OnInit → VerifyAgentAccess) - Page 7092 “Expense Projects API” (1 call:
OnInit → VerifyAgentAccess) - Page 7099 “Spend Requests API” (1 call:
OnInit → VerifyAgentAccess) - Page 7102 “Spend Request Details API” (1 call:
OnInit → VerifyAgentAccess) - Page 7103 “Travelers API” (1 call:
OnInit → VerifyAgentAccess) - Page 7104 “Expense Policies API” (1 call:
OnInit → VerifyAgentAccess) - Page 7105 “Posted Policy Evaluations API” (1 call:
OnInit → VerifyAgentAccess) - Page 7107 “Expense Vehicle Type API” (1 call:
OnInit → VerifyAgentAccess) - Page 7108 “Exp. Policies To Eval API” (1 call:
OnInit → VerifyAgentAccess) - and 9 more: data/code/graph/29/calls.json
Recent changes
- 2026-09-18 #11290 [Bug 640454] Scope Expense Agent Entra permissions by company (main, BC30, fix)
- 2026-08-04 #9859 [Master] - Move Expense Agent (Preview) app into BCApps (main, BC30, feature, added)
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: "Expense Agent API Validation"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.