Codeunit 7133 "Travel Request Approval"
ExpenseAgent · Microsoft.ExpenseAgent
Across versions
- BC23-29not present
- BC30present
Neighbourhood 5 connected objects and pages
ExpenseAgent · Microsoft.ExpenseAgent · BC30 · source at f18567dc · facts from BC30
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata “Spend Request” = rm, tabledata Traveler = r, tabledata “Expense Report Header” = ri, tabledata “Posted Expense Report Header” = r, tabledata “Posted Expense Report Line” = r |
Procedures
Submit(var SpendRequest: Record "Spend Request"; SubmitterExpenseUserNo: Code[20])(internal)Submit(var SpendRequest: Record "Spend Request"; SubmitterExpenseUserNo: Code[20]; SubmissionComment: Text)(internal): Submits a travel request on behalf of an expense user with an optional submitter comment, for example a justification when resubmitting a rejected travel request.PrepareManualRelease(var SpendRequest: Record "Spend Request")(internal): Starts a new approval for an open travel request released from the Business Central client, like a submission without a comment. The decision and the submitter comment of an earlier approval, for example a rejection, are cleared.Approve(var SpendRequest: Record "Spend Request"; ApproverExpenseUserNo: Code[20])(internal)ApproveAutomatically(var SpendRequest: Record "Spend Request")(internal)Reject(var SpendRequest: Record "Spend Request"; ApproverExpenseUserNo: Code[20]; RejectReason: Text)(internal): Rejects a travel request and reopens it, so that the submitter can change and resubmit it, like a rejected expense report. The rejection reason and the approver are kept until the travel request is resubmitted.ApplyOwnerFilter(var SpendRequest: Record "Spend Request"; OwnerSystemId: Guid): Code[20](internal)ApplyApproverFilter(var SpendRequest: Record "Spend Request"; ApproverSystemId: Guid)(internal)ApplyApproverFilter(var SpendRequest: Record "Spend Request"; ApproverExpenseUserNo: Code[20])(internal)
Plus 16 local procedures.
Calls
From the extracted call graph of BC30 (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.” (6 calls:
IsTravelRequestResubmission → HasSubmissionForSource,LogTravelRequestApproved → LogTravelRequestEvent,LogTravelRequestCreatedIfMissing → HasEntriesForSource, …) - Codeunit 8703 “Feature Telemetry” (4 calls:
Approve → LogUsage,ApproveAutomatically → LogUsage,CreateTravelerExpenseReport → LogError, …) - Codeunit 6840 “Release Spend Request” (1 call:
Reject → Reopen)
Called by
- Page 7134 “Travel Requests API” (6 calls:
ApproveTravelRequest → Approve,ProcessApproverFilter → ApplyApproverFilter,ProcessOwnerFilter → ApplyOwnerFilter, …) - Codeunit 6908 “Expense Event Subscriber” (1 call:
AutoApproveSpendRequestWhenAgentDisabled → ApproveAutomatically)
Recent changes
- 2026-10-06 #12325 [Expense tests] Re-enable reviewed APIs and consolidate Expense fixes (main, BC30, fix)
- 2026-10-02 #12074 Expense Agent: travel request expense location, per-traveler reports, activity log and submitter comment (main, BC30, feature)
- 2026-09-23 #11595 [Master] Bug 650348: [Expense Agent] Closed travel requests are editable and are missing approver info. (main, BC30, fix)
- 2026-09-17 #11333 Align travel request APIs with employee travelers and expense report lifecycle (main, BC30, feature)
- 2026-09-09 #11007 Add Travel Request API lifecycle to Expense Agent (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 BC30 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: "Travel Request Approval"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.