---
id: object/codeunit/1535
type: object
title: Codeunit 1535 "Approvals Mgmt."
summary: Codeunit 1535 "Approvals Mgmt." in Base Application (System.Automation). 112 public procedures, 140 events, 15 event subscribers. Present since at least BC23, still in BC30, changed in BC24, BC26-30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "30"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 2583b993940846efa53a567027acb898653f48c9ff15a5cfd77b51ca78cb7e40
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al
    title: src/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11664
object_type: codeunit
object_id: 1535
name: Approvals Mgmt.
namespace: System.Automation
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 311
  events: 140
  subscribers: 15
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 48
  calls: 15
  called_by: 92
  implements: 0
---

# Codeunit 1535 "Approvals Mgmt."

> Codeunit 1535 "Approvals Mgmt." in Base Application (System.Automation). 112 public procedures, 140 events, 15 event subscribers. Present since at least BC23, still in BC30, changed in BC24, BC26-30.

Base Application · System.Automation · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Approval Entry" = Rimd, TableData "Approval Comment Line" = rimd, TableData "Posted Approval Entry" = rimd, TableData "Posted Approval Comment Line" = rimd, TableData "Overdue Approval Entry" = rimd, TableData "Notification Entry" = rimd |

## Events published

- `OnSendPurchaseDocForApproval(var PurchaseHeader: Record "Purchase Header")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendPurchaseDocForApproval
- `OnSendSalesDocForApproval(var SalesHeader: Record "Sales Header")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendSalesDocForApproval
- `OnSendIncomingDocForApproval(var IncomingDocument: Record "Incoming Document")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendIncomingDocForApproval
- `OnCancelPurchaseApprovalRequest(var PurchaseHeader: Record "Purchase Header")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelPurchaseApprovalRequest
- `OnCancelSalesApprovalRequest(var SalesHeader: Record "Sales Header")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelSalesApprovalRequest
- `OnCancelIncomingDocApprovalRequest(var IncomingDocument: Record "Incoming Document")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelIncomingDocApprovalRequest
- `OnSendCustomerForApproval(var Customer: Record Customer)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendCustomerForApproval
- `OnSendVendorForApproval(var Vendor: Record Vendor)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendVendorForApproval
- `OnSendItemForApproval(var Item: Record Item)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendItemForApproval
- `OnCancelCustomerApprovalRequest(var Customer: Record Customer)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelCustomerApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelCustomerApprovalRequest
- `OnCancelVendorApprovalRequest(var Vendor: Record Vendor)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelVendorApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelVendorApprovalRequest
- `OnCancelItemApprovalRequest(var Item: Record Item)` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelItemApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelItemApprovalRequest
- `OnSendGeneralJournalBatchForApproval(var GenJournalBatch: Record "Gen. Journal Batch")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendGeneralJournalBatchForApproval
- `OnCancelGeneralJournalBatchApprovalRequest(var GenJournalBatch: Record "Gen. Journal Batch")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelGeneralJournalBatchApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelGeneralJournalBatchApprovalRequest
- `OnSendGeneralJournalLineForApproval(var GenJournalLine: Record "Gen. Journal Line")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendGeneralJournalLineForApproval
- `OnCancelGeneralJournalLineApprovalRequest(var GenJournalLine: Record "Gen. Journal Line")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelGeneralJournalLineApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelGeneralJournalLineApprovalRequest
- `OnSendItemJournalBatchForApproval(var ItemJournalBatch: Record "Item Journal Batch")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendItemJournalBatchForApproval
- `OnCancelItemJournalBatchApprovalRequest(var ItemJournalBatch: Record "Item Journal Batch")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelItemJournalBatchApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelItemJournalBatchApprovalRequest
- `OnSendRequisitionWkshBatchForApproval(var RequisitionWkshName: Record "Requisition Wksh. Name")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendRequisitionWkshBatchForApproval
- `OnCancelRequisitionWkshBatchApprovalRequest(var RequisitionWkshName: Record "Requisition Wksh. Name")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelRequisitionWkshBatchApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelRequisitionWkshBatchApprovalRequest
- `OnApproveApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnApproveApprovalRequest, [Codeunit 20425 "Qlty. Workflow Approvals"](../codeunit/20425.md) HandleOnApproveTheApprovalRequestOnApproveTimeCardApproval
- `OnRejectApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnRejectApprovalRequest, [Codeunit 20425 "Qlty. Workflow Approvals"](../codeunit/20425.md) RunWorkflowOnRejectTimeCardApproval
- `OnDelegateApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnDelegateApprovalRequest, [Codeunit 20425 "Qlty. Workflow Approvals"](../codeunit/20425.md) RunWorkflowOnDelegateTimeCardApproval
- `OnRenameRecordInApprovalRequest(OldRecordId: RecordID; NewRecordId: RecordID)` (integration)
  - subscribers: [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) RenameApprovalEntries, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnRenameRecordInApprovalRequest
- `OnDeleteRecordInApprovalRequest(RecordIDToApprove: RecordID)` (integration)
  - subscribers: [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) DeleteApprovalEntries, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnDeleteRecordInApprovalRequest
- `OnSendJobQueueEntryForApproval(var JobQueueEntry: Record "Job Queue Entry")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnOnSendJobQueueEntryForApproval
- `OnCancelJobQueueEntryApprovalRequest(var JobQueueEntry: Record "Job Queue Entry")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelJobQueueEntryApprovalRequest
- `OnSendVendorBankAccountForApproval(var VendorBankAccount: Record "Vendor Bank Account")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnSendVendorBankAccountForApproval
- `OnCancelVendorBankAccountApprovalRequest(var VendorBankAccount: Record "Vendor Bank Account")` (integration)
  - subscribers: [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) RunWorkflowOnCancelVendorBankAccountApprovalRequest, [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) HandleOnCancelVendorBankAccountApprovalRequest
- `OnBeforeIsVendorBankApprovalsWorkflowEnabled(var VendorBankAccount: Record "Vendor Bank Account"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnPopulateApprovalEntryArgument(var RecRef: RecordRef; var ApprovalEntryArgument: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance")` (integration)
  - subscribers: [Codeunit 20425 "Qlty. Workflow Approvals"](../codeunit/20425.md) HandleOnPopulateApprovalEntryArgument, [Codeunit 6279 "Sust. Approvals Mgmt."](../codeunit/6279.md) PopulateApprovalEntryArgument
- `OnApproveApprovalRequestsForRecordOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance"; RecRef: RecordRef)` (integration)
- `OnAfterCanCancelApprovalForRecord(RecID: RecordID; var Result: Boolean; var ApprovalEntry: Record "Approval Entry"; UserSetup: Record "User Setup")` (integration)
- `OnAfterCalcPurchaseDocAmount(PurchaseHeader: Record "Purchase Header"; TotalPurchaseLine: Record "Purchase Line"; TotalPurchaseLineLCY: Record "Purchase Line"; var ApprovalAmount: Decimal; var ApprovalAmountLCY: Decimal)` (integration)
- `OnAfterCheckCustomerApprovalsWorkflowEnabled(var Customer: Record Customer; var Result: Boolean)` (integration)
- `OnAfterCheckItemApprovalsWorkflowEnabled(var Item: Record Item; var Result: Boolean)` (integration)
- `OnAfterCheckSalesApprovalPossible(var SalesHeader: Record "Sales Header")` (integration)
  - subscribers: [Codeunit 2678 "Sales Alloc. Acc. Mgt."](../codeunit/2678.md) HandleAfterCheckSalesApprovalPossible
- `OnAfterCheckPurchaseApprovalPossible(var PurchaseHeader: Record "Purchase Header")` (integration)
  - subscribers: [Codeunit 2679 "Purchase Alloc. Acc. Mgt."](../codeunit/2679.md) HandleAfterCheckSalesApprovalPossible
- `OnAfterCreateApprReqForApprTypeWorkflowUserGroup(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnAfterCreateApprReqForApprTypeSalespersPurchaser(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnAfterCreateApprReqForApprTypeApprover(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnAfterIsSufficientApprover(UserSetup: Record "User Setup"; ApprovalEntryArgument: Record "Approval Entry"; var IsSufficient: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterDelegateApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnAfterFindUserSetupBySalesPurchCode(var UserSetup: Record "User Setup"; ApprovalEntry: Record "Approval Entry")` (integration)
- `OnAfterPopulateApprovalEntryArgument(WorkflowStepInstance: Record "Workflow Step Instance"; var ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean; var RecRef: RecordRef)` (integration)
- `OnAfterRejectSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnBeforeApprovalEntryInsert(var ApprovalEntry: Record "Approval Entry"; ApprovalEntryArgument: Record "Approval Entry"; WorkflowStepArgument: Record "Workflow Step Argument"; ApproverId: Code[50]; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckPurchaseApprovalPossible(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateApprovalRequests(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateApprovalRequestForUser(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateApprovalRequestForApproverChain(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; SufficientApproverOnly: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateApprovalEntryNotification(ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean; WorkflowStepInstance: Record "Workflow Step Instance")` (integration)
- `OnBeforeCreateApprReqForApprTypeWorkflowUserGroup(var WorkflowUserGroupMember: Record "Workflow User Group Member"; WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntry: Record "Approval Entry"; SequenceNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeDelegateApprovalRequests(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckUserAsApprovalAdministrator(ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeHasOpenApprovalEntries(RecordID: RecordID; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeMakeApprovalEntry(var ApprovalEntry: Record "Approval Entry"; ApprovalEntryArgument: Record "Approval Entry"; WorkflowStepArgument: Record "Workflow Step Argument"; ApproverId: Code[50]; var IsHandled: Boolean)` (integration)
- `OnBeforePopulateApprovalEntryArgument(WorkflowStepInstance: Record "Workflow Step Instance"; var ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforePrePostApprovalCheckPurch(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforePrePostApprovalCheckSales(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean; var Result: Boolean)` (integration)
- `OnBeforeRunWorkflowEntriesPage(RecordIDInput: RecordID; TableId: Integer; DocumentType: Enum "Approval Document Type"; DocumentNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeSetStatusToPendingApproval(var Variant: Variant)` (integration)
- `OnBeforeSetApproverType(WorkflowStepArgument: Record "Workflow Step Argument"; var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowPurchApprovalStatus(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowSalesApprovalStatus(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeIsGeneralJournalBatchApprovalsWorkflowEnabled(var GenJournalBatch: Record "Gen. Journal Batch"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsGeneralJournalLineApprovalsWorkflowEnabled(var GenJournalLine: Record "Gen. Journal Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsItemJournalBatchApprovalsWorkflowEnabled(var ItemJournalBatch: Record "Item Journal Batch"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsRequisitionWkshBatchApprovalsWorkflowEnabled(var RequisitionWkshName: Record "Requisition Wksh. Name"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsPurchaseApprovalsWorkflowEnabled(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsSufficientApprover(var UserSetup: Record "User Setup"; ApprovalEntry: Record "Approval Entry")` (integration)
- `OnBeforeIsSufficientSalesApprover(UserSetup: Record "User Setup"; DocumentType: Enum "Sales Document Type"; ApprovalAmountLCY: Decimal; var IsSufficient: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeIsSufficientPurchApprover(UserSetup: Record "User Setup"; DocumentType: Enum "Purchase Document Type"; var ApprovalAmountLCY: Decimal; var IsSufficient: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeRejectApprovalRequestsForRecord(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance"; var IsHandled: Boolean)` (integration)
- `OnBeforeSendApprovalRequestFromApprovalEntry(ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetCommonApprovalCommentLineFilters(var RecRef: RecordRef; var ApprovalCommentLine: Record "Approval Comment Line"; var IsHandle: Boolean)` (integration)
- `OnBeforeShowCommonApprovalStatus(var RecRef: RecordRef; var IsHandle: Boolean)` (integration)
- `OnBeforeSubstituteUserIdForApprovalEntry(var ApprovalEntry: Record "Approval Entry"; var IsHandle: Boolean)` (integration)
- `OnBeforeRunApprovalCommentsPage(var ApprovalCommentLine: Record "Approval Comment Line"; WorkflowStepInstanceID: Guid; var IsHandle: Boolean)` (integration)
- `OnBeforeTrySendJournalLineApprovalRequests(var GenJournalLine: Record "Gen. Journal Line")` (integration)
- `OnCancelApprovalRequestsForRecordOnAfterCreateApprovalEntryNotification(var ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance"; OldStatus: Enum "Approval Status")` (integration)
- `OnCancelApprovalRequestsForRecordOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry"; RecRef: RecordRef)` (integration)
- `OnCreateApprovalRequestForApproverOnAfterCheckUserSetupUserID(var UserSetup: Record "User Setup"; WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; var IsUserAllowedToAproveIfNoApprovalUserExists: Boolean)` (integration)
- `OnCreateApprReqForApprTypeWorkflowUserGroupOnBeforeMakeApprovalEntry(var WorkflowUserGroupMember: Record "Workflow User Group Member"; var ApprovalEntryArgument: Record "Approval Entry"; WorkflowStepArgument: Record "Workflow Step Argument"; var ApproverId: Code[50]; var IsHandled: Boolean)` (integration)
- `OnCreateApprovalRequestForApproverChainOnAfterCheckApprovalEntrySenderID(var UserSetup: Record "User Setup"; WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnCreateApprovalRequestForApproverChainOnAfterCheckUserSetupSenderID(var UserSetup: Record "User Setup"; WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnCreateApprovalRequestForApproverChainOnBeforeCheckApproverId(var UserSetup: Record "User Setup"; WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnCreateApprovalRequestForApproverChainOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnCheckPurchaseApprovalPossibleOnAfterCalcShowNothingToApproveError(var PurchaseHeader: Record "Purchase Header"; var ShowNothingToApproveError: Boolean)` (integration)
- `OnBeforeDelegateSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry"; var CheckCurrentUser: Boolean; var IsHandled: Boolean)` (integration)
- `OnDelegateSelectedApprovalRequestOnBeforeSubstituteUserIdForApprovalEntry(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnDeleteApprovalEntriesOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnIsSufficientGenJournalLineApproverOnAfterRecRefSetTable(UserSetup: Record "User Setup"; ApprovalEntryArgument: Record "Approval Entry"; GenJournalLine: Record "Gen. Journal Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnFindOpenApprovalEntryForCurrUserOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnGetLastSequenceNoOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry"; ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnHasAnyOpenJournalLineApprovalEntriesOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnHasPendingApprovalEntriesForWorkflowOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnHasOpenApprovalEntriesOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnPostApprovalEntriesOnBeforePostedApprovalEntryInsert(var PostedApprovalEntry: Record "Posted Approval Entry"; ApprovalEntry: Record "Approval Entry")` (integration)
- `OnPostApprovalCommentLinesOnBeforePostedApprovalCommentLineInsert(var PostedApprovalCommentLine: Record "Posted Approval Comment Line"; ApprovalCommentLine: Record "Approval Comment Line")` (integration)
- `OnRejectApprovalRequestsForRecordOnAfterCreateApprovalEntryNotification(var ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance"; OldStatus: Enum "Approval Status")` (integration)
- `OnRejectApprovalRequestsForRecordOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance"; RecRef: RecordRef)` (integration)
- `OnRejectApprovalRequestsForRecordOnBeforeApprovalEntryToUpdateModify(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnSendApprovalRequestFromRecordOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry"; RecRef: RecordRef; var IsHandled: Boolean; WorkflowStepInstance: Record "Workflow Step Instance")` (integration)
- `OnSendApprovalRequestFromApprovalEntryOnAfterSetApprovalEntry2Filters(var ApprovalEntry2: Record "Approval Entry"; ApprovalEntry: Record "Approval Entry")` (integration)
- `OnSetStatusToPendingApproval(RecRef: RecordRef; var Variant: Variant; var IsHandled: Boolean)` (integration)
- `OnShowApprovalCommentsOnAfterSetApprovalCommentLineFilters(var ApprovalCommentLine: Record "Approval Comment Line"; ApprovalEntry: Record "Approval Entry"; RecRef: RecordRef)` (integration)
- `OnSubstituteUserIdForApprovalEntryOnAfterCheckUserSetupApprovalEntryApproverID(var UserSetup: Record "User Setup"; ApprovalEntry: Record "Approval Entry")` (integration)
- `OnSubstituteUserIdForApprovalEntryOnBeforeAssignApproverID(ApprovalEntry: Record "Approval Entry"; var UserSetup: Record "User Setup")` (integration)
- `OnTrySendJournalLineApprovalRequestsOnBeforeLoopIteration(var GenJournalLine: Record "Gen. Journal Line")` (integration)
- `OnAfterSetLimitType(WorkflowStepArgument: Record "Workflow Step Argument"; var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnAfterSetApproverType(WorkflowStepArgument: Record "Workflow Step Argument"; var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnBeforeCheckStatus(var ApprovalEntry: Record "Approval Entry"; ApprovalAction: Enum "Approval Action"; var IsHandled: Boolean)` (integration)
- `OnCreateApprovalRequestsOnElseCase(WorkflowStepArgument: Record "Workflow Step Argument"; var ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnCreateApprovalRequestsOnAfterCreateRequests(RecRef: RecordRef; WorkflowStepArgument: Record "Workflow Step Argument"; var ApprovalEntryArgument: Record "Approval Entry")` (integration)
- `OnApproveApprovalRequestsForRecordOnBeforeApprovalEntryToUpdateModify(var ApprovalEntryToUpdate: Record "Approval Entry")` (integration)
- `OnBeforeApproveSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeRejectApprovalRequests(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeApproveApprovalRequests(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckSalesApprovalPossible(var SalesHeader: Record "Sales Header"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeFindUserSetupBySalesPurchCode(var UserSetup: Record "User Setup"; ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateApprovalRequestForSalespersPurchaser(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnHasOpenApprovalEntriesForCurrentUserOnAfterSetApprovalEntryFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnBeforeRejectSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnAfterDelegateSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnPostApprovalEntriesOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry"; TableNo: Integer)` (integration)
- `OnPostApprovalCommentLinesOnAfterApprovalCommentLineSetFilters(var ApprovalCommentLine: Record "Approval Comment Line"; TableNo: Integer)` (integration)
- `OnDeleteApprovalCommentLinesOnAfterApprovalCommentLineSetFilters(var ApprovalCommentLine: Record "Approval Comment Line")` (integration)
- `OnHasOpenApprovalEntriesForCurrentUserOnAfterSetApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnAfterCreateApprovalRequestForApproverChain(var ApprovalEntryArgument: Record "Approval Entry"; var ApproverId: Code[50]; var WorkflowStepArgument: Record "Workflow Step Argument"; var UserSetup: Record "User Setup"; var SufficientApproverOnly: Boolean)` (integration)
- `OnSendApprovalRequestFromRecordOnBeforeFindApprovedApprovalEntryForWorkflowUserGroup(ApprovalEntry: Record "Approval Entry"; var IsHandled: Boolean)` (integration)
- `OnAfterCreateApprovalEntryNotification(var ApprovalEntryArgument: Record "Approval Entry"; var WorkflowStepArgument: Record "Workflow Step Argument")` (integration)
- `OnFindApprovalEntryForCurrUserOnAfterApprovalEntrySetFilters(var ApprovalEntry: Record "Approval Entry")` (integration)
- `OnBeforeSendJournalLinesApprovalRequests(var GenJournalLine: Record "Gen. Journal Line")` (integration)
- `OnCalcPurchaseDocAmountOnAfterPurchPostGetPurchLines(var TempPurchaseLine: Record "Purchase Line" temporary)` (integration)
- `OnAfterCalcSalesDocAmount(SalesHeader: Record "Sales Header"; TotalSalesLine: Record "Sales Line"; TotalSalesLineLCY: Record "Sales Line"; var ApprovalAmount: Decimal; var ApprovalAmountLCY: Decimal)` (integration)
- `OnPreventDeletingRecordWithOpenApprovalEntryElseCase(RecRef: RecordRef; Variant: Variant)` (integration)
  - subscribers: [Codeunit 6279 "Sust. Approvals Mgmt."](../codeunit/6279.md) OnPreventDeletingRecordWithOpenApprovalEntryElseCase
- `OnPreventInsertRecIfOpenApprovalEntryExistElseCase(RecRef: RecordRef; Variant: Variant)` (integration)
  - subscribers: [Codeunit 6279 "Sust. Approvals Mgmt."](../codeunit/6279.md) OnPreventInsertRecIfOpenApprovalEntryExistElseCase
- `OnFindOpenApprovalEntriesForWorkflowStepInstanceOnAfterSetApprovalEntry2Filters(var ApprovalEntry2: Record "Approval Entry"; ApprovalEntry: Record "Approval Entry"; WorkflowStepInstanceRecID: RecordId)` (integration)
- `OnSufficientApproverElseCase(UserSetup: Record "User Setup"; ApprovalEntryArgument: Record "Approval Entry"; var IsSufficient: Boolean)` (integration)

## Event subscriptions

- PostApprovalEntriesMoveGenJournalLine subscribes to Codeunit "Gen. Jnl.-Post Line" OnMoveGenJournalLine
- DeleteApprovalEntriesAfterDeleteGenJournalLine subscribes to Table "Gen. Journal Line" OnAfterDeleteEvent
- PostApprovalEntriesMoveGenJournalBatch subscribes to Table "Gen. Journal Batch" OnMoveGenJournalBatch
- DeleteApprovalEntriesAfterDeleteGenJournalBatch subscribes to Table "Gen. Journal Batch" OnAfterDeleteEvent
- DeleteApprovalEntriesAfterDeleteItemJournalBatch subscribes to Table "Item Journal Batch" OnAfterDeleteEvent
- PostApprovalEntriesMoveItemJournalBatch subscribes to Table "Item Journal Batch" OnMoveItemJournalBatch
- PostApprovalEntriesMoveRequisitionWkshBatch subscribes to Table "Requisition Wksh. Name" OnMoveRequisitionWkshBatch
- DeleteApprovalEntriesAfterDeleteRequisitionWkshName subscribes to Table "Requisition Wksh. Name" OnAfterDeleteEvent
- DeleteApprovalEntriesAfterDeleteCustomer subscribes to Table "Customer" OnAfterDeleteEvent
- DeleteApprovalEntriesAfterDeleteVendor subscribes to Table "Vendor" OnAfterDeleteEvent
- DeleteApprovalEntriesAfterDeleteVendorBankAccount subscribes to Table "Vendor Bank Account" OnAfterDeleteEvent
- DeleteApprovalEntriesAfterDeleteItem subscribes to Table "Item" OnAfterDeleteEvent
- RenameApprovalEntries subscribes to Codeunit "Approvals Mgmt." OnRenameRecordInApprovalRequest
- DeleteApprovalEntries subscribes to Codeunit "Approvals Mgmt." OnDeleteRecordInApprovalRequest
- SkipScheduleTaskIfWorkflowEnabledOnBeforeScheduleTask subscribes to Table "Job Queue Entry" OnBeforeScheduleTask

## Procedures

- `ApproveRecordApprovalRequest(RecordID: RecordID)`
- `ApproveGenJournalLineRequest(GenJournalLine: Record "Gen. Journal Line")`
- `ApproveItemJournalRequest(ItemJournalLine: Record "Item Journal Line")`
- `ApproveRequisitionWkshRequest(RequisitionLine: Record "Requisition Line")`
- `RejectRecordApprovalRequest(RecordID: RecordID)`
- `RejectGenJournalLineRequest(GenJournalLine: Record "Gen. Journal Line")`
- `RejectItemJournalRequest(ItemJournalLine: Record "Item Journal Line")`
- `RejectRequisitionWkshRequest(RequisitionLine: Record "Requisition Line")`
- `DelegateRecordApprovalRequest(RecordID: RecordID)`
- `DelegateGenJournalLineRequest(GenJournalLine: Record "Gen. Journal Line")`
- `DelegateItemJournalRequest(ItemJournalLine: Record "Item Journal Line")`
- `DelegateRequisitionWkshRequest(RequisitionLine: Record "Requisition Line")`
- `ApproveApprovalRequests(var ApprovalEntry: Record "Approval Entry")`
- `RejectApprovalRequests(var ApprovalEntry: Record "Approval Entry")`
- `DelegateApprovalRequests(var ApprovalEntry: Record "Approval Entry")`
- `DelegateSelectedApprovalRequest(var ApprovalEntry: Record "Approval Entry"; CheckCurrentUser: Boolean)`
- `FindOpenApprovalEntryForCurrUser(var ApprovalEntry: Record "Approval Entry"; RecordID: RecordID): Boolean`
- `FindApprovalEntryForCurrUser(var ApprovalEntry: Record "Approval Entry"; RecordID: RecordID): Boolean`
- `FindLastApprovalEntryForCurrUser(var ApprovalEntry: Record "Approval Entry"; RecordID: RecordID): Boolean`
- `FindApprovalEntryByRecordId(var ApprovalEntry: Record "Approval Entry"; RecordID: RecordID): Boolean`
- `ApproveApprovalRequestsForRecord(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `CancelApprovalRequestsForRecord(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `RejectApprovalRequestsForRecord(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `SendApprovalRequestFromRecord(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `SendApprovalRequestFromApprovalEntry(ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance")`
- `CreateApprovalRequests(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `CreateAndAutomaticallyApproveRequest(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance")`
- `CreateApprovalRequestForChainOfApprovers(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")`
- `CreateApprovalRequestForApproverWithSufficientLimit(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")`
- `CreateApprovalRequestForUser(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")`
- `CreateApprovalRequestForSpecificUser(WorkflowStepArgument: Record "Workflow Step Argument"; ApprovalEntryArgument: Record "Approval Entry")`
- `MakeApprovalEntry(ApprovalEntryArgument: Record "Approval Entry"; SequenceNo: Integer; ApproverId: Code[50]; WorkflowStepArgument: Record "Workflow Step Argument")`
- `CalcPurchaseDocAmount(PurchaseHeader: Record "Purchase Header"; var ApprovalAmount: Decimal; var ApprovalAmountLCY: Decimal)`
- `CalcSalesDocAmount(SalesHeader: Record "Sales Header"; var ApprovalAmount: Decimal; var ApprovalAmountLCY: Decimal)`
- `PopulateApprovalEntryArgument(RecRef: RecordRef; WorkflowStepInstance: Record "Workflow Step Instance"; var ApprovalEntryArgument: Record "Approval Entry")`
- `CreateApprovalEntryNotification(ApprovalEntry: Record "Approval Entry"; WorkflowStepInstance: Record "Workflow Step Instance")`
- `IsSufficientApprover(UserSetup: Record "User Setup"; ApprovalEntryArgument: Record "Approval Entry"): Boolean`
- `PrePostApprovalCheckSales(var SalesHeader: Record "Sales Header"): Boolean`
- `PrePostApprovalCheckPurch(var PurchaseHeader: Record "Purchase Header"): Boolean`
- `IsIncomingDocApprovalsWorkflowEnabled(var IncomingDocument: Record "Incoming Document"): Boolean`
- `IsPurchaseApprovalsWorkflowEnabled(var PurchaseHeader: Record "Purchase Header"): Boolean`
- `IsPurchaseHeaderPendingApproval(var PurchaseHeader: Record "Purchase Header"): Boolean`
- `IsSalesApprovalsWorkflowEnabled(var SalesHeader: Record "Sales Header"): Boolean`
- `IsSalesHeaderPendingApproval(var SalesHeader: Record "Sales Header"): Boolean`
- `IsOverdueNotificationsWorkflowEnabled(): Boolean`
- `IsVendorBankApprovalsWorkflowEnabled(var VendorBankAccount: Record "Vendor Bank Account"): Boolean`
- `IsGeneralJournalBatchApprovalsWorkflowEnabled(var GenJournalBatch: Record "Gen. Journal Batch"): Boolean`
- `IsGeneralJournalLineApprovalsWorkflowEnabled(var GenJournalLine: Record "Gen. Journal Line"): Boolean`
- `IsItemJournalBatchApprovalsWorkflowEnabled(var ItemJournalBatch: Record "Item Journal Batch"): Boolean`
- `IsRequisitionWkshBatchApprovalsWorkflowEnabled(var RequisitionWkshName: Record "Requisition Wksh. Name"): Boolean`
- `CheckPurchaseApprovalPossible(var PurchaseHeader: Record "Purchase Header"): Boolean`
- `CheckIncomingDocApprovalsWorkflowEnabled(var IncomingDocument: Record "Incoming Document"): Boolean`
- `CheckSalesApprovalPossible(var SalesHeader: Record "Sales Header"): Boolean`
- `CheckCustomerApprovalsWorkflowEnabled(var Customer: Record Customer): Boolean`
- `CheckVendorApprovalsWorkflowEnabled(var Vendor: Record Vendor): Boolean`
- `CheckVendorBankAccountApprovalsWorkflowEnabled(var VendorBankAccount: Record "Vendor Bank Account"): Boolean`
- `CheckItemApprovalsWorkflowEnabled(var Item: Record Item): Boolean`
- `CheckGeneralJournalBatchApprovalsWorkflowEnabled(var GenJournalBatch: Record "Gen. Journal Batch"): Boolean`
- `CheckGeneralJournalLineApprovalsWorkflowEnabled(var GenJournalLine: Record "Gen. Journal Line"): Boolean`
- `CheckItemJournalBatchApprovalsWorkflowEnabled(var ItemJournalBatch: Record "Item Journal Batch"): Boolean`
- `CheckRequisitionWkshBatchApprovalsWorkflowEnabled(var RequisitionWkshName: Record "Requisition Wksh. Name"): Boolean`
- `CheckJobQueueEntryApprovalEnabled(): Boolean`
- `DeleteApprovalEntry(Variant: Variant)`
- `PostApprovalEntries(ApprovedRecordID: RecordID; PostedRecordID: RecordID; PostedDocNo: Code[20]): Boolean`
- `ShowPostedApprovalEntries(PostedRecordID: RecordID)`
- `DeletePostedApprovalEntries(PostedRecordID: RecordID)`
- `SetStatusToPendingApproval(var Variant: Variant)`
- `InformUserOnStatusChange(Variant: Variant; WorkflowInstanceId: Guid)`
- `GetApprovalComment(Variant: Variant)`
- `GetApprovalCommentForWorkflowStepInstanceID(Variant: Variant; WorkflowStepInstanceID: Guid)`
- `HasOpenApprovalEntriesForCurrentUser(RecordID: RecordID): Boolean`
- `HasOpenApprovalEntries(RecordID: RecordID): Boolean`
- `HasOpenOrPendingApprovalEntries(RecordID: RecordID): Boolean`
- `HasOpenOrPendingApprovalEntriesForCurrentUser(RecordID: RecordID): Boolean`
- `HasApprovedApprovalEntries(RecordID: RecordID): Boolean`
- `HasApprovalEntries(RecordID: RecordID): Boolean`
- `HasAnyOpenJournalLineApprovalEntries(JournalTemplateName: Code[20]; JournalBatchName: Code[20]): Boolean`
- `TrySendJournalBatchApprovalRequest(var GenJournalLine: Record "Gen. Journal Line")`
- `TrySendJournalLineApprovalRequests(var GenJournalLine: Record "Gen. Journal Line")`
- `TryCancelJournalBatchApprovalRequest(var GenJournalLine: Record "Gen. Journal Line")`
- `TryCancelJournalLineApprovalRequests(var GenJournalLine: Record "Gen. Journal Line")`
- `ShowJournalApprovalEntries(var GenJournalLine: Record "Gen. Journal Line")`
- `TrySendJournalBatchApprovalRequest(var ItemJournalLine: Record "Item Journal Line")`
- `TryCancelJournalBatchApprovalRequest(var ItemJournalLine: Record "Item Journal Line")`
- `ShowJournalApprovalEntries(var ItemJournalLine: Record "Item Journal Line")`
- `TrySendWorksheetBatchApprovalRequest(var RequisitionLine: Record "Requisition Line")`
- `TryCancelWorksheetBatchApprovalRequest(var RequisitionLine: Record "Requisition Line")`
- `ShowWorksheetApprovalEntries(var RequisitionLine: Record "Requisition Line")`
- `DeleteApprovalCommentLines(RecordIDToApprove: RecordID)`
- `CopyApprovalEntryQuoteToOrder(FromRecID: RecordID; ToDocNo: Code[20]; ToRecID: RecordID)`
- `GetLastSequenceNo(ApprovalEntryArgument: Record "Approval Entry"): Integer`
- `OpenApprovalEntriesPage(RecId: RecordID)`
- `OpenApprovalsSales(SalesHeader: Record "Sales Header")`
- `OpenApprovalsPurchase(PurchHeader: Record "Purchase Header")`
- `RunWorkflowEntriesPage(RecordIDInput: RecordID; TableId: Integer; DocumentType: Enum "Approval Document Type"; DocumentNo: Code[20])`
- `CanCancelApprovalForRecord(RecID: RecordID): Boolean`
- `HasApprovalEntriesSentByCurrentUser(RecordId: RecordId): Boolean`
- `PreventDeletingRecordWithOpenApprovalEntry(Variant: Variant)`
- `PreventInsertRecIfOpenApprovalEntryExist(Variant: Variant)`
- `PreventModifyRecIfOpenApprovalEntryExist(Variant: Variant)` (internal)
- `PreventModifyRecIfOpenApprovalEntryExistForCurrentUser(Variant: Variant)`
- `ShowApprovalCommentLinesForJournal(ErrInfo: ErrorInfo)`
- `RejectApprovalRequest(ErrInfo: ErrorInfo)`
- `SendJournalLinesApprovalRequests(var GenJournalLine: Record "Gen. Journal Line")`
- `GetGenJnlBatchApprovalStatus(GenJournalLine: Record "Gen. Journal Line"; var GenJnlBatchApprovalStatus: Text[20]; EnabledGenJnlBatchWorkflowsExist: Boolean)`
- `GetGenJnlLineApprovalStatus(GenJournalLine: Record "Gen. Journal Line"; var GenJnlLineApprovalStatus: Text[20]; EnabledGenJnlLineWorkflowsExist: Boolean)`
- `GetItemJnlBatchApprovalStatus(ItemJournalLine: Record "Item Journal Line"; var ItemJnlBatchApprovalStatus: Text[20]; EnabledItemJnlBatchWorkflowsExist: Boolean)`
- `GetRequisitionWkshBatchApprovalStatus(RequisitionLine: Record "Requisition Line"; var ReqWkshBatchApprovalStatus: Text[20]; EnabledReqWkshBatchWorkflowsExist: Boolean)`
- `SendForApproval(var JobQueueEntry: Record "Job Queue Entry")` (internal)
- `CleanGenJournalApprovalStatus(GenJournalLine: Record "Gen. Journal Line"; var GenJnlBatchApprovalStatus: Text[20]; var GenJnlLineApprovalStatus: Text[20])`
- `CleanItemJournalApprovalStatus(ItemJournalLine: Record "Item Journal Line"; var ItemJnlBatchApprovalStatus: Text[20])` (internal)
- `CleanRequisitionWkshApprovalStatus(RequisitionLine: Record "Requisition Line"; var ReqWkshBatchApprovalStatus: Text[20])` (internal)

Plus 44 local procedures.

## Triggers

OnRun

## 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 1501 "Workflow Management"](../codeunit/1501.md) (23 calls: `CheckCustomerApprovalsWorkflowEnabled → CanExecuteWorkflow`, `CheckCustomerApprovalsWorkflowEnabled → EnabledWorkflowExist`, `CheckGeneralJournalBatchApprovalsWorkflowEnabled → CanExecuteWorkflow`, …)
- [Codeunit 1520 "Workflow Event Handling"](../codeunit/1520.md) (22 calls: `CheckCustomerApprovalsWorkflowEnabled → RunWorkflowOnCustomerChangedCode`, `CheckCustomerApprovalsWorkflowEnabled → RunWorkflowOnSendCustomerForApprovalCode`, `CheckGeneralJournalBatchApprovalsWorkflowEnabled → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, …)
- [Codeunit 1543 "Workflow Webhook Management"](../codeunit/1543.md) (7 calls: `PreventDeletingRecordWithOpenApprovalEntry → HasPendingWorkflowWebhookEntryByRecordId`, `PreventInsertRecIfOpenApprovalEntryExist → HasPendingWorkflowWebhookEntryByRecordId`, `PreventModifyRecIfOpenApprovalEntryExist → HasPendingWorkflowWebhookEntryByRecordId`, …)
- [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) (3 calls: `PostApprovalEntriesMoveGenJournalBatch → AllowRecordUsage`, `PostApprovalEntriesMoveItemJournalBatch → AllowRecordUsage`, `PostApprovalEntriesMoveRequisitionWkshBatch → AllowRecordUsage`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (3 calls: `PreventDeletingRecordWithOpenApprovalEntry → GetResponseOrDefault`, `PreventInsertRecIfOpenApprovalEntryExist → GetResponseOrDefault`, `PreventModifyRecIfOpenApprovalEntryExist → GetResponseOrDefault`)
- [Page 658 "Approval Entries"](../page/658.md) (3 calls: `OpenApprovalEntriesPage → (object)`, `ShowJournalApprovalEntries → (object)`, `ShowWorksheetApprovalEntries → (object)`)
- [Codeunit 500 "Enum Assignment Management"](../codeunit/500.md) (2 calls: `PopulateApprovalEntryArgument → GetPurchApprovalDocumentType`, `PopulateApprovalEntryArgument → GetSalesApprovalDocumentType`)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (2 calls: `CalcSalesDocAmount → GetSalesLines`, `CalcSalesDocAmount → SumSalesLinesTemp`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (2 calls: `SendForApproval → LogError`, `SendForApproval → LogUsage`)
- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (2 calls: `CalcPurchaseDocAmount → GetPurchLines`, `CalcPurchaseDocAmount → SumPurchLinesTemp`)
- [Codeunit 1380 "Batch Processing Mgt."](../codeunit/1380.md) (1 call: `SendJournalLinesApprovalRequests → BatchProcess`)
- [Codeunit 1521 "Workflow Response Handling"](../codeunit/1521.md) (1 call: `FindApprovedApprovalEntryForWorkflowUserGroup → CreateApprovalRequestsCode`)
- [Codeunit 4030 "Client Type Management"](../codeunit/4030.md) (1 call: `IsBackground → GetCurrentClientType`)
- [Codeunit 447 "Record Link Management"](../codeunit/447.md) (1 call: `PostApprovalEntries → CopyLinks`)
- [Page 659 "Posted Approval Entries"](../page/659.md) (1 call: `ShowPostedApprovalEntries → (object)`)

## Called by

- [Codeunit 6279 "Sust. Approvals Mgmt."](../codeunit/6279.md) (17 calls: `ApproveSustJournalLineRequest → ApproveRecordApprovalRequest`, `ApproveSustJournalLineRequest → FindOpenApprovalEntryForCurrUser`, `CleanSustJournalApprovalStatus → FindApprovalEntryByRecordId`, …)
- [Page 255 "Cash Receipt Journal"](../page/255.md) (11 calls: `CheckOpenApprovalEntries → HasAnyOpenJournalLineApprovalEntries`, `CheckOpenApprovalEntries → HasOpenApprovalEntries`, `CheckOpenApprovalEntries → HasOpenApprovalEntriesForCurrentUser`, …)
- [Page 256 "Payment Journal"](../page/256.md) (11 calls: `CheckOpenApprovalEntries → HasAnyOpenJournalLineApprovalEntries`, `CheckOpenApprovalEntries → HasOpenApprovalEntries`, `CheckOpenApprovalEntries → HasOpenApprovalEntriesForCurrentUser`, …)
- [Page 39 "General Journal"](../page/39.md) (11 calls: `OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus`, `OnAfterGetRecord → GetGenJnlLineApprovalStatus`, `OnModifyRecord → CleanGenJournalApprovalStatus`, …)
- [Codeunit 1521 "Workflow Response Handling"](../codeunit/1521.md) (9 calls: `ApproveAllApprovalRequests → ApproveApprovalRequestsForRecord`, `CancelAllApprovalRequests → CancelApprovalRequestsForRecord`, `CreateAndApproveApprovalRequestAutomatically → CreateAndAutomaticallyApproveRequest`, …)
- [Table 233 "Item Journal Batch"](../table/233.md) (7 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnModify → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnRename → OnRenameRecordInApprovalRequest`, …)
- [Table 245 "Requisition Wksh. Name"](../table/245.md) (7 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnModify → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnRename → OnRenameRecordInApprovalRequest`, …)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (6 calls: `DeleteApprovalEntries → DeleteApprovalEntries`, `InsertCrMemoHeader → PostApprovalEntries`, `InsertInvoiceHeader → PostApprovalEntries`, …)
- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (6 calls: `DeleteApprovalEntries → DeleteApprovalEntries`, `InsertCrMemoHeader → PostApprovalEntries`, `InsertInvoiceHeader → PostApprovalEntries`, …)
- [Page 253 "Sales Journal"](../page/253.md) (6 calls: `OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus`, `OnAfterGetRecord → GetGenJnlLineApprovalStatus`, `OnModifyRecord → CleanGenJournalApprovalStatus`, …)
- [Page 254 "Purchase Journal"](../page/254.md) (6 calls: `OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus`, `OnAfterGetRecord → GetGenJnlLineApprovalStatus`, `OnModifyRecord → CleanGenJournalApprovalStatus`, …)
- [Table 81 "Gen. Journal Line"](../table/81.md) (6 calls: `CheckOpenApprovalEntryExistForCurrentUser → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnInsert → PreventInsertRecIfOpenApprovalEntryExist`, …)
- [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) (5 calls: `RestrictBankAccount → IsVendorBankApprovalsWorkflowEnabled`, `RestrictGenJournalLine → IsGeneralJournalBatchApprovalsWorkflowEnabled`, `RestrictGenJournalLine → IsGeneralJournalLineApprovalsWorkflowEnabled`, …)
- [Table 36 "Sales Header"](../table/36.md) (5 calls: `ApprovedForPostingBatch → PrePostApprovalCheckSales`, `CheckSalesReleaseRestrictions → PrePostApprovalCheckSales`, `DeleteRecordInApprovalRequest → OnDeleteRecordInApprovalRequest`, …)
- [Table 38 "Purchase Header"](../table/38.md) (5 calls: `ApprovedForPostingBatch → PrePostApprovalCheckPurch`, `CheckPurchaseReleaseRestrictions → PrePostApprovalCheckPurch`, `DeleteRecordInApprovalRequest → OnDeleteRecordInApprovalRequest`, …)
- [Page 6219 "Sustainability Journal"](../page/6219.md) (4 calls: `SetApprovalStateForBatch → CanCancelApprovalForRecord`, `SetApprovalStateForBatch → HasApprovalEntriesSentByCurrentUser`, `SetApprovalStateForBatch → HasOpenApprovalEntries`, …)
- [Table 6214 "Sustainability Jnl. Line"](../table/6214.md) (4 calls: `CheckOpenApprovalEntryExistForCurrentUser → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnInsert → PreventInsertRecIfOpenApprovalEntryExist`, …)
- [Table 83 "Item Journal Line"](../table/83.md) (4 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnInsert → PreventInsertRecIfOpenApprovalEntryExist`, `PreventModifyRecIfOpenApprovalEntryExist → PreventModifyRecIfOpenApprovalEntryExist`, …)
- [Page 189 "Incoming Document"](../page/189.md) (3 calls: `SetControlVisibility → CanCancelApprovalForRecord`, `SetControlVisibility → HasOpenApprovalEntries`, `SetControlVisibility → HasOpenApprovalEntriesForCurrentUser`)
- [Page 21 "Customer Card"](../page/21.md) (3 calls: `OnAfterGetCurrRecordFunc → CanCancelApprovalForRecord`, `OnAfterGetCurrRecordFunc → HasOpenApprovalEntries`, `OnAfterGetCurrRecordFunc → HasOpenApprovalEntriesForCurrentUser`)
- [Page 26 "Vendor Card"](../page/26.md) (3 calls: `OnAfterGetCurrRecordFunc → CanCancelApprovalForRecord`, `OnAfterGetCurrRecordFunc → HasOpenApprovalEntries`, `OnAfterGetCurrRecordFunc → HasOpenApprovalEntriesForCurrentUser`)
- [Page 41 "Sales Quote"](../page/41.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 42 "Sales Order"](../page/42.md) (3 calls: `SetControlVisibility → CanCancelApprovalForRecord`, `SetControlVisibility → HasOpenApprovalEntries`, `SetControlVisibility → HasOpenApprovalEntriesForCurrentUser`)
- [Page 425 "Vendor Bank Account Card"](../page/425.md) (3 calls: `OnAfterGetCurrRecord → CanCancelApprovalForRecord`, `OnAfterGetCurrRecord → HasOpenApprovalEntries`, `OnAfterGetCurrRecord → HasOpenApprovalEntriesForCurrentUser`)
- [Page 43 "Sales Invoice"](../page/43.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 44 "Sales Credit Memo"](../page/44.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 49 "Purchase Quote"](../page/49.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 50 "Purchase Order"](../page/50.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 507 "Blanket Sales Order"](../page/507.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 509 "Blanket Purchase Order"](../page/509.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 51 "Purchase Invoice"](../page/51.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 52 "Purchase Credit Memo"](../page/52.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 610 "IC General Journal"](../page/610.md) (3 calls: `OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus`, `OnAfterGetRecord → GetGenJnlLineApprovalStatus`, `OnModifyRecord → CleanGenJournalApprovalStatus`)
- [Page 6630 "Sales Return Order"](../page/6630.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Page 6640 "Purchase Return Order"](../page/6640.md) (3 calls: `SetControlAppearance → CanCancelApprovalForRecord`, `SetControlAppearance → HasOpenApprovalEntries`, `SetControlAppearance → HasOpenApprovalEntriesForCurrentUser`)
- [Table 232 "Gen. Journal Batch"](../table/232.md) (3 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnModify → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnRename → OnRenameRecordInApprovalRequest`)
- [Table 246 "Requisition Line"](../table/246.md) (3 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnInsert → PreventInsertRecIfOpenApprovalEntryExist`, `PreventModifyRecIfOpenApprovalEntryExist → PreventModifyRecIfOpenApprovalEntryExist`)
- [Table 6213 "Sustainability Jnl. Batch"](../table/6213.md) (3 calls: `OnDelete → PreventDeletingRecordWithOpenApprovalEntry`, `OnModify → PreventModifyRecIfOpenApprovalEntryExistForCurrentUser`, `OnRename → OnRenameRecordInApprovalRequest`)
- [Codeunit 1536 "Approvals Journal Line Request"](../codeunit/1536.md) (2 calls: `OnRun → HasOpenApprovalEntries`, `OnRun → OnSendGeneralJournalLineForApproval`)
- [Codeunit 1630 "Office Management"](../codeunit/1630.md) (2 calls: `SendApprovalRequest → CheckIncomingDocApprovalsWorkflowEnabled`, `SendApprovalRequest → OnSendIncomingDocForApproval`)
- [Codeunit 5923 "Service-Quote to Order"](../codeunit/5923.md) (2 calls: `MakeOrder → CopyApprovalEntryQuoteToOrder`, `MakeOrder → DeleteApprovalEntries`)
- [Codeunit 86 "Sales-Quote to Order"](../codeunit/86.md) (2 calls: `CopyApprovalEntryQuoteToOrder → CopyApprovalEntryQuoteToOrder`, `OnRun → DeleteApprovalEntries`)
- [Codeunit 96 "Purch.-Quote to Order"](../codeunit/96.md) (2 calls: `OnRun → CopyApprovalEntryQuoteToOrder`, `OnRun → DeleteApprovalEntries`)
- [Page 190 "Incoming Documents"](../page/190.md) (2 calls: `SetControlVisibility → CanCancelApprovalForRecord`, `SetControlVisibility → HasOpenApprovalEntries`)
- [Page 22 "Customer List"](../page/22.md) (2 calls: `OnAfterGetCurrRecord → CanCancelApprovalForRecord`, `OnAfterGetCurrRecord → HasOpenApprovalEntries`)
- [Page 27 "Vendor List"](../page/27.md) (2 calls: `OnAfterGetCurrRecord → CanCancelApprovalForRecord`, `OnAfterGetCurrRecord → HasOpenApprovalEntries`)
- [Page 291 "Req. Worksheet"](../page/291.md) (2 calls: `OnAfterGetCurrRecord → GetRequisitionWkshBatchApprovalStatus`, `OnModifyRecord → CleanRequisitionWkshApprovalStatus`)
- [Page 30 "Item Card"](../page/30.md) (2 calls: `OnAfterGetCurrRecordFunc → HasOpenApprovalEntries`, `OnAfterGetCurrRecordFunc → HasOpenApprovalEntriesForCurrentUser`)
- [Page 31 "Item List"](../page/31.md) (2 calls: `OnAfterGetCurrRecord → CanCancelApprovalForRecord`, `OnAfterGetCurrRecord → HasOpenApprovalEntries`)
- [Page 392 "Phys. Inventory Journal"](../page/392.md) (2 calls: `OnAfterGetCurrRecord → GetItemJnlBatchApprovalStatus`, `OnModifyRecord → CleanItemJournalApprovalStatus`)
- and 42 more: data/code/graph/29/calls.json

## Recent changes

- 2026-09-23 [#11664 Add OnBefore event for approval insertion checks](../../changes/bcapps/11664.md) (main, BC30, feature)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26-30

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: "codeunit", object_name: "Approvals Mgmt.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
