SAP Business One Database Tables Reference
SAP Business One keeps every document as a header table plus a row table, and the names are short codes that are hard to guess. This reference lists the core tables a consultant or report writer touches most, with the child table for each document and what it stores.
| Table | Row / child table | Area | What it stores |
|---|---|---|---|
OITM | ITM1 (prices) | Inventory | Item master data |
OITW | - | Inventory | Item stock per warehouse (OnHand, IsCommited, OnOrder) |
OITB | - | Inventory | Item groups |
OWHS | - | Inventory | Warehouses |
OUOM | - | Inventory | Units of measure |
OPLN | ITM1 | Inventory | Price lists |
OBTN | - | Inventory | Batch numbers master |
OSRN | - | Inventory | Serial numbers master |
OITL | ITL1 (batch/serial detail) | Inventory | Inventory transaction log by document line |
OCRD | CRD1 (addresses) | Business partners | Business partner master data (customers, vendors, leads) |
OCPR | - | Business partners | Contact persons of business partners |
OCRG | - | Business partners | Business partner groups |
OSLP | - | Sales | Sales employees / buyers |
OQUT | QUT1 | Sales | Sales quotations |
ORDR | RDR1 | Sales | Sales orders |
ODLN | DLN1 | Sales | Deliveries |
ORDN | RDN1 | Sales | Returns (sales) |
OINV | INV1 | Sales | A/R invoices |
ORIN | RIN1 | Sales | A/R credit memos |
ODPI | DPI1 | Sales | A/R down payment invoices |
OPRQ | PRQ1 | Purchasing | Purchase requests |
OPQT | PQT1 | Purchasing | Purchase quotations |
OPOR | POR1 | Purchasing | Purchase orders |
OPDN | PDN1 | Purchasing | Goods receipt POs |
ORPD | RPD1 | Purchasing | Goods returns |
OPCH | PCH1 | Purchasing | A/P invoices |
ORPC | RPC1 | Purchasing | A/P credit memos |
OIGN | IGN1 | Inventory | Goods receipts (inventory, not PO-based) |
OIGE | IGE1 | Inventory | Goods issues |
OWTR | WTR1 | Inventory | Inventory transfers |
OWTQ | WTQ1 | Inventory | Inventory transfer requests |
OITT | ITT1 | Production | Bills of materials (product trees) |
OWOR | WOR1 | Production | Production orders (header and component/resource rows) |
ORSC | - | Production | Resources (machines, labor) |
OACT | - | Finance | Chart of accounts |
OJDT | JDT1 | Finance | Journal entries (header and lines) |
ORCT | RCT2 (invoice links) | Finance | Incoming payments |
OVPM | VPM2 (invoice links) | Finance | Outgoing payments |
OSTC | - | Finance | Tax codes |
OCRN | - | Finance | Currencies |
ORTT | - | Finance | Exchange rates by date |
OUSR | - | Administration | Users |
OHEM | - | Administration | Employee master data |
OADM | ADM1 | Administration | Company details and general settings |
OWDD | WDD1 | Administration | Approval requests (documents awaiting approval) |
OWTM | WTM1 | Administration | Approval templates |
CUFD | - | Administration | User-defined field definitions |
OUTB | - | Administration | User-defined table definitions |
Names are the standard SAP Business One schema names, which are the same on SQL Server and SAP HANA editions. Always confirm in the Table Object view or the SDK help of your own version. User-defined fields live in the same tables with a U_ prefix.
Ask your Business One data in plain language
Optional: a short call on read-only natural-language querying over your B1 database.
Optional. The tool and every export work without this. No spam.
How to use the table list
Type a table, a document name or an area in the search box. The pattern to remember is that marketing documents have an O-prefixed header table and a numbered row table: ORDR and RDR1 for sales orders, OPOR and POR1 for purchase orders. Join row to header on DocEntry, not DocNum, because DocNum depends on the numbering series and can repeat across series.
- Header tables start with O, row tables end in 1
- Join on DocEntry, which is the true unique key
- Use the Area column to narrow to production or finance
- Export the filtered list to Excel for your data dictionary
Where the manufacturing data lives
Production sits in OWOR (header) and WOR1 (components and resources), with the bill of materials in OITT and ITT1. Stock position is not on OITM alone: quantities by warehouse sit in OITW, so a shortage query always joins to OITW on ItemCode and warehouse. Movement history is in OITL, which links stock moves back to the originating document through its base type and base entry.
Common mistakes
The most frequent error is reading quantities from OITM.OnHand and ignoring the warehouse split, which hides a shortage in the plant warehouse behind surplus in a distribution one. The second is querying canceled documents: use the CANCELED and DocStatus columns. Third, writing to these tables directly. Never update B1 tables with SQL; use the DI API or Service Layer so that validations, posting and logs still run.
Frequently Asked Questions
Are the table names the same on HANA and SQL Server?
Yes, the object names are the same across both database editions. The difference is syntax: HANA wants double-quoted identifiers and has its own functions for dates and strings, so queries often need small adjustments when moved between the two.
Why join on DocEntry and not DocNum?
DocEntry is the internal unique key of a document. DocNum is the visible number, driven by numbering series, so two documents of different series can share one. Row tables reference the header through DocEntry.
Can I add my own fields to these tables?
Yes, through user-defined fields created in the client. They appear as columns prefixed with U_ in the same table. Plan them with a worksheet first, because deleting or retyping a field later is awkward on a populated table.
Is it safe to update B1 tables with SQL?
No. Direct updates bypass validations, journal postings and audit logs, and can break the company database or support entitlement. Use the DI API, Service Layer or the Data Transfer Workbench for changes.
If you want people to ask questions in plain language and have the query written and shown to them against your Business One data, Netray can set that up read-only, on your own servers.
Related Tools
SAP Business One Document Object Type Codes
Lookup of ObjType numbers used in B1 queries, UDO links and approval templates, with header and row tables.
SAPSAP Business One Production Component Shortage SQL Generator
Pick a status, due date and warehouse and get a query that shows components short against on-hand stock for open production orders.
Developer ToolsSAP Business One Service Layer Request Builder
Fill in host, company and item details and get ready-to-paste Service Layer requests for login, item query, sales order and production order.
SAPSAP Business One User-Defined Field Planning Worksheet
An editable worksheet to specify every user-defined field before it is created: table, name, type, size, valid values and reason.
More SAP tools
See all- SAP Business One Production Order Checklist
- SAP B1 Item Master Import Template (DTW)
- SAP B1 MRP Setup Readiness Assessment
- SAP B1 Implementation Cost Calculator
- SAP Business One Go-Live Readiness Checklist
- SAP Business One Implementation Project Charter Template
- SAP Business One BOM Cost Rollup Worksheet
- SAP Business One Cycle Count Variance Worksheet
- SAP Business One License and 5-Year TCO Calculator