---
title: "Codeunit 5720 Item Reference Management"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/5720-item-reference-management/
type: codeunit
id: 5720
name: "Item Reference Management"
app: "Base Application"
namespace: Microsoft.Inventory.Item.Catalog
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/5720-item-reference-management/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 5720 Item Reference Management

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/5720-item-reference-management/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Inventory.Item.Catalog |
| Versions | 17-28 |
| Source file | Inventory/Item/Catalog/ItemReferenceManagement.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| EnterSalesItemReference | (var Record Sales Line) | - | public | 17-28 | - | - |
| ReferenceLookupSalesItem | (var Record Sales Line, var Record Item Reference, Boolean) | - | public | 17-28 | - | - |
| EnterPurchaseItemReference | (var Record Purchase Line) | - | public | 17-28 | - | - |
| ReferenceLookupPurchaseItem | (var Record Purchase Line, var Record Item Reference, Boolean) | - | public | 17-28 | - | - |
| InsertItemReference | (Record Item Vendor) | - | public | 17-28 | - | - |
| DeleteItemReference | (Record Item Vendor) | - | public | 17-28 | - | - |
| UpdateItemReference | (Record Item Vendor, Record Item Vendor) | - | public | 17-28 | - | - |
| SalesReferenceNoLookup | (var Record Sales Line) | - | public | 17-28 | - | - |
| SalesReferenceNoLookup | (var Record Sales Line, Record Sales Header) | - | public | 17-28 | - | - |
| ValidateSalesReferenceNo | (var Record Sales Line, Record Sales Header, Boolean, Integer) | - | public | 17-28 | - | - |
| ValidateSalesReferenceNo | (var Record Sales Line, Record Sales Header, Record Item Reference, Boolean, Integer) | - | public | 17-28 | - | - |
| PurchaseReferenceNoLookup | (var Record Purchase Line) | - | public | 17-28 | - | - |
| PurchaseReferenceNoLookup | (var Record Purchase Line, Record Purchase Header) | - | public | 17-28 | - | - |
| ValidatePurchaseReferenceNo | (var Record Purchase Line, Record Purchase Header, Record Item Reference, Boolean, Integer) | - | public | 17-28 | - | - |
| IsEnabled | () | Boolean | public | 17-21 | Pending 19.0 | Not used anymore, item reference is always enabled |
| GetFeatureKey | () | Text[50] | public | 17-21 | Pending 19.0 | Not used anymore, item reference is always enabled |
| FindOrSelectFromItemReferenceList | (var Record Item Reference, Boolean, Code[20], Code[50], Code[30], Enum Item Reference Type) | - | public | 20-28 | - | - |
| PhysicalInventoryOrderReferenceNoLookup | (var Record Phys. Invt. Order Line) | - | public | 22-28 | - | - |
| ValidatePhysicalInventoryOrderReferenceNo | (var Record Phys. Invt. Order Line, Record Item Reference, Boolean, Integer) | - | public | 22-28 | - | - |
| ReferenceLookupPhysicalInventoryOrderItem | (var Record Phys. Invt. Order Line, var Record Item Reference, Boolean) | - | public | 22-28 | - | - |
| ItemJournalReferenceNoLookup | (var Record Item Journal Line) | - | public | 22-28 | - | - |
| ValidateItemJournalReferenceNo | (var Record Item Journal Line, Record Item Reference, Boolean, Integer) | - | public | 22-28 | - | - |
| ReferenceLookupItemJournalItem | (var Record Item Journal Line, var Record Item Reference, Boolean) | - | public | 22-28 | - | - |
| FindOrSelectFromItemReferenceList | (var Record Item Reference, Boolean, Code[20], Code[50], Code[30], Enum Item Reference Type, Date) | - | public | 23-28 | - | - |
| PhysicalInventoryRecordReferenceNoLookup | (var Record Phys. Invt. Record Line) | - | public | 23-28 | - | - |
| ValidatePhysicalInventoryRecordReferenceNo | (var Record Phys. Invt. Record Line, Record Item Reference, Boolean, Integer) | - | public | 23-28 | - | - |
| ReferenceLookupPhysicalInventoryRecordItem | (var Record Phys. Invt. Record Line, var Record Item Reference, Boolean) | - | public | 23-28 | - | - |
| ValidateInvtDocumentReferenceNo | (var Record Invt. Document Line, Record Item Reference, Boolean, Integer) | - | public | 23-28 | - | - |
| ReferenceLookupInvtDocumentItem | (var Record Invt. Document Line, var Record Item Reference, Boolean) | - | public | 23-28 | - | - |
| InvtDocumentReferenceNoLookup | (var Record Invt. Document Line) | - | public | 23-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterIsEnabled | (var Boolean) | 17-21 | Pending 19.0 | Not used anymore, item reference is always enabled |
| Integration event | OnAfterSalesItemReferenceFound | (var Record Sales Line, Record Item Reference) | 17-24 | - | - |
| Integration event | OnAfterSalesItemItemRefNotFound | (var Record Sales Line, var Record Item Variant) | 17-24 | - | - |
| Integration event | OnAfterPurchItemReferenceFound | (var Record Purchase Line, Record Item Reference) | 17-28 | - | - |
| Integration event | OnAfterPurchItemItemRefNotFound | (var Record Purchase Line, var Record Item Variant) | 17-28 | - | - |
| Integration event | OnAfterValidateSalesReferenceNo | (var Record Sales Line, Record Item Reference, Record Item Reference) | 17-28 | - | - |
| Integration event | OnAfterValidatePurchaseReferenceNo | (var Record Purchase Line, Record Item Reference, Record Item Reference) | 17-28 | - | - |
| Integration event | OnBeforeReferenceLookupSalesItem | (var Record Sales Line, var Record Item Reference, Boolean, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeReferenceLookupPurchaseItem | (var Record Purchase Line, var Record Item Reference, Boolean, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeSalesReferenceNoLookup | (var Record Sales Line, Record Sales Header, var Boolean) | 17-28 | - | - |
| Integration event | OnSalesReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Sales Line) | 17-21 | - | - |
| Integration event | OnSalesReferenceNoLookupOnBeforeValidateUnitPrice | (var Record Sales Line, Record Sales Header) | 17 | - | - |
| Integration event | OnPurchaseReferenceNoLookUpOnAfterSetFilters | (var Record Item Reference, Record Purchase Line) | 17-28 | - | - |
| Integration event | OnPurchaseReferenceNoLookupOnBeforeValidateDirectUnitCost | (var Record Purchase Line, Record Purchase Header) | 17-28 | - | - |
| Integration event | OnValidateSalesReferenceNoOnBeforeAssignNo | (var Record Sales Line, Record Item Reference) | 17-21 | - | - |
| Integration event | OnValidatePurchaseReferenceNoOnBeforeAssignNo | (var Record Purchase Line, Record Item Reference) | 17-23 | - | - |
| Integration event | OnAfterSetFiltersTypeAndTypeNoItemRef | (var Record Item Reference, Enum Item Reference Type, Code[30]) | 18-28 | - | - |
| Integration event | OnBeforeCountItemReference | (var Record Item Reference, var Integer, var Integer, Enum Item Reference Type, Code[30], var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeEnterSalesItemReference | (var Record Sales Line, var Record Item Reference, var Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeFindItemReferenceForSalesLine | (Record Sales Line, var Record Item Reference, var Boolean, var Boolean) | 18-26 | - | - |
| Integration event | OnBeforeFillItemReferenceFromItemVendor | (var Record Item Reference, Record Item Vendor, var Boolean) | 18-28 | - | - |
| Integration event | OnCreateItemReferenceOnBeforeInsert | (var Record Item Reference, Record Item Vendor) | 18-28 | - | - |
| Integration event | OnInitItemReferenceFiltersOnBeforeCheckIsEmpty | (var Record Item Reference) | 18-21 | - | - |
| Integration event | OnSalesReferenceNoLookupOnBeforeValidateUnitPrice | (var Record Sales Line, Record Sales Header, var Boolean) | 18-28 | - | - |
| Integration event | OnValidateSalesReferenceNoOnAfterAssignNo | (var Record Sales Line, Record Item Reference) | 18-28 | - | - |
| Integration event | OnValidatePurchaseReferenceNoOnBeforePurchaseLineUpdateDirectUnitCost | (var Record Purchase Line, Record Item Reference) | 18-28 | - | - |
| Integration event | OnBeforeProcessDecisionTree | (var Record Item Reference, Integer, Integer, Code[50], Enum Item Reference Type, Code[30], var Boolean, var Boolean, var Boolean) | 19-28 | - | - |
| Integration event | OnBeforeSelectOrFindReference | (var Record Item Reference, Code[50], Enum Item Reference Type, Code[30], Boolean, Boolean, Boolean, var Boolean) | 19-28 | - | - |
| Integration event | OnEnterPurchaseItemReferenceOnAfterCalcShouldAssignDescription | (var Record Purchase Line, Record Item Reference, var Boolean) | 19-28 | - | - |
| Integration event | OnBeforeFillDescription | (var Record Purchase Line, var Boolean) | 21-28 | - | - |
| Integration event | OnBeforeEnterPurchaseItemReference | (var Record Purchase Line, var Record Item Reference, var Boolean, var Boolean) | 21-28 | - | - |
| Integration event | OnBeforePurchaseReferenceNoLookup | (var Record Purchase Line, Record Purchase Header, var Boolean) | 21-28 | - | - |
| Integration event | OnBeforeValidatePurchaseReferenceNo | (var Record Purchase Line, Record Purchase Header, Record Item Reference, Boolean, Integer, var Boolean) | 21-28 | - | - |
| Integration event | OnInitItemReferenceFiltersOnBeforeCheckIsEmpty | (var Record Item Reference, Enum Item Reference Type) | 22-28 | - | - |
| Integration event | OnSalesReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Sales Line, Record Sales Header) | 22-28 | - | - |
| Integration event | OnValidateSalesReferenceNoOnBeforeAssignNo | (var Record Sales Line, var Record Item Reference) | 22-28 | - | - |
| Integration event | OnPhysicalInventoryOrderReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Phys. Invt. Order Line) | 22-28 | - | - |
| Integration event | OnBeforeReferenceLookupPhysicalInventoryOrderItem | (var Record Phys. Invt. Order Line, var Record Item Reference, Boolean, var Boolean) | 22-28 | - | - |
| Integration event | OnValidatePhysicalInventoryOrderReferenceNoOnBeforeAssignNo | (var Record Phys. Invt. Order Line, Record Item Reference) | 22-28 | - | - |
| Integration event | OnAfterValidatePhysicalInventoryOrderReferenceNo | (var Record Phys. Invt. Order Line, Record Item Reference, Record Item Reference) | 22-28 | - | - |
| Integration event | OnItemJournalReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Item Journal Line) | 22-28 | - | - |
| Integration event | OnBeforeReferenceLookupItemJournalItem | (var Record Item Journal Line, var Record Item Reference, Boolean, var Boolean) | 22-28 | - | - |
| Integration event | OnValidateItemJournalReferenceNoOnBeforeAssignNo | (var Record Item Journal Line, Record Item Reference) | 22-28 | - | - |
| Integration event | OnAfterValidateItemJournalReferenceNo | (var Record Item Journal Line, Record Item Reference, Record Item Reference) | 22-28 | - | - |
| Integration event | OnEnterSalesItemReferenceOnAfterFillDescriptionFromItem | (var Record Sales Line, var Record Item) | 22-24 | - | - |
| Integration event | OnEnterSalesItemReferenceOnAfterFillDescriptionFromItemVariant | (var Record Sales Line, var Record Item Variant) | 22-24 | - | - |
| Integration event | OnPhysicalInventoryRecordReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Phys. Invt. Record Line) | 23-28 | - | - |
| Integration event | OnBeforeReferenceLookupPhysicalInventoryRecordItem | (var Record Phys. Invt. Record Line, var Record Item Reference, Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnValidatePhysicalInventoryRecordReferenceNoOnBeforeAssignNo | (var Record Phys. Invt. Record Line, Record Item Reference) | 23-28 | - | - |
| Integration event | OnAfterValidatePhysicalInventoryRecordReferenceNo | (var Record Phys. Invt. Record Line, Record Item Reference, Record Item Reference) | 23-28 | - | - |
| Integration event | OnValidateInvtDocumentReferenceNoOnBeforeAssignNo | (var Record Invt. Document Line, Record Item Reference) | 23-28 | - | - |
| Integration event | OnAfterValidateInvtDocumentReferenceNo | (var Record Invt. Document Line, Record Item Reference, Record Item Reference) | 23-28 | - | - |
| Integration event | OnBeforeReferenceLookupInvtDocumentItem | (var Record Invt. Document Line, var Record Item Reference, Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnInvtDocumentReferenceNoLookupOnAfterSetFilters | (var Record Item Reference, Record Invt. Document Line) | 23-28 | - | - |
| Integration event | OnBeforeCreateItemReference | (Record Item Vendor, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeValidateSalesReferenceNo | (var Record Sales Line, Record Item Reference, Boolean, Integer, var Boolean) | 23-28 | - | - |
| Integration event | OnValidatePurchaseReferenceNoOnBeforeAssignNo | (var Record Purchase Line, var Record Item Reference) | 24-28 | - | - |
| Integration event | OnBeforeSetFiltersBlankTypeItemRef | (var Record Item Reference, var Boolean) | 24-28 | - | - |
| Integration event | OnFindItemReferenceForSalesLineOnBeforeFindFirst | (var Record Sales Line, var Record Item Reference) | 24-28 | - | - |
| Integration event | OnAfterFindItemReferenceForSalesLine | (var Record Sales Line, var Record Item Reference, var Boolean) | 24-28 | - | - |
| Integration event | OnBeforeFindItemReferenceForPurchaseLine | (var Record Purchase Line, var Record Item Reference, var Boolean, var Boolean) | 24-28 | - | - |
| Integration event | OnFindItemReferenceForPurchaseLineBeforeFindFirst | (var Record Purchase Line, var Record Item Reference) | 24-28 | - | - |
| Integration event | OnAfterFindItemReferenceForPurchaseLine | (var Record Purchase Line, var Record Item Reference, var Boolean) | 24-28 | - | - |
| Integration event | OnAfterSalesItemReferenceFound | (var Record Sales Line, Record Item Reference, Record Sales Line) | 25-28 | - | - |
| Integration event | OnAfterSalesItemItemRefNotFound | (var Record Sales Line, var Record Item Variant, Record Sales Line) | 25-28 | - | - |
| Integration event | OnEnterSalesItemReferenceOnAfterFillDescriptionFromItem | (var Record Sales Line, var Record Item, Record Sales Line) | 25-28 | - | - |
| Integration event | OnEnterSalesItemReferenceOnAfterFillDescriptionFromItemVariant | (var Record Sales Line, var Record Item Variant, Record Sales Line) | 25-28 | - | - |
| Integration event | OnBeforeFindItemReferenceForSalesLine | (var Record Sales Line, var Record Item Reference, var Boolean, var Boolean) | 27-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.
