---
id: object/table/7354
type: object
title: Table 7354 "Bin"
summary: Table 7354 "Bin" in Base Application (Microsoft.Warehouse.Structure). 18 fields, 4 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24, 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: 6a2eaa6d833209bdf1d5d8c3ea0b1e15f9e8ea699ff9202665346b985cf00174
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Warehouse/Structure/Bin.Table.al
    title: src/Layers/W1/BaseApp/Warehouse/Structure/Bin.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/warehouse-how-to-cross-dock-items
    - https://learn.microsoft.com/dynamics365/business-central/warehouse-setup-warehouse
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/set-up-business-central/set-up-warehouse-management
    - topic/business-central/business-functionality/warehouse-management/inbound-warehouse-processes
    - topic/business-central/business-functionality/warehouse-management/outbound-warehouse-processes
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 7354
name: Bin
namespace: Microsoft.Warehouse.Structure
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 18
  procedures: 24
  events: 8
  subscribers: 0
relations:
  out: 10
  referenced_by: 110
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 2
  called_by: 0
  implements: 0
---

# Table 7354 "Bin"

> Table 7354 "Bin" in Base Application (Microsoft.Warehouse.Structure). 18 fields, 4 public procedures, 8 events. Present since at least BC23, still in BC30, changed in BC24, BC28.

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

Learn documents this table through its pages: [Page 7302 "Bins"](../page/7302.md) (2 Learn pages), [Page 7303 "Bin List"](../page/7303.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Bin |
| 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 | Location Code | Code[10] | Specifies the location from which you opened the Bins window. | TableRelation [Table 14 "Location"](../table/14.md); not editable; NotBlank |
| 2 | Code | Code[20] | Specifies a code that uniquely describes the bin. | NotBlank |
| 3 | Description | Text[100] | Specifies a description of the bin. |  |
| 4 | Zone Code | Code[10] | Specifies the code of the zone in which the bin is located. | TableRelation [Table 7300 "Zone"](../table/7300.md) (Zone.Code where("Location Code" = field("Location Code"))); not editable |
| 5 | Adjustment Bin | Boolean | — | FlowField: exist(Location where(Code = field("Location Code"), "Adjustment Bin Code" = field(Code))); not editable |
| 10 | Bin Type Code | Code[10] | Specifies the code of the bin type that applies to the bin. | TableRelation [Table 7303 "Bin Type"](../table/7303.md) (Bin Type) |
| 11 | Warehouse Class Code | Code[10] | Specifies the code of the warehouse class that applies to the bin. | TableRelation [Table 7304 "Warehouse Class"](../table/7304.md) (Warehouse Class) |
| 12 | Block Movement | Option | Specifies how the movement of an item, or bin content, into or out of this bin, is blocked. | OptionCaption: ,Inbound,Outbound,All |
| 20 | Special Equipment Code | Code[10] | Specifies the code of the equipment needed when working in the bin. | TableRelation [Table 7305 "Special Equipment"](../table/7305.md) (Special Equipment) |
| 21 | Bin Ranking | Integer | Specifies the ranking of the bin. Items in the highest-ranking bins (with the highest number in the field) will be picked first. |  |
| 22 | Maximum Cubage | Decimal | Specifies the maximum cubage (volume) that the bin can hold. |  |
| 23 | Maximum Weight | Decimal | Specifies the maximum weight that this bin can hold. |  |
| 30 | Empty | Boolean | Specifies that the bin Specifies no items. | not editable |
| 32 | Item Filter | Code[20] | — | TableRelation [Table 27 "Item"](../table/27.md); FlowFilter |
| 33 | Variant Filter | Code[10] | — | TableRelation [Table 5700 "Stockkeeping Unit"](../table/5700.md) ("Stockkeeping Unit"."Variant Code" where("Location Code" = field("Location Code"), "Item No." = field("Item Filter"))); FlowFilter |
| 34 | Default | Boolean | Specifies if the bin is the default bin for an item. | FlowField: exist("Bin Content" where("Location Code" = field("Location Code"), "Bin Code" = field(Code), "Item No." = field("Item Filter"), "Variant Code" = field("Variant Filter"), Default = const(true))); not editable |
| 40 | Cross-Dock Bin | Boolean | Specifies if the bin is considered a cross-dock bin. |  |
| 41 | Dedicated | Boolean | Specifies that quantities in the bin are protected from being picked for other demands. |  |

## Keys

- Key1: Location Code, Code (clustered)
- Key2: Bin Type Code
- Key3: Location Code, Warehouse Class Code, Bin Ranking
- Key4: Location Code, Zone Code, Code
- Key5: Code
- Key6: Bin Ranking

## Events published

- `OnAfterCheckEmptyBin(var Bin: Record Bin)` (integration)
- `OnAfterCalcCubageAndWeight(Bin: Record Bin; CalledByPosting: Boolean; var Cubage: Decimal; var Weight: Decimal)` (integration)
- `OnAfterSetUpNewLine(var Bin: Record Bin)` (integration)
- `OnBeforeCheckMaxQtyBinContent(var Bin: Record Bin; CheckWeight: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckWhseClass(Bin: Record Bin; ItemNo: Code[20]; var ResultValue: Boolean; var IsHandled: Boolean; IgnoreError: Boolean)` (integration)
- `OnBeforeOnInsert(var Bin: Record Bin; var IsHandled: Boolean)` (integration)
- `OnBeforeOnModify(var Bin: Record Bin; var xBin: Record Bin; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckEmptyBin(var Bin: Record Bin; ErrorText: Text[250]; var IsHandled: Boolean)` (integration)

## Procedures

- `SetUpNewLine()`
- `CalcCubageAndWeight(var Cubage: Decimal; var Weight: Decimal; CalledbyPosting: Boolean)`
- `CheckWhseClass(ItemNo: Code[20]; IgnoreError: Boolean): Boolean`
- `CheckIncreaseBin(BinCode: Code[20]; ItemNo: Code[20]; Qty: Decimal; DeductCubage: Decimal; DeductWeight: Decimal; PutawayCubage: Decimal; PutawayWeight: Decimal; CalledbyPosting: Boolean; IgnoreError: Boolean): Boolean`

Plus 12 local procedures.

## Triggers

OnDelete, OnInsert, OnModify

## Relations

- lookup page [Page 7303 "Bin List"](../page/7303.md)
- Adjustment Bin: CalcFormula [Table 14 "Location"](../table/14.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- Item Filter: TableRelation [Table 27 "Item"](../table/27.md)
- Variant Filter: TableRelation [Table 5700 "Stockkeeping Unit"](../table/5700.md)
- Zone Code: TableRelation [Table 7300 "Zone"](../table/7300.md)
- Default: CalcFormula [Table 7302 "Bin Content"](../table/7302.md)
- Bin Type Code: TableRelation [Table 7303 "Bin Type"](../table/7303.md)
- Warehouse Class Code: TableRelation [Table 7304 "Warehouse Class"](../table/7304.md)
- Special Equipment Code: TableRelation [Table 7305 "Special Equipment"](../table/7305.md)

## Referenced by

110 fields in 89 objects relate to this table (TableRelation or CalcFormula).

- [Table 14 "Location"](../table/14.md): Adjustment Bin Code, Asm.-to-Order Shpt. Bin Code, Cross-Dock Bin Code, Default Bin Code, From-Assembly Bin Code, Open Shop Floor Bin Code, Receipt Bin Code, Shipment Bin Code, To-Assembly Bin Code, To-Job Bin Code
- [Table 99000754 "Work Center"](../table/99000754.md): From-Production Bin Code, Open Shop Floor Bin Code, To-Production Bin Code
- [Table 99000758 "Machine Center"](../table/99000758.md): From-Production Bin Code, Open Shop Floor Bin Code, To-Production Bin Code
- [Table 5857 "Direct Trans. Line"](../table/5857.md): Transfer-from Bin Code, Transfer-To Bin Code
- [Table 7311 "Warehouse Journal Line"](../table/7311.md): Bin Code, To Bin Code
- [Table 7316 "Warehouse Receipt Header"](../table/7316.md): Bin Code, Cross-Dock Bin Code
- [Table 7317 "Warehouse Receipt Line"](../table/7317.md): Bin Code, Cross-Dock Bin Code
- [Table 7319 "Posted Whse. Receipt Line"](../table/7319.md): Bin Code, Cross-Dock Bin Code
- [Table 7347 "Internal Movement Line"](../table/7347.md): From Bin Code, To Bin Code
- [Table 83 "Item Journal Line"](../table/83.md): Bin Code, New Bin Code
- [Table extension 99000761 "Mfg. Location"](../tableextension/99000761.md): From-Production Bin Code, To-Production Bin Code
- [Table 1001 "Job Task"](../table/1001.md): Bin Code
- [Table 1003 "Job Planning Line"](../table/1003.md): Bin Code
- [Table 111 "Sales Shipment Line"](../table/111.md): Bin Code
- [Table 113 "Sales Invoice Line"](../table/113.md): Bin Code
- [Table 115 "Sales Cr.Memo Line"](../table/115.md): Bin Code
- [Table 121 "Purch. Rcpt. Line"](../table/121.md): Bin Code
- [Table 123 "Purch. Inv. Line"](../table/123.md): Bin Code
- [Table 125 "Purch. Cr. Memo Line"](../table/125.md): Bin Code
- [Table 167 "Job"](../table/167.md): Bin Code
- [Table 169 "Job Ledger Entry"](../table/169.md): Bin Code
- [Table 246 "Requisition Line"](../table/246.md): Bin Code
- [Table 27 "Item"](../table/27.md): Bin Filter
- [Table 307 "Inventory Buffer"](../table/307.md): Bin Code
- [Table 336 "Tracking Specification"](../table/336.md): Bin Code
- [Table 5108 "Sales Line Archive"](../table/5108.md): Bin Code
- [Table 5110 "Purchase Line Archive"](../table/5110.md): Bin Code
- [Table 5135 "Job Archive"](../table/5135.md): Bin Code
- [Table 5136 "Job Task Archive"](../table/5136.md): Bin Code
- [Table 5137 "Job Planning Line Archive"](../table/5137.md): Bin Code
- [Table 5405 "Production Order"](../table/5405.md): Bin Code
- [Table 5406 "Prod. Order Line"](../table/5406.md): Bin Code
- [Table 5407 "Prod. Order Component"](../table/5407.md): Bin Code
- [Table 5520 "Unplanned Demand"](../table/5520.md): Bin Code
- [Table 5700 "Stockkeeping Unit"](../table/5700.md): Bin Filter
- [Table 5741 "Transfer Line"](../table/5741.md): Transfer-To Bin Code
- [Table 5745 "Transfer Shipment Line"](../table/5745.md): Transfer-from Bin Code
- [Table 5747 "Transfer Receipt Line"](../table/5747.md): Transfer-To Bin Code
- [Table 5767 "Warehouse Activity Line"](../table/5767.md): Bin Code
- [Table 5773 "Registered Whse. Activity Line"](../table/5773.md): Bin Code
- [Table 5850 "Invt. Document Header"](../table/5850.md): Whse. Adj. Bin Code
- [Table 5853 "Invt. Receipt Line"](../table/5853.md): Bin Code
- [Table 5855 "Invt. Shipment Line"](../table/5855.md): Bin Code
- [Table 5875 "Phys. Invt. Order Header"](../table/5875.md): Bin Code
- [Table 5876 "Phys. Invt. Order Line"](../table/5876.md): Bin Code
- [Table 5877 "Phys. Invt. Record Header"](../table/5877.md): Bin Code
- [Table 5878 "Phys. Invt. Record Line"](../table/5878.md): Bin Code
- [Table 5879 "Pstd. Phys. Invt. Order Hdr"](../table/5879.md): Bin Code
- [Table 5880 "Pstd. Phys. Invt. Order Line"](../table/5880.md): Bin Code
- [Table 5881 "Pstd. Phys. Invt. Record Hdr"](../table/5881.md): Bin Code
- and 39 more objects (39 fields): data/code/relations/29.json

## Pages and codeunits on this table

- [Page 7302 "Bins"](../page/7302.md) (source table)
- [Page 7303 "Bin List"](../page/7303.md) (source table)

## 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) (2 calls: `CheckIncreaseBin → CheckPutAwayAvailability`, `CheckMaxQtyBinContent → CalcCubageAndWeight`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (1 call: `CheckIncreaseBin → LogUsage`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, 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: "Bin")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
