---
id: object/codeunit/1520
type: object
title: Codeunit 1520 "Workflow Event Handling"
summary: Codeunit 1520 "Workflow Event Handling" in Base Application (System.Automation). 53 public procedures, 6 events, 53 event subscribers. Present since at least BC23, still in BC30, changed in BC28-29.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "29"
  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: 6293702158e9058be3cfb334813a7c7e44371678713da69d24964502318eb982
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/Workflow/WorkflowEventHandling.Codeunit.al
    title: src/Layers/W1/BaseApp/System/Workflow/WorkflowEventHandling.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 1520
name: Workflow Event Handling
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:
  - "28"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 114
  events: 6
  subscribers: 53
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 10
  calls: 3
  called_by: 25
  implements: 0
---

# Codeunit 1520 "Workflow Event Handling"

> Codeunit 1520 "Workflow Event Handling" in Base Application (System.Automation). 53 public procedures, 6 events, 53 event subscribers. Present since at least BC23, still in BC30, changed in BC28-29.

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

## Events published

- `OnAddWorkflowEventsToLibrary()` (integration)
  - subscribers: [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) AddWorkflowWebhookEventsToLibrary, [Codeunit 20423 "Qlty. Workflow Setup"](../codeunit/20423.md) HandleOnAddWorkflowEventsToLibrary, [Codeunit 6139 "E-Document Workflow Setup"](../codeunit/6139.md) AddEDocWorkflowEventsToLibrary, [Codeunit 6280 "Sust. Workflow Event Handling"](../codeunit/6280.md) AddWorkflowEventsToLibrary
- `OnAddWorkflowEventPredecessorsToLibrary(EventFunctionName: Code[128])` (integration)
  - subscribers: [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) AddWorkflowWebhookEventHierarchiesToLibrary, [Codeunit 20423 "Qlty. Workflow Setup"](../codeunit/20423.md) HandleOnAddWorkflowEventPredecessorsToLibrary, [Codeunit 6280 "Sust. Workflow Event Handling"](../codeunit/6280.md) AddWorkflowEventPredecessorsToLibrary
- `OnAddWorkflowTableRelationsToLibrary()` (integration)
  - subscribers: [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) AddWorkflowWebhookTableRelationsToLibrary, [Codeunit 20423 "Qlty. Workflow Setup"](../codeunit/20423.md) HandleOnAddWorkflowTableRelationsToLibrary, [Codeunit 6280 "Sust. Workflow Event Handling"](../codeunit/6280.md) AddWorkflowTableRelationsToLibrary
- `OnBeforeAddEventToLibrary(FunctionName: Code[128]; Description: Text[250])` (integration)
- `OnBeforeRunWorkflowOnSendPurchaseDocForApproval(var PurchaseHeader: Record "Purchase Header")` (integration)
- `OnBeforeRunWorkflowOnApproveApprovalRequest(var ApprovalEntry: Record "Approval Entry")` (integration)

## Event subscriptions

- RunWorkflowOnAfterInsertIncomingDocument subscribes to Table "Incoming Document" OnAfterInsertEvent
- RunWorkflowOnSendPurchaseDocForApproval subscribes to Codeunit "Approvals Mgmt." OnSendPurchaseDocForApproval
- RunWorkflowOnCancelPurchaseApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelPurchaseApprovalRequest
- RunWorkflowOnSendIncomingDocForApproval subscribes to Codeunit "Approvals Mgmt." OnSendIncomingDocForApproval
- RunWorkflowOnCancelIncomingDocApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelIncomingDocApprovalRequest
- RunWorkflowOnAfterReleasePurchaseDoc subscribes to Codeunit "Release Purchase Document" OnAfterReleasePurchaseDoc
- RunWorkflowOnSendSalesDocForApproval subscribes to Codeunit "Approvals Mgmt." OnSendSalesDocForApproval
- RunWorkflowOnCancelSalesApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelSalesApprovalRequest
- RunWorkflowOnAfterReleaseSalesDoc subscribes to Codeunit "Release Sales Document" OnAfterReleaseSalesDoc
- RunWorkflowOnAfterReleaseIncomingDoc subscribes to Codeunit "Release Incoming Document" OnAfterReleaseIncomingDoc
- RunWorkflowOnAfterCreateDocFromIncomingDocSuccess subscribes to Codeunit "Release Incoming Document" OnAfterCreateDocFromIncomingDocSuccess
- RunWorkflowOnAfterCreateDocFromIncomingDocFail subscribes to Codeunit "Release Incoming Document" OnAfterCreateDocFromIncomingDocFail
- RunWorkflowOnAfterIncomingDocReadyForOCR subscribes to Codeunit "Send Incoming Document to OCR" OnAfterIncomingDocReadyForOCR
- RunWorkflowOnAfterIncomingDocSentToOCR subscribes to Codeunit "Send Incoming Document to OCR" OnAfterIncomingDocSentToOCR
- RunWorkflowOnAfterIncomingDocReceivedFromOCR subscribes to Codeunit "Send Incoming Document to OCR" OnAfterIncomingDocReceivedFromOCR
- RunWorkflowOnAfterIncomingDocReceivedFromDocExch subscribes to Codeunit "Doc. Exch. Service Mgt." OnAfterIncomingDocReceivedFromDocExch
- RunWorkflowOnAfterPostPurchaseDoc subscribes to Codeunit "Purch.-Post" OnAfterPostPurchaseDoc
- RunWorkflowOnAfterInsertGeneralJournalLine subscribes to Table "Gen. Journal Line" OnAfterInsertEvent
- RunWorkflowOnApproveApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnApproveApprovalRequest
- RunWorkflowOnDelegateApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnDelegateApprovalRequest
- RunWorkflowOnRejectApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnRejectApprovalRequest
- RunWorkflowOnSendOverdueNotifications subscribes to Report "Send Overdue Appr. Notif." OnSendOverdueNotifications
- RunWorkflowOnCustomerCreditLimitExceeded subscribes to Table "Sales Header" OnCustomerCreditLimitExceeded
- RunWorkflowOnCustomerCreditLimitNotExceeded subscribes to Table "Sales Header" OnCustomerCreditLimitNotExceeded
- RunWorkflowOnSendCustomerForApproval subscribes to Codeunit "Approvals Mgmt." OnSendCustomerForApproval
- RunWorkflowOnSendVendorForApproval subscribes to Codeunit "Approvals Mgmt." OnSendVendorForApproval
- RunWorkflowOnSendItemForApproval subscribes to Codeunit "Approvals Mgmt." OnSendItemForApproval
- RunWorkflowOnCancelCustomerApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelCustomerApprovalRequest
- RunWorkflowOnCancelVendorApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelVendorApprovalRequest
- RunWorkflowOnCancelItemApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelItemApprovalRequest
- RunWorkflowOnSendGeneralJournalBatchForApproval subscribes to Codeunit "Approvals Mgmt." OnSendGeneralJournalBatchForApproval
- RunWorkflowOnCancelGeneralJournalBatchApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelGeneralJournalBatchApprovalRequest
- RunWorkflowOnSendGeneralJournalLineForApproval subscribes to Codeunit "Approvals Mgmt." OnSendGeneralJournalLineForApproval
- RunWorkflowOnCancelGeneralJournalLineApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelGeneralJournalLineApprovalRequest
- RunWorkflowOnGeneralJournalBatchBalanced subscribes to Table "Gen. Journal Batch" OnGeneralJournalBatchBalanced
- RunWorkflowOnGeneralJournalBatchNotBalanced subscribes to Table "Gen. Journal Batch" OnGeneralJournalBatchNotBalanced
- RunWorkflowOnSendItemJournalBatchForApproval subscribes to Codeunit "Approvals Mgmt." OnSendItemJournalBatchForApproval
- RunWorkflowOnCancelItemJournalBatchApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelItemJournalBatchApprovalRequest
- RunWorkflowOnSendRequisitionWkshBatchForApproval subscribes to Codeunit "Approvals Mgmt." OnSendRequisitionWkshBatchForApproval
- RunWorkflowOnCancelRequisitionWkshBatchApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelRequisitionWkshBatchApprovalRequest
- RunWorkflowOnBinaryFileAttached subscribes to Table "Incoming Document Attachment" OnAttachBinaryFile
- RunWorkflowOnCustomerChanged subscribes to Table "Customer" OnAfterModifyEvent
- RunWorkflowOnCustomerRenamed subscribes to Table "Customer" OnAfterRenameEvent
- RunWorkflowOnVendorChanged subscribes to Table "Vendor" OnAfterModifyEvent
- RunWorkflowOnVendorRenamed subscribes to Table "Vendor" OnAfterRenameEvent
- RunWorkflowOnItemChanged subscribes to Table "Item" OnAfterModifyEvent
- RunWorkflowOnItemRenamed subscribes to Table "Item" OnAfterRenameEvent
- RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccess subscribes to Table "Incoming Document" OnAfterCreateGenJnlLineFromIncomingDocSuccess
- RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFail subscribes to Table "Incoming Document" OnAfterCreateGenJnlLineFromIncomingDocFail
- RunWorkflowOnSendVendorBankAccountForApproval subscribes to Codeunit "Approvals Mgmt." OnSendVendorBankAccountForApproval
- RunWorkflowOnCancelVendorBankAccountApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelVendorBankAccountApprovalRequest
- RunWorkflowOnOnSendJobQueueEntryForApproval subscribes to Codeunit "Approvals Mgmt." OnSendJobQueueEntryForApproval
- RunWorkflowOnCancelJobQueueEntryApprovalRequest subscribes to Codeunit "Approvals Mgmt." OnCancelJobQueueEntryApprovalRequest

## Procedures

- `CreateEventsLibrary()`
- `AddEventToLibrary(FunctionName: Code[128]; TableID: Integer; Description: Text[250]; RequestPageID: Integer; UsedForRecordChange: Boolean)`
- `AddEventPredecessor(FunctionName: Code[128]; PredecessorFunctionName: Code[128])`
- `RunWorkflowOnAfterInsertIncomingDocumentCode(): Code[128]`
- `RunWorkflowOnAfterReleaseIncomingDocCode(): Code[128]`
- `RunWorkflowOnAfterCreateDocFromIncomingDocSuccessCode(): Code[128]`
- `RunWorkflowOnAfterCreateDocFromIncomingDocFailCode(): Code[128]`
- `RunWorkflowOnAfterReadyForOCRIncomingDocCode(): Code[128]`
- `RunWorkflowOnAfterSendToOCRIncomingDocCode(): Code[128]`
- `RunWorkflowOnAfterReceiveFromOCRIncomingDocCode(): Code[128]`
- `RunWorkflowOnAfterReceiveFromDocExchIncomingDocCode(): Code[128]`
- `RunWorkflowOnSendPurchaseDocForApprovalCode(): Code[128]`
- `RunWorkflowOnSendIncomingDocForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelIncomingDocApprovalRequestCode(): Code[128]`
- `RunWorkflowOnCancelPurchaseApprovalRequestCode(): Code[128]`
- `RunWorkflowOnAfterReleasePurchaseDocCode(): Code[128]`
- `RunWorkflowOnSendSalesDocForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelSalesApprovalRequestCode(): Code[128]`
- `RunWorkflowOnAfterReleaseSalesDocCode(): Code[128]`
- `RunWorkflowOnAfterPostPurchaseDocCode(): Code[128]`
- `RunWorkflowOnAfterInsertGeneralJournalLineCode(): Code[128]`
- `RunWorkflowOnApproveApprovalRequestCode(): Code[128]`
- `RunWorkflowOnDelegateApprovalRequestCode(): Code[128]`
- `RunWorkflowOnRejectApprovalRequestCode(): Code[128]`
- `RunWorkflowOnSendOverdueNotificationsCode(): Code[128]`
- `RunWorkflowOnCustomerCreditLimitExceededCode(): Code[128]`
- `RunWorkflowOnCustomerCreditLimitNotExceededCode(): Code[128]`
- `RunWorkflowOnSendCustomerForApprovalCode(): Code[128]`
- `RunWorkflowOnSendVendorForApprovalCode(): Code[128]`
- `RunWorkflowOnSendItemForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelCustomerApprovalRequestCode(): Code[128]`
- `RunWorkflowOnCancelVendorApprovalRequestCode(): Code[128]`
- `RunWorkflowOnCancelItemApprovalRequestCode(): Code[128]`
- `RunWorkflowOnSendGeneralJournalBatchForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode(): Code[128]`
- `RunWorkflowOnSendGeneralJournalLineForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode(): Code[128]`
- `RunWorkflowOnGeneralJournalBatchBalancedCode(): Code[128]`
- `RunWorkflowOnGeneralJournalBatchNotBalancedCode(): Code[128]`
- `RunWorkflowOnSendItemJournalBatchForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelItemJournalBatchApprovalRequestCode(): Code[128]`
- `RunWorkflowOnSendRequisitionWkshBatchForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode(): Code[128]`
- `RunWorkflowOnBinaryFileAttachedCode(): Code[128]`
- `RunWorkflowOnCustomerChangedCode(): Code[128]`
- `RunWorkflowOnVendorChangedCode(): Code[128]`
- `RunWorkflowOnItemChangedCode(): Code[128]`
- `RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccessCode(): Code[128]`
- `RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFailCode(): Code[128]`
- `RunWorkflowOnSendVendorBankAccountForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelVendorBankAccountApprovalRequestCode(): Code[128]`
- `RunWorkflowOnSendJobQueueEntryForApprovalCode(): Code[128]`
- `RunWorkflowOnCancelJobQueueEntryApprovalRequestCode(): Code[128]`

Plus 2 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) (48 calls: `HandleEventWithxRecAndRefreshRec → HandleEventWithxRec`, `RunWorkflowOnAfterCreateDocFromIncomingDocFail → HandleEvent`, `RunWorkflowOnAfterCreateDocFromIncomingDocSuccess → HandleEvent`, …)
- [Codeunit 19 "Gen. Jnl.-Post Preview"](../codeunit/19.md) (2 calls: `RunWorkflowOnItemChanged → IsActive`, `RunWorkflowOnItemRenamed → IsActive`)
- [Codeunit 150 "System Initialization"](../codeunit/150.md) (1 call: `AddEventToLibrary → IsInProgress`)

## Called by

- [Codeunit 1502 "Workflow Setup"](../codeunit/1502.md) (98 calls: `InitWorkflow → CreateEventsLibrary`, `InsertCustomerApprovalWorkflowDetails → RunWorkflowOnCancelCustomerApprovalRequestCode`, `InsertCustomerApprovalWorkflowDetails → RunWorkflowOnSendCustomerForApprovalCode`, …)
- [Codeunit 1521 "Workflow Response Handling"](../codeunit/1521.md) (39 calls: `AddResponsePredecessors → RunWorkflowOnAfterPostPurchaseDocCode`, `AddResponsePredecessors → RunWorkflowOnAfterReadyForOCRIncomingDocCode`, `AddResponsePredecessors → RunWorkflowOnAfterReleasePurchaseDocCode`, …)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (22 calls: `CheckCustomerApprovalsWorkflowEnabled → RunWorkflowOnCustomerChangedCode`, `CheckCustomerApprovalsWorkflowEnabled → RunWorkflowOnSendCustomerForApprovalCode`, `CheckGeneralJournalBatchApprovalsWorkflowEnabled → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, …)
- [Codeunit 1540 "Workflow Webhook Setup"](../codeunit/1540.md) (20 calls: `CreateCustomerApprovalWorkflow → RunWorkflowOnSendCustomerForApprovalCode`, `CreateGeneralJournalBatchApprovalWorkflow → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `CreateGeneralJournalBatchApprovalWorkflowSteps → RunWorkflowOnGeneralJournalBatchBalancedCode`, …)
- [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) (11 calls: `AddWorkflowWebhookEventHierarchiesToLibrary → AddEventPredecessor`, `AddWorkflowWebhookEventHierarchiesToLibrary → RunWorkflowOnSendCustomerForApprovalCode`, `AddWorkflowWebhookEventHierarchiesToLibrary → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, …)
- [Codeunit 1542 "Workflow Webhook Responses"](../codeunit/1542.md) (9 calls: `AddWorkflowWebhookEventResponseCombinationsToLibrary → RunWorkflowOnSendCustomerForApprovalCode`, `AddWorkflowWebhookEventResponseCombinationsToLibrary → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `AddWorkflowWebhookEventResponseCombinationsToLibrary → RunWorkflowOnSendGeneralJournalLineForApprovalCode`, …)
- [Codeunit 1804 "Approval Workflow Setup Mgt."](../codeunit/1804.md) (9 calls: `ApplyCustomerWizardUserInput → RunWorkflowOnCancelCustomerApprovalRequestCode`, `ApplyCustomerWizardUserInput → RunWorkflowOnCustomerChangedCode`, `ApplyCustomerWizardUserInput → RunWorkflowOnSendCustomerForApprovalCode`, …)
- [Codeunit 6280 "Sust. Workflow Event Handling"](../codeunit/6280.md) (8 calls: `AddWorkflowEventPredecessorsToLibrary → AddEventPredecessor`, `AddWorkflowEventPredecessorsToLibrary → RunWorkflowOnApproveApprovalRequestCode`, `AddWorkflowEventPredecessorsToLibrary → RunWorkflowOnDelegateApprovalRequestCode`, …)
- [Table 469 "Workflow Webhook Subscription"](../table/469.md) (7 calls: `CreateEventConditions → RunWorkflowOnSendCustomerForApprovalCode`, `CreateEventConditions → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `CreateEventConditions → RunWorkflowOnSendGeneralJournalLineForApprovalCode`, …)
- [Page 256 "Payment Journal"](../page/256.md) (3 calls: `OnAfterGetCurrRecord → RunWorkflowOnSendGeneralJournalLineForApprovalCode`, `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalLineForApprovalCode`)
- [Codeunit 20423 "Qlty. Workflow Setup"](../codeunit/20423.md) (2 calls: `HandleOnAddWorkflowEventPredecessorsToLibrary → AddEventPredecessor`, `HandleOnAddWorkflowEventsToLibrary → AddEventToLibrary`)
- [Page 21 "Customer Card"](../page/21.md) (2 calls: `OnOpenPageFunc → RunWorkflowOnCustomerChangedCode`, `OnOpenPageFunc → RunWorkflowOnSendCustomerForApprovalCode`)
- [Page 22 "Customer List"](../page/22.md) (2 calls: `SetWorkflowManagementEnabledState → RunWorkflowOnCustomerChangedCode`, `SetWorkflowManagementEnabledState → RunWorkflowOnSendCustomerForApprovalCode`)
- [Page 255 "Cash Receipt Journal"](../page/255.md) (2 calls: `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalLineForApprovalCode`)
- [Page 30 "Item Card"](../page/30.md) (2 calls: `OnInit → RunWorkflowOnItemChangedCode`, `OnInit → RunWorkflowOnSendItemForApprovalCode`)
- [Page 31 "Item List"](../page/31.md) (2 calls: `SetWorkflowManagementEnabledState → RunWorkflowOnItemChangedCode`, `SetWorkflowManagementEnabledState → RunWorkflowOnSendItemForApprovalCode`)
- [Page 39 "General Journal"](../page/39.md) (2 calls: `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalBatchForApprovalCode`, `SetApprovalStateForBatch → RunWorkflowOnSendGeneralJournalLineForApprovalCode`)
- [Codeunit 1536 "Approvals Journal Line Request"](../codeunit/1536.md) (1 call: `OnRun → RunWorkflowOnSendGeneralJournalLineForApprovalCode`)
- [Page 1542 "WF Event/Event Comb. Matrix"](../page/1542.md) (1 call: `UpdateMatrixData → AddEventPredecessor`)
- [Page 26 "Vendor Card"](../page/26.md) (1 call: `IsIncomingDocApprovalsWorkflowEnabled → RunWorkflowOnSendIncomingDocForApprovalCode`)
- [Table 1520 "Workflow Event"](../table/1520.md) (1 call: `MakeDependentOnAllEvents → AddEventPredecessor`)
- [Table 18 "Customer"](../table/18.md) (1 call: `CreateNewCustomer → RunWorkflowOnCustomerChanged`)
- [Table 23 "Vendor"](../table/23.md) (1 call: `CreateNewVendor → RunWorkflowOnVendorChanged`)
- [Table 233 "Item Journal Batch"](../table/233.md) (1 call: `SetApprovalStateForBatch → RunWorkflowOnSendItemJournalBatchForApprovalCode`)
- [Table 245 "Requisition Wksh. Name"](../table/245.md) (1 call: `SetApprovalStateForWkshBatch → RunWorkflowOnSendRequisitionWkshBatchForApprovalCode`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC28-29

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: "Workflow Event Handling")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
