SAP Business One Item, Warehouse and Batch Columns Reference
This is a column-level reference for the SAP Business One tables behind items, warehouse stock, price lists and batch and serial tracking. It complements the table-level B1 tables reference and applies to SAP Business One 10.0 on SQL Server and SAP HANA.
| Table | Column | Data meaning | Example | Notes |
|---|---|---|---|---|
OITM | ItemCode | Item number (primary key) | A00001 | HANA: "OITM"."ItemCode" in double quotes, case-sensitive. |
OITM | ItemName | Item description | Hex bolt M8 x 30 | Foreign name is FrgnName. |
OITM | ItmsGrpCod | Item group code | 101 | Join OITB.ItmsGrpCod for ItmsGrpNam. |
OITM | InvntItem | Inventory item flag | Y | N for service or non-stock items; they have no stock. |
OITM | SellItem | Sales item flag | Y | Y or N. |
OITM | PrchseItem | Purchase item flag | Y | Y or N. |
OITM | OnHand | In stock, all warehouses | 120 | Sum of OITW.OnHand. Inventory UoM. |
OITM | IsCommited | Committed by open sales orders and other demand, all warehouses | 30 | Spelled with one t: IsCommited. |
OITM | OnOrder | Ordered from vendors or production, all warehouses | 50 | Open purchase orders and production orders. |
OITM | EvalSystem | Valuation method | A | A moving average, S standard, F FIFO, B serial/batch. |
OITM | AvgPrice | Item cost (company-level) | 2.35 | Use OITW.AvgPrice when warehouse-level costing is on. |
OITM | ManBtchNum | Managed by batches | Y | Batch details in OBTN and OBTQ. |
OITM | ManSerNum | Managed by serial numbers | N | Serial details in OSRN and OSRQ. |
OITM | DfltWH | Default warehouse | 01 | May be empty; then the company default applies. |
OITM | validFor / frozenFor | Active and inactive flags | Y / N | Combined with validFrom, validTo, frozenFrom, frozenTo dates. |
OITM | InvntryUom | Inventory unit of measure text | EA | With UoM groups see UgpEntry and UGP1. |
OITM | LastPurPrc | Last purchase price | 2.40 | LastPurCur holds its currency. |
OITM | U_<name> | User-defined field | U_Grade | UDF definitions in CUFD. |
OITW | ItemCode, WhsCode | Item and warehouse (key) | A00001, 01 | One row per item and warehouse. |
OITW | OnHand | In stock in this warehouse | 80 | Use OITW, not OITM, for stock by warehouse. |
OITW | IsCommited | Committed in this warehouse | 20 | Same spelling as OITM. |
OITW | OnOrder | Ordered into this warehouse | 50 | Available = OnHand - IsCommited + OnOrder. |
OITW | AvgPrice | Warehouse item cost | 2.31 | Meaningful when costing by warehouse is enabled. |
OITW | MinStock, MaxStock | Min and max inventory level | 10, 200 | Used by the inventory level alerts. |
OITW | Locked | Warehouse locked for the item | N | Y blocks transactions for that item in that warehouse. |
ITM1 | ItemCode, PriceList | Item and price list number (key) | A00001, 1 | One row per item per price list. |
ITM1 | Price, Currency | Price and its currency | 4.50, USD | Join OPLN on PriceList = ListNum. |
OPLN | ListNum, ListName | Price list number and name | 1, Base Price | ListName is what users see. |
OPLN | BASE_NUM, Factor | Base price list and factor | 1, 1.2 | Derived lists are base price times factor. |
OINM | TransType, CreatedBy, BASE_REF | Object type, DocEntry and DocNum of the source document | 15, 1234, 5001 | Legacy inventory audit table. From 9.0 the valuation engine writes OIVL and IVL1; check how OINM is populated on your version. |
OINM | ItemCode, Warehouse, DocDate, InQty, OutQty | Item, warehouse, posting date and quantity in or out | A00001, 01, 2026-10-01, 0, 5 | Stock at a date = SUM(InQty - OutQty) up to that date. |
OITL | LogEntry | Inventory transaction log key | 8812 | Header of the batch and serial log. |
OITL | ItemCode, DocEntry, DocType, LocCode | Item, document entry, object type and warehouse | A00001, 77, 15, 01 | DocType 15 is a delivery, 13 an A/R invoice, 20 a goods receipt PO. |
OITL | DocQty, StockEff | Quantity and stock effect flag | -5, 1 | StockEff 1 means the line affects stock. |
ITL1 | LogEntry, SysNumber, Quantity | Batch or serial line of the log entry | 8812, 3, -5 | Join ITL1.LogEntry = OITL.LogEntry. |
ITL1 | MdAbsEntry | Link to the batch or serial master record | 412 | Join OBTN.AbsEntry (batches) or OSRN.AbsEntry (serials). |
OBTN | ItemCode, SysNumber, DistNumber | Item, internal number and batch number | A00001, 3, LOT-2610-07 | DistNumber is the batch users see. |
OBTN | ExpDate, MnfDate | Expiry and manufacturing date | 2027-04-30, 2026-10-02 | Use for FEFO and expiry reports. |
OBTQ | ItemCode, WhsCode, SysNumber, Quantity | Batch quantity per warehouse | A00001, 01, 3, 45 | Join OBTN on ItemCode and SysNumber, or MdAbsEntry = OBTN.AbsEntry. |
OSRN | ItemCode, SysNumber, DistNumber | Serial number master | B10000, 15, SN-000915 | MnfSerial holds the manufacturer serial. |
OSRQ | ItemCode, WhsCode, SysNumber, Quantity | Serial quantity per warehouse (0 or 1) | B10000, 01, 15, 1 | Quantity 1 means the serial is in that warehouse. |
OBIN / OIBQ | AbsEntry, BinCode / ItemCode, BinAbs, OnHandQty | Bin locations and item quantity per bin | 5, 01-A-01 / A00001, 5, 12 | Only used when bin locations are enabled for the warehouse. |
Column names follow the SAP Business One 10.0 SDK database table reference. On SAP HANA, table and column names are case-sensitive and must be in double quotes; on SQL Server they are not. Check the stock audit tables (OINM, OIVL) on your version before building valuation reports.
Get a stock query for your B1 database
Tell us what report you need and whether you run SQL Server or HANA, and we will send a tested query on these tables.
Optional. The tool and every export work without this. No spam.
How to use it
Search by table or column name. Each row gives the meaning, an example value and the trap to avoid. Columns are spelled exactly as in the database, including IsCommited with one t and ItmsGrpCod. On SQL Server write T0.ItemCode; on HANA write T0."ItemCode", because HANA keeps the mixed-case names and needs double quotes. To see the database column behind a field in the client, turn on View > System Information and hover over the field: the status bar shows table and column.
- OITM: company-level totals per item.
- OITW: the same quantities per warehouse.
- OITL and ITL1: the batch and serial transaction log.
The availability formula
B1 shows Available as In Stock minus Committed plus Ordered, which in table terms is OnHand - IsCommited + OnOrder. Use OITW for a warehouse and OITM for the company total. Committed comes from open sales orders and other demand, and Ordered from open purchase orders and production orders. The formula is the same one the Inventory Status report and the item master availability use, so a query built on it should match the screen. If it does not, check for items with InvntItem = 'N', which carry no stock.
Worked example: batches with expiry by warehouse
To list batches on hand with expiry dates, join OBTQ to OBTN on ItemCode and SysNumber (or OBTQ.MdAbsEntry = OBTN.AbsEntry) and filter OBTQ.Quantity > 0. Add OITM for the item name and filter OITM.ManBtchNum = 'Y'. Sort by ExpDate for a FEFO list. To trace where a batch went, start from OBTN.AbsEntry, join ITL1 on MdAbsEntry, then OITL on LogEntry: OITL gives the DocType and DocEntry of each document, and StockEff = 1 limits the result to lines that moved stock.
Version differences and gotchas
OINM is the classic inventory audit table and many old reports use it. From release 9.0 the inventory valuation engine writes OIVL and IVL1, so confirm on your system how OINM is filled before you trust a valuation report built on it; quantities by date are usually still fine. OITM.AvgPrice is wrong for reporting when costing by warehouse is on: use OITW.AvgPrice. Bin tables OBIN and OIBQ are only filled for warehouses with bin locations enabled. User-defined fields carry the U_ prefix.
Frequently Asked Questions
What is the OITM table in SAP B1?
OITM is the item master data table. It holds the item code, name, group, inventory, sales and purchase flags, valuation method, batch and serial flags, and company-level stock totals OnHand, IsCommited and OnOrder. Stock per warehouse is in OITW.
What is the OINM table in SAP B1?
OINM is the inventory audit table: one row per stock movement with TransType (object type), CreatedBy (DocEntry), BASE_REF (DocNum), Warehouse, DocDate, InQty and OutQty. From 9.0 the valuation engine uses OIVL and IVL1, so check your version before using OINM for values.
What is the OITL table in SAP B1?
OITL is the inventory transaction log for batch and serial items: one row per document line with ItemCode, DocEntry, DocType, LocCode, DocQty and StockEff. ITL1 holds the batch or serial lines, linked to OBTN or OSRN through MdAbsEntry.
Which table stores price lists in SAP B1?
OPLN holds the price list header (ListNum, ListName, BASE_NUM, Factor). ITM1 holds the item prices with ItemCode, PriceList, Price and Currency. Join ITM1.PriceList = OPLN.ListNum.
If you want your team to ask SAP Business One stock and batch questions in plain English on your own server, Netray can set up that private AI layer.
Related Tools
SAP Business One Database Tables Reference
Searchable lookup of the core SAP Business One tables, with the matching row table and what each one stores.
SAPSAP Business One Query Parameters Syntax Reference ([%0], OUQR)
The patterns for user prompts in B1 saved queries, for SQL Server and HANA, plus the tables that store queries and categories.
Developer ToolsSAP B1 SQL Query Generator (OITM, ORDR, RDR1)
Fill in a few filters and get a read-only SQL query over OITM, ORDR and RDR1 to paste into the SAP B1 Query Manager.
SAPSAP Business One Document Object Type Codes
Lookup of ObjType numbers used in B1 queries, UDO links and approval templates, with header and row tables.
More SAP tools
See all- SAP B1 User Permission Matrix Worksheet
- SAP B1 Period End Close Checklist
- SAP B1 Approval Procedure Template
- SAP B1 Business Partner Master Data Request Form
- SAP Business One User Acceptance Test Script Template
- SAP Business One Data Migration Mapping Worksheet
- SAP Business One User-Defined Fields and Tables Register
- SAP Business One User-Defined Field Planning Worksheet
- SAP Business One Private AI Layer Blueprint Generator
Keep exploring
Free tools
- SAP B1 SQL Query Generator (OITM, ORDR, RDR1)Fill in a few filters and get a read-only SQL query over OITM, ORDR and RDR1 to paste into the SAP B1 Query Manager.
- SAP B1 Warehouse Bin Location Capacity PlannerAn editable worksheet to list bin codes, dimensions and fill factor, compute usable volume and plan bins before you load them into a B1 warehouse.
- SAP B1 Implementation Cost CalculatorEnter users, rates and effort days to see first-year and three-year SAP Business One cost, using your own partner quotes.
ERP fixes and how-tos
- SAP Business One Query: Released Production Orders with Component ShortagesReady-to-run SAP Business One queries on OWOR, WOR1 and OITW to list released production orders with missing components, for SQL Server and HANA.
- SAP Business One tables list: the core tables and how the names workA practical list of core SAP Business One tables (OITM, OCRD, ORDR, OPOR, OWOR, OINM) with prefix conventions and safe query advice for reports.
- Private AI for SAP Business One: Service Layer, a read replica and a local modelAdd a private AI assistant to SAP Business One: Service Layer reads, SQL Server or HANA replica, document index, local LLM, permissions and approvals.
Runs with your ERP
- Logiks WMS and SAP Business One: Warehouse Scanning on Your ERPHow Logiks WMS works with SAP Business One: scanner-driven receiving, picking and inventory, data flows, setup, pitfalls and where a private AI layer helps.
- CompuTec WMS and SAP Business One: Mobile Warehouse TransactionsHow CompuTec WMS posts goods receipts, pick lists, transfers and production receipts into SAP Business One, with setup steps, pitfalls and a private AI layer.
- ECOSIRE CPQ Configurator with SAP Business One: guided quotingHow the ECOSIRE CPQ configurator uses option models, requires/excludes rules and live cost roll-up to create SAP Business One quotes and orders.
AI on your ERP
- AI for SAP Business One Inventory: Stock, Batches, Bins and ValuationPrivate AI over SAP Business One inventory: OITW stock, batches, serials, bins and valuation. Answers grounded in live data via Service Layer or SQL views.
- AI for SAP Business One, Without Sending Your Books to a Public APIAdd AI to SAP Business One without sending customer data or financials to a public API. Service Layer and DI API integration, sized for an SMB budget.
Integrations
- How to connect Power BI to SAP Business OneConnect Power BI to SAP Business One: SQL Server or HANA direct, Service Layer OData, gateway setup, key manufacturing dashboards and natural-language Q&A.
- How to add a mobile app to SAP Business OneBuild or choose a mobile app for SAP Business One: barcode scanning, inventory moves, pick lists, approvals, Service Layer access, offline sync and security.