---
id: object/table/5401
type: object
title: Table 5401 "Item Variant"
summary: Table 5401 "Item Variant" in Base Application (Microsoft.Inventory.Item). 10 fields, 1 public procedures, 5 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 6fca80b70343ca11caf57c185fbad0593c36a79cceded29365057cca1c53d937
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al
    title: src/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_itemvariant_create
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_itemvariant_delete
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_itemvariant_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_itemvariant_update
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_itemVariant
    - https://learn.microsoft.com/dynamics365/business-central/inventory-how-categorize-items
    - https://learn.microsoft.com/dynamics365/business-central/inventory-item-variants
    - https://learn.microsoft.com/dynamics365/business-central/inventory-how-availability-overview
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/inventory
    - topic/business-central/business-functionality/set-up-business-central/set-up-inventory
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 5401
name: Item Variant
namespace: Microsoft.Inventory.Item
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 10
  procedures: 7
  events: 5
  subscribers: 0
relations:
  out: 2
  referenced_by: 158
  pages: 7
  extended_by: 1
  event_subscribers: 8
  calls: 1
  called_by: 0
  implements: 0
---

# Table 5401 "Item Variant"

> Table 5401 "Item Variant" in Base Application (Microsoft.Inventory.Item). 10 fields, 1 public procedures, 5 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.

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

Learn documents this table through its pages: [Page 30052 "APIV2 - Item Variants"](../page/30052.md) (5 Learn pages), [Page 5401 "Item Variants"](../page/5401.md) (2), [Page 5415 "Item Avail. by Variant Lines"](../page/5415.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Item Variant |
| DataClassification | CustomerContent |

## 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 | Code | Code[10] | Specifies a code to identify the variant. | NotBlank |
| 2 | Item No. | Code[20] | Specifies the number of the item card from which you opened the Item Variant Translations window. | TableRelation [Table 27 "Item"](../table/27.md) |
| 3 | Description | Text[100] | Specifies text that describes the item variant. |  |
| 4 | Description 2 | Text[50] | Specifies the item variant in more detail than the Description field. |  |
| 5 | Item Id | Guid | — | TableRelation Item.SystemId |
| 54 | Blocked | Boolean | Specifies that the related record is blocked from being posted in transactions, for example an item variant that is placed in quarantine. |  |
| 92 | Picture | MediaSet | Specifies the picture that has been inserted for the item variant. |  |
| 8003 | Sales Blocked | Boolean | Specifies that the item variant cannot be entered on sales documents, except return orders and credit memos, and journals. |  |
| 8004 | Purchasing Blocked | Boolean | Specifies that the item variant cannot be entered on purchase documents, except return orders and credit memos, and journals. |  |
| 8010 | Service Blocked | Boolean | Specifies that the item variant cannot be entered on service items, service contracts and service documents, except credit memos. |  |

## Keys

- Key1: Item No., Code (clustered)
- Key2: Code
- Key3: Description
- Key4: Item Id, Code

## Events published

- `OnAfterOnDelete(ItemVariant: Record "Item Variant")` (integration)
  - subscribers: [Codeunit 5920 "ServItemManagement"](../codeunit/5920.md) ItemVariantOnAfterOnDelete
- `OnDeleteOnAfterCheck(var ItemVariant: Record "Item Variant")` (integration)
  - subscribers: [Codeunit 99000795 "Mfg. Item Integration"](../codeunit/99000795.md) ItemVariantOnDeleteOnAfterCheck
- `OnAfterDeleteItemVariantPicture(var ItemVariant: Record "Item Variant")` (integration)
- `OnAfterTakeNewPicture(var ItemVariant: Record "Item Variant"; IsPictureAdded: Boolean)` (integration)
- `OnImportFromDeviceOnAfterModify(var ItemVariant: Record "Item Variant")` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 7006 "Price Helper - V16"](../codeunit/7006.md) AfterDeleteItemVariant, [Codeunit 7019 "Price Helper - V15"](../codeunit/7019.md) AfterDeleteItemVariant
- OnAfterRenameEvent: [Codeunit 7006 "Price Helper - V16"](../codeunit/7006.md) AfterRenameItemVariant
- OnBeforeInsertEvent: [Codeunit 5152 "API - Update Referenced Fields"](../codeunit/5152.md) UpdateReferencedIdsItemVariantOnInsert
- OnBeforeRenameEvent: [Codeunit 5152 "API - Update Referenced Fields"](../codeunit/5152.md) UpdateReferencedIdsItemVariantOnRename, [Codeunit 99000795 "Mfg. Item Integration"](../codeunit/99000795.md) OnBeforeRenameItemVariant

## Procedures

- `UpdateReferencedIds()`

Plus 1 local procedures.

## Triggers

OnInsert, OnRename, OnDelete

## Relations

- lookup page [Page 5401 "Item Variants"](../page/5401.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)

## Referenced by

158 fields in 146 objects relate to this table (TableRelation or CalcFormula).

- [Table 246 "Requisition Line"](../table/246.md): Original Variant Code, Variant Code
- [Table 32 "Item Ledger Entry"](../table/32.md): Originally Ordered Var. Code, Variant Code
- [Table 37 "Sales Line"](../table/37.md): Originally Ordered Var. Code, Variant Code
- [Table 5108 "Sales Line Archive"](../table/5108.md): Originally Ordered Var. Code, Variant Code
- [Table 5407 "Prod. Order Component"](../table/5407.md): Original Variant Code, Variant Code
- [Table 5476 "Sales Invoice Line Aggregate"](../table/5476.md): Variant Code, Variant Id
- [Table 5478 "Purch. Inv. Line Aggregate"](../table/5478.md): Variant Code, Variant Id
- [Table 5715 "Item Substitution"](../table/5715.md): Substitute Variant Code, Variant Code
- [Table 5907 "Service Ledger Entry"](../table/5907.md): Variant Code, Variant Code (Serviced)
- [Table 5908 "Warranty Ledger Entry"](../table/5908.md): Variant Code, Variant Code (Serviced)
- [Table 753 "Standard Item Journal Line"](../table/753.md): Originally Ordered Var. Code, Variant Code
- [Table 83 "Item Journal Line"](../table/83.md): Originally Ordered Var. Code, Variant Code
- [Table 1003 "Job Planning Line"](../table/1003.md): Variant Code
- [Table 1013 "Job Item Price"](../table/1013.md): Variant Code
- [Table 111 "Sales Shipment Line"](../table/111.md): Variant Code
- [Table 113 "Sales Invoice Line"](../table/113.md): Variant Code
- [Table 115 "Sales Cr.Memo Line"](../table/115.md): Variant Code
- [Table 121 "Purch. Rcpt. Line"](../table/121.md): Variant Code
- [Table 123 "Purch. Inv. Line"](../table/123.md): Variant Code
- [Table 125 "Purch. Cr. Memo Line"](../table/125.md): Variant Code
- [Table 1304 "Sales Price and Line Disc Buff"](../table/1304.md): Variant Code
- [Table 1315 "Purch. Price Line Disc. Buff."](../table/1315.md): Variant Code
- [Table 169 "Job Ledger Entry"](../table/169.md): Variant Code
- [Table 171 "Standard Sales Line"](../table/171.md): Variant Code
- [Table 174 "Standard Purchase Line"](../table/174.md): Variant Code
- [Table 20405 "Qlty. Inspection Header"](../table/20405.md): Source Variant Code
- [Table 20500 "Subcontractor Price"](../table/20500.md): Variant Code
- [Table 20560 "Subcontractor WIP Ledger Entry"](../table/20560.md): Variant Code
- [Table 210 "Job Journal Line"](../table/210.md): Variant Code
- [Table 27 "Item"](../table/27.md): Variant Filter
- [Table 281 "Phys. Inventory Ledger Entry"](../table/281.md): Variant Code
- [Table 2900 "Forecast Item Variant Loc"](../table/2900.md): Variant Filter
- [Table 30 "Item Translation"](../table/30.md): Variant Code
- [Table 30119 "Shpfy Order Line"](../table/30119.md): Variant Code
- [Table 30129 "Shpfy Variant"](../table/30129.md): Variant Code
- [Table 307 "Inventory Buffer"](../table/307.md): Variant Code
- [Table 336 "Tracking Specification"](../table/336.md): Variant Code
- [Table 337 "Reservation Entry"](../table/337.md): Variant Code
- [Table 346 "Reservation Wksh. Line"](../table/346.md): Variant Code
- [Table 39 "Purchase Line"](../table/39.md): Variant Code
- [Table 5110 "Purchase Line Archive"](../table/5110.md): Variant Code
- [Table 5137 "Job Planning Line Archive"](../table/5137.md): Variant Code
- [Table 520 "Availability Info. Buffer"](../table/520.md): Variant Code Filter
- [Table 5405 "Production Order"](../table/5405.md): Variant Code
- [Table 5406 "Prod. Order Line"](../table/5406.md): Variant Code
- [Table 5530 "Inventory Event Buffer"](../table/5530.md): Variant Code
- [Table 5531 "Inventory Page Data"](../table/5531.md): Variant Code
- [Table 5700 "Stockkeeping Unit"](../table/5700.md): Variant Code
- [Table 5701 "Stockkeeping Unit Comment Line"](../table/5701.md): Variant Code
- [Table 5741 "Transfer Line"](../table/5741.md): Variant Code
- and 96 more objects (96 fields): data/code/relations/29.json

## Pages and codeunits on this table

- [Page 20052 "APIV1 - Item Variants"](../page/20052.md) (source table)
- [Page 30052 "APIV2 - Item Variants"](../page/30052.md) (source table)
- [Page 409 "Item Variant Picture"](../page/409.md) (source table)
- [Page 5401 "Item Variants"](../page/5401.md) (source table)
- [Page 5405 "Item Variant Card"](../page/5405.md) (source table)
- [Page 5415 "Item Avail. by Variant Lines"](../page/5415.md) (source table)
- [Page 7511 "Item Variant Attribute Editor"](../page/7511.md) (source table)

## Extended by

- [Table extension 99000753 "Mfg. Item Variant"](../tableextension/99000753.md)

## 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 7500 "Item Attribute Management"](../codeunit/7500.md) (1 call: `OnInsert → InheritAttributesFromItem`)

## Across versions

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

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