---
id: object/codeunit/7301
type: object
title: Codeunit 7301 "Whse. Jnl.-Register Line"
summary: Codeunit 7301 "Whse. Jnl.-Register Line" in Base Application (Microsoft.Warehouse.Journal). 11 public procedures, 38 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24-28, BC30.
tier: official
language: en
tags:
  - codeunit
  - 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: 445eb7737ecf993aaf38cf359141a1731607fc09c00349f120d373d018631089
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Warehouse/Journal/WhseJnlRegisterLine.Codeunit.al
    title: src/Layers/W1/BaseApp/Warehouse/Journal/WhseJnlRegisterLine.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12293
object_type: codeunit
object_id: 7301
name: Whse. Jnl.-Register Line
namespace: Microsoft.Warehouse.Journal
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"
  - "27"
  - "28"
  - "30"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 65
  events: 38
  subscribers: 1
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 3
  calls: 4
  called_by: 20
  implements: 0
---

# Codeunit 7301 "Whse. Jnl.-Register Line"

> Codeunit 7301 "Whse. Jnl.-Register Line" in Base Application (Microsoft.Warehouse.Journal). 11 public procedures, 38 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC24-28, BC30.

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

## Properties

| Property | Value |
|---|---|
| TableNo | Warehouse Journal Line |
| Permissions | TableData "Warehouse Entry" = rimd, TableData "Warehouse Register" = rimd, TableData Bin = m, TableData "Bin Content" = rimd |

## Events published

- `OnInitWhseEntryCopyFromWhseJnlLine(var WarehouseEntry: Record "Warehouse Entry"; var WarehouseJournalLine: Record "Warehouse Journal Line"; OnMovement: Boolean; Sign: Integer; Location: Record Location; BinCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnInitWhseEntryOnBeforeInitWhseEntry(var WarehouseEntry: Record "Warehouse Entry"; var WarehouseJournalLine: Record "Warehouse Journal Line"; ZoneCode: Code[10]; BinCode: Code[20]; Sign: Integer; var GlobalWhseEntryNo: Integer)` (integration)
- `OnInitWhseEntryOnAfterCalcShouldDeleteFromBinContent(WarehouseJournalLine: Record "Warehouse Journal Line"; Location: Record Location; var ShouldDeleteFromBinContent: Boolean)` (integration)
- `OnAfterCode(var WarehouseJournalLine: Record "Warehouse Journal Line"; var WhseEntryNo: Integer; var WarehouseRegister: Record "Warehouse Register")` (integration)
- `OnAfterInsertWhseEntry(var WarehouseEntry: Record "Warehouse Entry"; var WarehouseJournalLine: Record "Warehouse Journal Line")` (integration)
  - subscribers: [Codeunit 20438 "Qlty. Warehouse Integration"](../codeunit/20438.md) HandleOnAfterInsertWhseEntry, [Codeunit 23 "Item Jnl.-Post Batch"](../codeunit/23.md) OnAfterInsertWhseEntry, [Codeunit 7304 "Whse. Jnl.-Register Batch"](../codeunit/7304.md) OnAfterInsertWhseEntry
- `OnBeforeBinContentInsert(var BinContent: Record "Bin Content"; WarehouseEntry: Record "Warehouse Entry"; Bin: Record Bin)` (integration)
- `OnBeforeCheckExpiration(var WarehouseEntry: Record "Warehouse Entry"; ItemTrackingCode: Record "Item Tracking Code"; var IsHandled: Boolean)` (integration)
- `OnBeforeCode(var WarehouseJournalLine: Record "Warehouse Journal Line"; var WhseEntryNo: Integer; var IsHandled: Boolean; var WarehouseRegister: Record "Warehouse Register")` (integration)
- `OnBeforeDeleteFromBinContent(var WarehouseEntry: Record "Warehouse Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeGetBinForBinContent(var WarehouseEntry: Record "Warehouse Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertWhseEntry(var WarehouseEntry: Record "Warehouse Entry"; var WarehouseJournalLine: Record "Warehouse Journal Line")` (integration)
- `OnBeforeInsertWhseEntryProcedure(var WarehouseEntry: Record "Warehouse Entry"; WarehouseJournalLine: Record "Warehouse Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertToBinContent(var WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnBeforeUpdateBinEmpty(WarehouseEntry: Record "Warehouse Entry"; var Bin: Record Bin; var IsHandled: Boolean)` (integration)
- `OnCodeOnAfterGetLastEntryNo(var WhseJnlLine: Record "Warehouse Journal Line")` (integration)
- `OnCodeBeforeInitWhseEntryFromBinCode(WarehouseJournalLine: Record "Warehouse Journal Line"; WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnDeleteDefaultBinContentOnBeforeBinContentModify(var BinContent: Record "Bin Content")` (integration)
- `OnDeleteFromBinContentOnAfterSetFiltersForWhseEntry(var WarehouseEntry2: Record "Warehouse Entry"; var BinContent: Record "Bin Content"; var WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnDeleteFromBinContentOnAfterSetFiltersForBinContent(var BinContent: Record "Bin Content"; WarehouseEntry: Record "Warehouse Entry"; var WhseJnlLine: Record "Warehouse Journal Line"; var WhseReg: Record "Warehouse Register"; var WhseEntryNo: Integer; var IsHandled: Boolean)` (integration)
- `OnDeleteFromBinContentOnBeforeFieldError(BinContent: Record "Bin Content"; WarehouseEntry: Record "Warehouse Entry"; var IsHandled: Boolean)` (integration)
- `OnDeleteFromBinContentOnBeforeFromBinContentDelete(var BinContent: Record "Bin Content")` (integration)
- `OnDeleteFromBinContentOnBeforeCheckQuantity(var BinContent: Record "Bin Content"; WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnInitWhseEntryOnAfterGetToBinContent(var WhseEntry: Record "Warehouse Entry"; var ItemTrackingMgt: Codeunit "Item Tracking Management"; var WhseJnlLine: Record "Warehouse Journal Line"; var WhseReg: Record "Warehouse Register"; var WhseEntryNo: Integer; var Bin: Record Bin)` (integration)
- `OnInsertWhseEntryOnBeforeCheckSerialNo(WarehouseEntry: Record "Warehouse Entry"; var IsHandled: Boolean)` (integration)
- `OnUpdateDefaultBinContentOnBeforeBinContentModify(var BinContent: Record "Bin Content")` (integration)
- `OnUpdateDefaultBinContentOnBeforeBinContent2Modify(var BinContent: Record "Bin Content")` (integration)
- `RegisterRoundResidualOnAfterGetBin(var WhseJnlLine2: Record "Warehouse Journal Line"; WhseEntry: Record "Warehouse Entry"; WhseEntry2: Record "Warehouse Entry")` (integration)
- `OnDeleteFromBinContenOnAfterQtyUpdate(var FromBinContent: Record "Bin Content"; var WhseEntry: Record "Warehouse Entry"; var WhseJnlLine: Record "Warehouse Journal Line"; Sign: Integer)` (integration)
- `OnBeforeModifyBinEmpty(var Bin: Record Bin; NewEmpty: Boolean)` (integration)
- `OnBeforeCheckDefaultBin(WhseEntry: Record "Warehouse Entry"; var BinContent: Record "Bin Content"; var IsHandled: Boolean)` (integration)
- `OnRegisterRoundResidualOnBeforeWhseJnlRegLineSetWhseRegister(var WhseEntry: Record "Warehouse Entry"; var WhseEntry2: Record "Warehouse Entry"; var WhseJnlLine: Record "Warehouse Journal Line"; var WhseJnlLine2: Record "Warehouse Journal Line"; var Bin: Record Bin)` (integration)
- `OnDeleteFromBinContentOnAfterClearTrackingFilters(var WarehouseEntry2: Record "Warehouse Entry"; var FromBinContent: Record "Bin Content"; WarehouseEntry: Record "Warehouse Entry")` (integration)
- `OnDeleteFromBinContentOnAfterGetWhseItemTrkgSetup(FromBinContent: Record "Bin Content"; WhseItemTrackingSetup: Record "Item Tracking Setup")` (integration)
- `OnInsertWhseEntryOnBeforeTestFieldExpirationDate(WhseEntry: Record "Warehouse Entry"; ExistingExpDate: Date; var IsHandled: Boolean)` (integration)
- `OnAfterUpdateBinEmpty(WarehouseEntry: Record "Warehouse Entry"; Bin: Record Bin)` (integration)
- `OnInsertWhseRegOnBeforeInsertRecord(var WarehouseReg: Record "Warehouse Register"; var WarehouseJournalLine: Record "Warehouse Journal Line"; WhseEntryNo: Integer)` (integration)
- `OnInsertWhseRegOnBeforeModifyWarehouseRegister(var WarehouseReg: Record "Warehouse Register"; var WarehouseJournalLine: Record "Warehouse Journal Line"; WhseEntryNo: Integer)` (integration)
- `OnAfterSetWhseRegister(var WarehouseRegister: Record "Warehouse Register")` (integration)

## Event subscriptions

- OnPreviewableLedgerEntry subscribes to Codeunit "Sequence No. Mgt." OnPreviewableLedgerEntry

## Procedures

- `LockWarehouseTables()`
- `LockIfLegacyPosting()` (obsolete 27.0: This function is deprecated. Concurrent warehouse posting is always on.)
- `LockTables()` (obsolete 27.0: This function is deprecated. Concurrent warehouse posting is always on.)
- `InitWhseEntry(var WhseEntry: Record "Warehouse Entry"; ZoneCode: Code[10]; BinCode: Code[20]; Sign: Integer)`
- `InsertToBinContent(WhseEntry: Record "Warehouse Entry")`
- `UpdateDefaultBinContent(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; BinCode: Code[20])`
- `SetWhseRegister(WhseRegDef: Record "Warehouse Register")`
- `GetWhseRegister(var WhseRegDef: Record "Warehouse Register")`
- `RegisterWhseJnlLine(var WarehouseJournalLine: Record "Warehouse Journal Line")`
- `SetWhseEntryNo(NewWhseEntryNo: Integer)`
- `GetWhseEntryNo(): Integer`

Plus 15 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 7311 "Warehouse Journal Line"](../table/7311.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 7302 "WMS Management"](../codeunit/7302.md) (3 calls: `CheckDefaultBin → CheckDefaultBin`, `InitWhseEntry → GetBaseUOM`, `InsertWhseEntry → SerialNoOnInventory`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `CheckExpiration → GetWhseExpirationDate`, `DeleteFromBinContent → GetWhseItemTrkgSetup`)
- [Codeunit 7317 "Whse. Integration Management"](../codeunit/7317.md) (1 call: `InsertToBinContent → IsOpenShopFloorBin`)
- [Codeunit 9500 "Sequence No. Mgt."](../codeunit/9500.md) (1 call: `ValidateSequenceNo → ValidateSeqNo`)

## Called by

- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (2 calls: `CreatePositiveEntry → (object)`, `PostItemJnlLineWhseLine → (object)`)
- [Codeunit 1012 "Job Jnl.-Post Line"](../codeunit/1012.md) (1 call: `PostWhseJnlLine → RegisterWhseJnlLine`)
- [Codeunit 22 "Item Jnl.-Post Line"](../codeunit/22.md) (1 call: `RegisterWhseJnlLine → RegisterWhseJnlLine`)
- [Codeunit 23 "Item Jnl.-Post Batch"](../codeunit/23.md) (1 call: `PostWhseJnlLines → (object)`)
- [Codeunit 5704 "TransferOrder-Post Shipment"](../codeunit/5704.md) (1 call: `PostWhseJnlLine → RegisterWhseJnlLine`)
- [Codeunit 5705 "TransferOrder-Post Receipt"](../codeunit/5705.md) (1 call: `PostWhseJnlLine → RegisterWhseJnlLine`)
- [Codeunit 5760 "Whse.-Post Receipt"](../codeunit/5760.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5763 "Whse.-Post Shipment"](../codeunit/5763.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5850 "Invt. Doc.-Post Receipt"](../codeunit/5850.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5851 "Invt. Doc.-Post Shipment"](../codeunit/5851.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5856 "TransferOrder-Post Transfer"](../codeunit/5856.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5884 "Phys. Invt. Order-Post"](../codeunit/5884.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 5987 "Serv-Posting Journals Mgt."](../codeunit/5987.md) (1 call: `PostWhseJnlLines → RegisterWhseJnlLine`)
- [Codeunit 7304 "Whse. Jnl.-Register Batch"](../codeunit/7304.md) (1 call: `Code → (object)`)
- [Codeunit 7307 "Whse.-Activity-Register"](../codeunit/7307.md) (1 call: `RegisterWhseJnlLine → (object)`)
- [Codeunit 7320 "Whse. Undo Quantity"](../codeunit/7320.md) (1 call: `PostTempWhseJnlLineCache → RegisterWhseJnlLine`)
- [Codeunit 7324 "Whse.-Activity-Post"](../codeunit/7324.md) (1 call: `PostWhseJnlLine → (object)`)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (1 call: `PostItemJnlLineWhseLine → (object)`)
- [Codeunit 900 "Assembly-Post"](../codeunit/900.md) (1 call: `PostWhseJnlLine → (object)`)
- [Report 5756 "Create Warehouse Location"](../report/5756.md) (1 call: `OnPostReport → RegisterWhseJnlLine`)

## Recent changes

- 2026-10-05 [#12293 Remove CLEAN27 from Warehouse](../../changes/bcapps/12293.md) (main, BC30, obsoletion)

## Across versions

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

## Deprecations

- procedure LockIfLegacyPosting: Pending 27.0 (#if not CLEAN27), "This function is deprecated. Concurrent warehouse posting is always on."
- procedure LockTables: Pending 27.0 (#if not CLEAN27), "This function is deprecated. Concurrent warehouse posting is always on."

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: "Whse. Jnl.-Register Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
