SAPFree referencePDF, Excel, Word exportSAP Business OneDiscrete Manufacturing

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.

Download:
TableRow / child tableAreaWhat 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.