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
New to SAP Business One? Start with the SAP Business One guide and toolkit.
Keep exploring
Free tools
- SAP QM Database Tables ReferenceSearchable lookup of the core SAP Quality Management tables, what each one stores and its main key fields, for report writers and data migration teams.
- SAP PM Database Tables ReferenceA searchable lookup of the core SAP PM tables, their key fields and what each is used for in reports and extracts.
- SAP PP Database Tables ReferenceA lookup of the main SAP PP database tables, what each holds and the key fields to join on.
ERP fixes and how-tos
- 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.
- SAP Business One production process flow: from BOM to production order to receiptThe SAP Business One production process flow from bill of materials to production order, issue, receipt and close, with the reports and tables used.
Runs with your ERP
- Spreadsheet Server with SAP Business One: live Excel reporting on inventory, sales and costHow insightsoftware Spreadsheet Server gives Excel live drill-down on SAP Business One inventory, sales and production cost data, with setup and pitfalls.
- TrueCommerce EDI with SAP Business OneHow the TrueCommerce EDI add-on automates sales orders, 940/945 warehouse documents, ASNs and invoices in SAP Business One, with setup, pitfalls and AI.
- SPS Commerce EDI with SAP Business OneHow SPS Commerce Fulfillment connects SAP Business One to retail trading partners: EDI orders, ASNs, invoices, setup, pitfalls and a private AI layer.
AI on your ERP
- 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.
- AI on SAP Business One for Electronics Manufacturers: BOMs, Shortages and TraceabilityPrivate AI on SAP Business One for electronics makers: multi-level BOM questions, component shortages, lot and serial traceability, RoHS and obsolescence checks.
Integrations
- How to add AI agents to SAP Business OneHow to put AI agents on SAP Business One: Service Layer tool design, read-only first, draft documents for human approval, and an on-prem model option.
- How to use ChatGPT with SAP Business OneUsing ChatGPT with SAP Business One: exports versus live Service Layer access, custom GPT actions, enterprise data controls, and when a private model fits better.