Codeunit 6901 "Expense Report Approval Mgmt"
ExpenseAgent · Microsoft.ExpenseAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 8 connected objects and pages
ExpenseAgent · Microsoft.ExpenseAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | TableData “Expense User” = r |
Procedures
ProcessAction(var ExpenseReportHeader: Record "Expense Report Header"; ActionType: Enum "Expense Approval Action")FilterExpenseReports(var ExpenseReportHeader: Record "Expense Report Header"; FieldNo: Integer)CanPerformApprovalAction(var ExpenseReportHeader: Record "Expense Report Header"; ActionType: Enum "Expense Approval Action"): BooleanSubmit(var ExpenseReportHeader: Record "Expense Report Header")Submit(var ExpenseReportHeader: Record "Expense Report Header"; SubmitterExpenseUserNo: Code[20])(internal)Submit(var ExpenseReportHeader: Record "Expense Report Header"; SubmitterExpenseUserNo: Code[20]; SubmissionComment: Text)(internal)ReopenSubmitted(var ExpenseReportHeader: Record "Expense Report Header")ReopenApproved(var ExpenseReportHeader: Record "Expense Report Header")Reject(var ExpenseReportHeader: Record "Expense Report Header")Reject(var ExpenseReportHeader: Record "Expense Report Header"; ApproverExpenseUserNo: Code[20]; RejectReason: Text)(internal)Approve(var ExpenseReportHeader: Record "Expense Report Header")Approve(var ExpenseReportHeader: Record "Expense Report Header"; ApproverExpenseUserNo: Code[20])(internal)AssignInterimApprover(var ExpenseReportHeader: Record "Expense Report Header"; NewApproverExpenseUserNo: Code[20]; ActorExpenseUserNo: Code[20])(internal)IsApprovalAdministrator(): Boolean(internal)GetCurrentExpenseUserForApproval(var ExpenseUser: Record "Expense User")(internal)NoExpenseLinesToProcess(ExpenseApprovalAction: Enum "Expense Approval Action")(internal)GetExpenseUserNo(): Code[20](internal)ConfirmAction(ActionType: Enum "Expense Approval Action"): Boolean
Plus 28 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 6926 “Expense Activity Log Mgt.” (7 calls:
LogExpenseReportEvent → LogExpenseReportEvent,LogExpenseReportRecalledByAdministrator → LogExpenseReportEventByBCUser,LogExpenseReportSubmission → HasEntriesForSource, …)
Called by
- Page 6910 “Expense Report” (9 calls:
CheckSetDefaultOwnerFilter → FilterExpenseReports,OnOpenPage → GetCurrentExpenseUserForApproval,Process → NoExpenseLinesToProcess, …) - Page 6980 “Manager Expense Report” (8 calls:
ApproveExpenseReport → ConfirmAction,CheckSetDefaultOwnerFilter → FilterExpenseReports,OnOpenPage → GetCurrentExpenseUserForApproval, …) - Codeunit 6984 “Release Exp. Report Document” (3 calls:
PerformManualPendingApproval → Submit,PerformManualRejected → Reject,PerformManualRejectedAndReopen → Reject) - Page 6979 “Expense Report List” (2 calls:
OnOpenPage → FilterExpenseReports,OnOpenPage → GetCurrentExpenseUserForApproval) - Page 6981 “Manager Expense Reports” (2 calls:
OnOpenPage → FilterExpenseReports,OnOpenPage → GetCurrentExpenseUserForApproval) - Page 6997 “Expense Reports” (2 calls:
OnOpenPage → FilterExpenseReports,OnOpenPage → GetCurrentExpenseUserForApproval) - Table 6906 “Expense Report Header” (1 call:
CheckExpenseUserWhenApprovalIsEnabled → GetCurrentExpenseUserForApproval)
Recent changes
- 2026-10-01 #11628 Expense Agent: capture submission policy evaluation history (main, BC30, feature)
- 2026-09-28 #11639 [Master] - Slice 640938: [Expense Agent][VENDOR] Adding approval limits (November ’26) (main, BC30, feature)
- 2026-09-09 #10890 [Master] Bug 645040: Expense Agent: BC Approval Workflow - Improve error message when Approval User Setup is missing (main, BC30, fix)
- 2026-09-03 #10829 [29.x][Expense Agent] Backport approval conversation from #10570 (releases/29.x, BC29, feature)
- 2026-09-02 #10570 Expense Agent: add approval conversation to expense reports (main, BC30, feature)
- 2026-08-27 #10542 [Master] - Slice 638097: [Expense Agent] Enable simple interim approval scenario (main, BC30, feature)
- 2026-08-26 #10631 Integration/main to releases 29.x 31a860b5 (releases/29.x, BC29, feature)
- 2026-08-21 #10031 Add AI-assisted policy evaluation backend to Expense Agent (main, BC30, feature)
- 2026-08-20 #10382 [Expense Agent] Fix administrative recall history access (main, BC30, feature)
- 2026-08-17 #10255 Add expense activity history foundation (main, BC30, feature)
- 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 Report Approval Mgmt"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.