---
title: "Codeunit 1502 Workflow Setup"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/1502-workflow-setup/
type: codeunit
id: 1502
name: "Workflow Setup"
app: "Base Application"
namespace: System.Automation
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/1502-workflow-setup/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 1502 Workflow Setup

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/1502-workflow-setup/

| | |
| --- | --- |
| App | Base Application |
| Namespace | System.Automation |
| Versions | 17-28 |
| Source file | System/Workflow/WorkflowSetup.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| InitWorkflow | () | - | public | 17-28 | - | - |
| InsertWorkflowCategories | () | - | public | 17-28 | - | - |
| InsertWorkflowTemplate | (var Record Workflow, Code[17], Text[100], Code[20]) | - | public | 17-28 | - | - |
| InsertApprovalsTableRelations | () | - | public | 17-28 | - | - |
| InsertIncomingDocumentApprovalWorkflowTemplate | () | - | public | 17-28 | - | - |
| InsertOverdueApprovalsWorkflow | () | Code[20] | public | 17-28 | - | - |
| InsertCustomerApprovalWorkflow | () | - | public | 17-28 | - | - |
| InsertVendorApprovalWorkflow | () | - | public | 17-28 | - | - |
| InsertItemApprovalWorkflow | () | - | public | 17-28 | - | - |
| IncomingDocumentWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| IncomingDocumentApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| IncomingDocumentOCRWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| IncomingDocumentToGenJnlLineOCRWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseInvoiceWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseInvoiceApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseBlanketOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseCreditMemoApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseQuoteApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| PurchaseReturnOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesInvoiceApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesBlanketOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesCreditMemoApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesQuoteApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesReturnOrderApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| OverdueNotificationsWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesInvoiceCreditLimitApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SalesOrderCreditLimitApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| CustomerWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| CustomerCreditLimitChangeApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| VendorWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| ItemWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| ItemUnitPriceChangeApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| GeneralJournalBatchApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| GeneralJournalLineApprovalWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| SendToOCRWorkflowCode | () | Code[17] | public | 17-28 | - | - |
| InsertDocApprovalWorkflowSteps | (Record Workflow, Text, Code[128], Text, Code[128], Record Workflow Step Argument, Boolean) | - | public | 17-28 | - | - |
| InsertRecApprovalWorkflowSteps | (Record Workflow, Text, Code[128], Code[128], Code[128], Code[128], Record Workflow Step Argument, Boolean, Boolean) | - | public | 17-28 | - | - |
| InsertRecChangedApprovalWorkflowSteps | (Record Workflow, Option, Code[128], Code[128], Code[128], var Record Workflow Step Argument, Integer, Integer, Text) | - | public | 17-28 | - | - |
| InsertGenJnlBatchApprovalWorkflowSteps | (Record Workflow, Text, Code[128], Code[128], Code[128], Code[128], Record Workflow Step Argument, Boolean) | - | public | 17-28 | - | - |
| InsertGenJnlLineApprovalWorkflow | (var Record Workflow, Text, Option, Option, Code[20], Code[50], DateFormula) | - | public | 17-20 | Pending 18.0 | Replaced by InsertGenJnlLineApprovalWorkflowSteps(). |
| InsertPurchaseDocumentApprovalWorkflow | (var Record Workflow, Option, Option, Option, Code[20], DateFormula) | - | public | 17-20 | Pending 18.0 | Replaced by InsertPurchaseDocumentApprovalWorkflowSteps(). |
| InsertSalesDocumentApprovalWorkflow | (var Record Workflow, Option, Option, Option, Code[20], DateFormula) | - | public | 17-20 | Pending 18.0 | Replaced by InsertSalesDocumentApprovalWorkflowSteps(). |
| InsertSalesDocumentCreditLimitApprovalWorkflow | (var Record Workflow, Option, Option, Option, Code[20], DateFormula) | - | public | 17-20 | Pending 18.0 | Replaced by InsertSalesDocumentCreditLimitApprovalWorkflowSteps(). |
| InsertEntryPointEventStep | (Record Workflow, Code[128]) | Integer | public | 17-28 | - | - |
| InsertEventStep | (Record Workflow, Code[128], Integer) | Integer | public | 17-28 | - | - |
| InsertResponseStep | (Record Workflow, Code[128], Integer) | Integer | public | 17-28 | - | - |
| InsertStep | (var Record Workflow Step, Code[20], Option, Code[128]) | - | public | 17-28 | - | - |
| MarkWorkflowAsTemplate | (var Record Workflow) | - | public | 17-28 | - | - |
| GetSequenceNumber | (Record Workflow, Integer) | Integer | public | 17-28 | - | - |
| InsertTableRelation | (Integer, Integer, Integer, Integer) | - | public | 17-28 | - | - |
| InsertWorkflowCategory | (Code[20], Text[100]) | - | public | 17-28 | - | - |
| InsertEventArgument | (Integer, Text) | - | public | 17-28 | - | - |
| GetWorkflowTemplateCode | (Code[17]) | Code[20] | public | 17-28 | - | - |
| GetWorkflowTemplateToken | () | Code[3] | public | 17-28 | - | - |
| GetWorkflowWizardCode | (Code[17]) | Code[20] | public | 17-28 | - | - |
| GetWorkflowWizardToken | () | Code[3] | public | 17-28 | - | - |
| SetTemplateForWorkflowStep | (Record Workflow, Code[128]) | - | public | 17-28 | - | - |
| SetCustomTemplateToken | (Code[3]) | - | public | 17-28 | - | - |
| PopulateWorkflowStepArgument | (var Record Workflow Step Argument, Option, Option, Integer, Code[20], DateFormula, Boolean) | - | public | 17-23 | Pending 18.0 | Replaced by InitWorkflowStepArgument(). |
| BuildIncomingDocumentTypeConditions | (Option) | Text | public | 17-28 | Pending 28.0 | Replaced by procedure BuildIncomingDocumentStatusConditions() |
| BuildIncomingDocumentOCRTypeConditions | (Option) | Text | public | 17-28 | - | - |
| BuildPurchHeaderTypeConditions | (Option, Option) | Text | public | 17-20 | Pending 18.0 | Replaced by BuildPurchHeaderTypeConditionsText(). |
| BuildSalesHeaderTypeConditions | (Option, Option) | Text | public | 17-20 | Pending 18.0 | Replaced by BuildSalesHeaderTypeConditionsText(). |
| BuildCustomerTypeConditions | () | Text | public | 17-28 | - | - |
| BuildVendorTypeConditions | () | Text | public | 17-28 | - | - |
| BuildItemTypeConditions | () | Text | public | 17-28 | - | - |
| BuildGeneralJournalBatchTypeConditionsFromRec | (var Record Gen. Journal Batch) | Text | public | 17-28 | - | - |
| BuildGeneralJournalLineTypeConditions | (var Record Gen. Journal Line) | Text | public | 17-28 | - | - |
| CreateJobQueueEntry | (Option, Integer, Text[250], DateTime, Integer) | - | public | 17-28 | - | - |
| Encode | (Text) | Text | public | 17-28 | - | - |
| GetGeneralJournalBatchIsNotBalancedMsg | () | Text[250] | public | 17-28 | - | - |
| InsertGenJnlLineApprovalWorkflowSteps | (var Record Workflow, Text, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Code[20], Code[50], DateFormula) | - | public | 18-28 | - | - |
| InsertPurchaseDocumentApprovalWorkflowSteps | (var Record Workflow, Enum Purchase Document Type, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Code[20], DateFormula) | - | public | 18-28 | - | - |
| InsertSalesDocumentApprovalWorkflowSteps | (var Record Workflow, Enum Sales Document Type, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Code[20], DateFormula) | - | public | 18-28 | - | - |
| InsertSalesDocumentCreditLimitApprovalWorkflowSteps | (var Record Workflow, Enum Sales Document Type, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Code[20], DateFormula) | - | public | 18-28 | - | - |
| SetNextStep | (Record Workflow, Integer, Integer) | - | public | 18-28 | - | - |
| InsertEventRule | (Integer, Integer, Option) | - | public | 18-28 | - | - |
| InsertNotificationArgument | (Integer, Boolean, Code[50], Integer, Text[250]) | - | public | 18-28 | - | - |
| InsertPmtLineCreationArgument | (Integer, Code[10], Code[10]) | - | public | 18-28 | - | - |
| InsertApprovalArgument | (Integer, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Code[20], Code[50], DateFormula, Boolean) | - | public | 18-28 | - | - |
| InsertMessageArgument | (Integer, Text[250]) | - | public | 18-28 | - | - |
| InsertStepArgument | (var Record Workflow Step Argument, Integer) | - | public | 18-28 | - | - |
| InitWorkflowStepArgument | (var Record Workflow Step Argument, Enum Workflow Approver Type, Enum Workflow Approver Limit Type, Integer, Code[20], DateFormula, Boolean) | - | public | 18-28 | - | - |
| BuildNoPendingApprovalsConditions | () | Text | public | 18-28 | - | - |
| BuildPendingApprovalsConditions | () | Text | public | 18-28 | - | - |
| BuildPurchHeaderTypeConditionsText | (Enum Purchase Document Type, Enum Purchase Document Status) | Text | public | 18-28 | - | - |
| BuildSalesHeaderTypeConditionsText | (Enum Sales Document Type, Enum Sales Document Status) | Text | public | 18-28 | - | - |
| ResetWorkflowTemplates | () | - | internal | 22-28 | - | - |
| JobQueueEntryWorkflowCode | () | Code[17] | public | 22-28 | - | - |
| ItemJournalBatchApprovalWorkflowCode | () | Code[17] | public | 28 | - | - |
| RequisitionWkshBatchApprovalWorkflowCode | () | Code[17] | public | 28 | - | - |
| InsertItemJnlBatchApprovalWorkflowSteps | (Record Workflow, Text, Code[128], Code[128], Code[128], Code[128], Record Workflow Step Argument, Boolean) | - | public | 28 | - | - |
| InsertRequisitionWkshBatchApprovalWorkflowSteps | (Record Workflow, Text, Code[128], Code[128], Code[128], Code[128], Record Workflow Step Argument, Boolean) | - | public | 28 | - | - |
| BuildIncomingDocumentStatusConditions | (Enum Incoming Document Status) | Text | public | 28 | - | - |
| BuildItemJournalBatchTypeConditionsFromRec | (var Record Item Journal Batch) | Text | public | 28 | - | - |
| BuildRequisitionWkshNameTypeConditionsFromRec | (var Record Requisition Wksh. Name) | Text | public | 28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnInsertWorkflowTemplates | () | 17-28 | - | - |
| Integration event | OnAddWorkflowCategoriesToLibrary | () | 17-28 | - | - |
| Integration event | OnAfterInitWorkflowTemplates | () | 17-28 | - | - |
| Integration event | OnAfterInsertApprovalsTableRelations | () | 17-28 | - | - |
| Internal event | OnAllowEditOfWorkflowTemplates | (var Boolean) | 22-28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
