Page 6928 "Expense Reports API"
ExpenseAgent · Microsoft.ExpenseAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 7 connected objects and pages
ExpenseAgent · Microsoft.ExpenseAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| SourceTable | Expense Report Header |
| PageType | API |
Fields on this page
Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control’s own, else the bound field’s (marked).
| Group | Control | Shows | ToolTip |
|---|---|---|---|
| General | Id | Rec.SystemId |
— |
| No. | No. | — | |
| Expense User Number | Expense User No. | — | |
| Expense User System Id | ExpenseUserSystemId |
— | |
| Expense User Name | Expense User Name | — | |
| Expense Report Date | Expense Report Date | — | |
| Posting Date | Posting Date | — | |
| Description | Description | Specifies the value of the Description field. from the table field | |
| Total Amount (LCY) | Amount (LCY) | — | |
| Non-Refundable Amount (LCY) | Non-Refundable Amount (LCY) | — | |
| Amount without VAT (LCY) | Amount without VAT (LCY) | — | |
| Currency (LCY) | CurrencyLCYDisplay |
— | |
| Reimbursable Amount | Reimbursable Amount | Specifies the value of the Reimbursable Amount field. from the table field | |
| Reimbursable Amount (LCY) | Reimbursable Amount (LCY) | — | |
| VAT Amount (LCY) | VAT Amount (LCY) | — | |
| Shortcut Dimension 1 Code | Shortcut Dimension 1 Code | — | |
| Shortcut Dimension 2 Code | Shortcut Dimension 2 Code | — | |
| Employee Posting Group | Employee Posting Group | Specifies the employee’s type to link business transactions made for the employee with the appropriate account in the general ledger. from the table field | |
| Language Code | Language Code | — | |
| Comment | Comment | — | |
| Reason Code | Reason Code | — | |
| No. Series | No. Series | — | |
| Posting No. Series | Posting No. Series | — | |
| Status | Status | — | |
| Anti-Corruption Attestation | Anti-Corruption Attestation | — | |
| Anti-Corruption Description | Anti-Corruption Description | — | |
| Corrected | Corrected | — | |
| Corrected Document No. | Corrected Document No. | — | |
| Submission Date and Time | Submission DateTime | — | |
| Approved/Rejected Date and Time | Approved/Rejected DateTime | — | |
| Approved/Rejected By Expense User Display Name | Approved/Rejected Exp.UserName | — | |
| Approved/Rejected By Expense User Number | Approved/Rejected Exp.User No. | — | |
| Approver Comment | Rec.GetApproverComment() |
— | |
| Submitter Comment | Rec.GetSubmitterComment() |
— | |
| Final Approver No. | Final Approver No. | Specifies the expense user who gives final approval. Prepopulated from the expense user’s approver. from the table field | |
| Final Approver Name | Final Approver Name | Specifies the name of the final approver. from the table field | |
| Interim Approver No. | Interim Approver No. | Specifies an optional interim approver who must approve before the final approver. from the table field | |
| Interim Approver Name | Interim Approver Name | Specifies the name of the interim approver. from the table field | |
| Reimbursement Currency Code | ReimbursementCurrencyCodeDisplay |
— | |
| Responsibility Center | Responsibility Center | — | |
| System Created At | Rec.SystemCreatedAt |
— | |
| System Modified At | Rec.SystemModifiedAt |
— | |
| System Created By | Rec.SystemCreatedBy |
— | |
| System Modified By | Rec.SystemModifiedBy |
— | |
| Created By Expense User Id | Created By Exp. User Id | — | |
| Modified By Expense User Id | Modified By Exp. User Id | — | |
| Travel Request No. | Spend Request No. | Specifies the travel request number that is associated with this expense report. from the table field | |
| Travel Request Close | Spend Request Close | Specifies that the travel request will be closed when the expense report is posted. from the table field | |
| Expense Report Lines | part Page 6929 “Expense Report Lines API” | — | |
| Activity Log Entries | part Page 7122 “Expense Activity Log API” | — |
Procedures
ReleaseExpenseReport(var ActionContext: WebServiceActionContext)ReopenExpenseReport(var ActionContext: WebServiceActionContext)PendingApprovalExpenseReport(var ActionContext: WebServiceActionContext; SubmitterExpenseUserNo: Code[20])ReleaseAndMarkPendingApprovalExpenseReport(var ActionContext: WebServiceActionContext; SubmitterExpenseUserNo: Code[20])(obsolete 29.0: Use ReleaseAndMarkPendingApprovalExpenseReportWithComment instead.)ReleaseAndMarkPendingApprovalExpenseReportWithComment(var ActionContext: WebServiceActionContext; SubmitterExpenseUserNo: Code[20]; SubmissionComment: Text)ApprovedExpenseReport(var ActionContext: WebServiceActionContext; ApproverExpenseUserNo: Code[20])ApprovedExpenseReportWithPolicyOverride(var ActionContext: WebServiceActionContext; ApproverExpenseUserNo: Code[20]; SkipPolicyValidation: Boolean)RejectedExpenseReport(var ActionContext: WebServiceActionContext; ApproverExpenseUserNo: Code[20]; RejectReason: Text)RejectAndReopenExpenseReport(var ActionContext: WebServiceActionContext; ApproverExpenseUserNo: Code[20]; RejectReason: Text)AddExpenseToReport(var ActionContext: WebServiceActionContext; ExpenseId: Guid)AssignInterimApprover(var ActionContext: WebServiceActionContext; InterimApproverExpenseUserNo: Code[20]; ActorExpenseUserNo: Code[20])
Plus 4 local procedures.
Triggers
OnInit, OnOpenPage, OnFindRecord, OnAfterGetRecord, OnNewRecord, OnInsertRecord, OnModifyRecord
Relations
- source table Table 6906 “Expense Report Header”
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 6988 “Expense API Currency Helper” (3 calls:
OnAfterGetRecord → GetCurrencyCodeForAPI,OnInsertRecord → GetCurrencyCodeFromAPI,OnModifyRecord → GetCurrencyCodeFromAPI) - Codeunit 6993 “Expense Agent API Validation” (2 calls:
OnInit → VerifyAgentAccess,OnInsertRecord → IsCurrentUserExpenseAgent) - Codeunit 46 “SelectionFilterManagement” (1 call:
GetSubmitterFilter → GetSelectionFilter) - Codeunit 6954 “EA KPI Track” (1 call:
AddExpenseToReport → UpdateExpenseReportLineEntry) - Codeunit 6968 “Expense Audit Subscribers” (1 call:
OnInsertRecord → TelemetryCategory) - Codeunit 6983 “Create Expense Report” (1 call:
AddExpenseToReport → AddSingleExpenseToExpenseReport)
Recent changes
- 2026-09-24 #11021 Expense Agent: align legacy submit cleanup with 29.0 (main, BC30, other)
- 2026-09-09 #11007 Add Travel Request API lifecycle to Expense Agent (main, BC30, feature)
- 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-17 #10255 Add expense activity history foundation (main, BC30, feature)
- 2026-08-10 #9391 [Master] - Slice 616928: [Expense Management] [App part] Expense Managements Travel Requisitions 💸 (main, BC30, feature)
- 2026-08-04 #9859 [Master] - Move Expense Agent (Preview) app into BCApps (main, BC30, feature, added)
Deprecations
- procedure ReleaseAndMarkPendingApprovalExpenseReport: Pending 29.0 (#if not CLEAN29), “Use ReleaseAndMarkPendingApprovalExpenseReportWithComment instead.”
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
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: "page", object_name: "Expense Reports API"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.