Codeunit 6902 "Expense Rule Validation"
ExpenseAgent · Microsoft.ExpenseAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 15 connected objects and pages
ExpenseAgent · Microsoft.ExpenseAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
Procedures
ValidateExpenseAgainstRule(var Expense: Record Expense)ShouldApplyRule(ExpenseDetailRequired: Enum "Expense Detail Needed"): BooleanValidateItemizationAmount(ExpenseNo: Code[20]; JustWarning: Boolean)ValidateExpenseReportLineAgainstRule(var ExpenseReportLine: Record "Expense Report Line")ValidateItemizationAmount(ExpenseReportLine: Record "Expense Report Line"; JustWarning: Boolean)
Plus 57 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 1173 “Document Attachment Mgmt” (2 calls:
CheckForAttachmentsByRuleOnExpense → AttachedDocumentsExist,CheckForAttachmentsByRuleOnExpenseReportLine → AttachedDocumentsExist)
Called by
- Codeunit 6912 “Expense Auto Population” (2 calls:
FindRuleAndUpdateExpense → ShouldApplyRule,FindRuleAndUpdateExpenseReportLine → ShouldApplyRule) - Codeunit 6989 “Expense Attachment Mgt.” (2 calls:
CheckAndUpdateAttachmentOnExpense → ValidateExpenseAgainstRule,CheckAndUpdateAttachmentOnExpenseReportLine → ValidateExpenseReportLineAgainstRule) - Page 6931 “Expense Report Line Items” (2 calls:
OnQueryClosePage → ValidateExpenseReportLineAgainstRule,OnQueryClosePage → ValidateItemizationAmount) - Page 6975 “Expense Itemizations” (2 calls:
OnQueryClosePage → ValidateExpenseAgainstRule,OnQueryClosePage → ValidateItemizationAmount) - Table 6907 “Expense Report Line” (2 calls:
ApplyRule → ValidateExpenseReportLineAgainstRule,ShowExpenseBillingInformation → ValidateExpenseReportLineAgainstRule) - Codeunit 6984 “Release Exp. Report Document” (1 call:
CheckMandatoryFields → ValidateExpenseReportLineAgainstRule) - Page 6912 “Expense Report Line Particips” (1 call:
OnQueryClosePage → ValidateExpenseReportLineAgainstRule) - Page 6934 “Expense Report Line Per Diems” (1 call:
OnQueryClosePage → ValidateExpenseReportLineAgainstRule) - Page 6974 “Per Diem Expenses” (1 call:
OnQueryClosePage → ValidateExpenseAgainstRule) - Page 6992 “Expense Participants” (1 call:
OnQueryClosePage → ValidateExpenseAgainstRule) - Table 6900 “Expense” (1 call:
ApplyRule → ValidateExpenseAgainstRule) - Table 6905 “Expense Per Diem” (1 call:
UpdateTotalOnExpense → ValidateExpenseAgainstRule) - Table 6909 “Expense Report Line Per Diem” (1 call:
UpdateTotalOnExpense → ValidateExpenseReportLineAgainstRule) - Table 6921 “Expense Category” (1 call:
CheckRuleViolationOnExpenseReportLine → ValidateExpenseReportLineAgainstRule)
Recent changes
- 2026-09-15 #11431 [Master] - [Expense Management] Move missing Employee Posting Group validation to rule violation (main, BC30, fix)
- 2026-09-01 #10826 [Master] - Bug 648138: [master][NAV] Track failed BCApps validation (main, BC30, fix)
- 2026-08-27 #10561 Mileage Rate Setup (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 Rule Validation"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.