---
id: object/table/1504
type: object
title: Table 1504 "Workflow Step Instance"
summary: Table 1504 "Workflow Step Instance" in Base Application (System.Automation). 19 fields, 8 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC26, BC30.
tier: official
language: en
tags:
  - table
  - 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: f15c94b8c0290c151ac69ed5c726d7433acb2d83933b46909f0957acb66f710b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/Workflow/WorkflowStepInstance.Table.al
    title: src/Layers/W1/BaseApp/System/Workflow/WorkflowStepInstance.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-use-workflows
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/general-business-functionality/workflows/use-approval-workflows
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11847
object_type: table
object_id: 1504
name: Workflow Step Instance
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"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 19
  procedures: 12
  events: 0
  subscribers: 0
relations:
  out: 7
  referenced_by: 0
  pages: 3
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Table 1504 "Workflow Step Instance"

> Table 1504 "Workflow Step Instance" in Base Application (System.Automation). 19 fields, 8 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC26, BC30.

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

Learn documents this table through its pages: [Page 1504 "Workflow Step Instances"](../page/1504.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Workflow Step Instance |
| DataClassification | CustomerContent |
| Permissions | tabledata Workflow = r, tabledata "Workflow Event" = r, TableData "Workflow Step Instance" = rd, TableData "Workflow - Table Relation" = r, TableData "Workflow Table Relation Value" = rimd, TableData "Workflow Rule" = rd, TableData "Workflow Step Instance Archive" = rimd |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | ID | Guid | Specifies the ID of the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> |  |
| 2 | Workflow Code | Code[20] | Specifies the workflow that the workflow step instance belongs to. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation [Table 1502 "Workflow Step"](../table/1502.md) ("Workflow Step"."Workflow Code") |
| 3 | Workflow Step ID | Integer | Specifies the ID of workflow step in the workflow that the workflow step instance belongs to. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation [Table 1502 "Workflow Step"](../table/1502.md) ("Workflow Step".ID where("Workflow Code" = field("Workflow Code"))) |
| 4 | Description | Text[100] | Specifies the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> |  |
| 9 | Entry Point | Boolean | Specifies the workflow step that starts the workflow. The first workflow step is always of type Entry Point. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> |  |
| 11 | Record ID | RecordID | — |  |
| 12 | Created Date-Time | DateTime | Specifies the date and time when the workflow step instance was created. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | not editable |
| 13 | Created By User ID | Code[50] | Specifies the user who created the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation User."User Name"; not editable; DataClassification EndUserIdentifiableInformation |
| 14 | Last Modified Date-Time | DateTime | Specifies the date and time when a user last participated in the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | not editable |
| 15 | Last Modified By User ID | Code[50] | Specifies the user who last participated in the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation User."User Name"; not editable; DataClassification EndUserIdentifiableInformation |
| 17 | Status | Option | Specifies the status of the workflow step instance. Active means that the step instance in ongoing. Completed means that the workflow step instance is done. Ignored means that the workflow step instance was skipped in favor of another path. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | OptionCaption: Inactive,Active,Completed,Ignored,Processing |
| 18 | Previous Workflow Step ID | Integer | Specifies the step that you want to precede the step that you are specifying on the line. You use this field to specify branching of steps when one of multiple possible events does not occur and you want the following step to specify another possible event as a branch of the previous step. In this c... <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> |  |
| 19 | Next Workflow Step ID | Integer | Specifies another workflow step than the next one in the sequence that you want to start, for example, because the event on the workflow step failed to meet a condition. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> |  |
| 21 | Type | Option | Specifies if the workflow step instance is an event, a response, or a sub-workflow. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | OptionCaption: Event,Response |
| 22 | Function Name | Code[128] | Specifies the name of the function that is used by the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation [Table 1520 "Workflow Event"](../table/1520.md), [Table 1521 "Workflow Response"](../table/1521.md) (if (Type = const(Event)) "Workflow Event" else if (Type = const(Response)) "Workflow Response") |
| 23 | Argument | Guid | Specifies the values of the parameters that are required by the workflow step instance. <small>via [Page 1504 "Workflow Step Instances"](../page/1504.md)</small> | TableRelation [Table 1523 "Workflow Step Argument"](../table/1523.md) ("Workflow Step Argument" where(Type = field(Type))) |
| 30 | Original Workflow Code | Code[20] | — | TableRelation [Table 1502 "Workflow Step"](../table/1502.md) ("Workflow Step"."Workflow Code") |
| 31 | Original Workflow Step ID | Integer | — | TableRelation [Table 1502 "Workflow Step"](../table/1502.md) ("Workflow Step".ID where("Workflow Code" = field("Original Workflow Code"))) |
| 32 | Sequence No. | Integer | — |  |

## Keys

- Key1: ID, Workflow Code, Workflow Step ID (clustered)
- Key2: Sequence No.
- Key3: Workflow Code, ID, Workflow Step ID
- Key4: Function Name
- Key5: Record ID
- Key6: Type, Status, Function Name, Previous Workflow Step ID

## Procedures

- `MoveForward(Variant: Variant)`
- `TableRelationValuesExist(RecRef: RecordRef): Boolean`
- `SetTableRelationValues(RecRef: RecordRef)`
- `MatchesRecordValues(RecRef: RecordRef): Boolean`
- `ArchiveActiveInstances(Workflow: Record Workflow)`
- `ToString(): Text`
- `FindWorkflowRules(var WorkflowRule: Record "Workflow Rule"): Boolean`
- `BuildTempWorkflowTree(WorkflowInstanceId: Guid)`

Plus 4 local procedures.

## Triggers

OnDelete, OnInsert, OnModify

## Relations

- Original Workflow Code: TableRelation [Table 1502 "Workflow Step"](../table/1502.md)
- Original Workflow Step ID: TableRelation [Table 1502 "Workflow Step"](../table/1502.md)
- Workflow Code: TableRelation [Table 1502 "Workflow Step"](../table/1502.md)
- Workflow Step ID: TableRelation [Table 1502 "Workflow Step"](../table/1502.md)
- Function Name: TableRelation [Table 1520 "Workflow Event"](../table/1520.md) (conditional)
- Function Name: TableRelation [Table 1521 "Workflow Response"](../table/1521.md) (conditional)
- Argument: TableRelation [Table 1523 "Workflow Step Argument"](../table/1523.md)

## Pages and codeunits on this table

- [Page 1504 "Workflow Step Instances"](../page/1504.md) (source table)
- [Page 1528 "Workflow Status FactBox"](../page/1528.md) (source table)
- [Page 1529 "Workflow Overview"](../page/1529.md) (source table)
- [Codeunit 1546 "Workflow Webhook Notify Task"](../codeunit/1546.md) (codeunit runs on it)

## 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) (1 call: `MoveForward → UpdateStatus`)
- [Codeunit 1550 "Record Restriction Mgt."](../codeunit/1550.md) (1 call: `RemoveRecordRestrictions → AllowRecordUsage`)

## Recent changes

- 2026-09-25 [#11847 Use matching key for workflow event step instance lookup](../../changes/bcapps/11847.md) (main, BC30, performance)

## Across versions

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

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: "table", object_name: "Workflow Step Instance")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
