# SAP Business One Database Tables Reference

> Source: https://netray.co/tools/sap-business-one-database-tables-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Searchable lookup of the core SAP Business One tables, with the matching row table and what each one stores.

## Category

sap

## Erp

SAP Business One

## Industry

Discrete Manufacturing

## Audience

- B1 consultant
- B1 developer
- Report writer
- ERP admin

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Table

**Key:** table

**Type:** text

#### Row / child table

**Key:** rows

**Type:** text

#### Area

**Key:** area

**Type:** text

#### What it stores

**Key:** stores

**Type:** text

**Rows:**

**Table:** OITM

**Rows:** ITM1 (prices)

**Area:** Inventory

**Stores:** Item master data

**Table:** OITW

**Rows:** -

**Area:** Inventory

**Stores:** Item stock per warehouse (OnHand, IsCommited, OnOrder)

**Table:** OITB

**Rows:** -

**Area:** Inventory

**Stores:** Item groups

**Table:** OWHS

**Rows:** -

**Area:** Inventory

**Stores:** Warehouses

**Table:** OUOM

**Rows:** -

**Area:** Inventory

**Stores:** Units of measure

**Table:** OPLN

**Rows:** ITM1

**Area:** Inventory

**Stores:** Price lists

**Table:** OBTN

**Rows:** -

**Area:** Inventory

**Stores:** Batch numbers master

**Table:** OSRN

**Rows:** -

**Area:** Inventory

**Stores:** Serial numbers master

**Table:** OITL

**Rows:** ITL1 (batch/serial detail)

**Area:** Inventory

**Stores:** Inventory transaction log by document line

**Table:** OCRD

**Rows:** CRD1 (addresses)

**Area:** Business partners

**Stores:** Business partner master data (customers, vendors, leads)

**Table:** OCPR

**Rows:** -

**Area:** Business partners

**Stores:** Contact persons of business partners

**Table:** OCRG

**Rows:** -

**Area:** Business partners

**Stores:** Business partner groups

**Table:** OSLP

**Rows:** -

**Area:** Sales

**Stores:** Sales employees / buyers

**Table:** OQUT

**Rows:** QUT1

**Area:** Sales

**Stores:** Sales quotations

**Table:** ORDR

**Rows:** RDR1

**Area:** Sales

**Stores:** Sales orders

**Table:** ODLN

**Rows:** DLN1

**Area:** Sales

**Stores:** Deliveries

**Table:** ORDN

**Rows:** RDN1

**Area:** Sales

**Stores:** Returns (sales)

**Table:** OINV

**Rows:** INV1

**Area:** Sales

**Stores:** A/R invoices

**Table:** ORIN

**Rows:** RIN1

**Area:** Sales

**Stores:** A/R credit memos

**Table:** ODPI

**Rows:** DPI1

**Area:** Sales

**Stores:** A/R down payment invoices

**Table:** OPRQ

**Rows:** PRQ1

**Area:** Purchasing

**Stores:** Purchase requests

**Table:** OPQT

**Rows:** PQT1

**Area:** Purchasing

**Stores:** Purchase quotations

**Table:** OPOR

**Rows:** POR1

**Area:** Purchasing

**Stores:** Purchase orders

**Table:** OPDN

**Rows:** PDN1

**Area:** Purchasing

**Stores:** Goods receipt POs

**Table:** ORPD

**Rows:** RPD1

**Area:** Purchasing

**Stores:** Goods returns

**Table:** OPCH

**Rows:** PCH1

**Area:** Purchasing

**Stores:** A/P invoices

**Table:** ORPC

**Rows:** RPC1

**Area:** Purchasing

**Stores:** A/P credit memos

**Table:** OIGN

**Rows:** IGN1

**Area:** Inventory

**Stores:** Goods receipts (inventory, not PO-based)

**Table:** OIGE

**Rows:** IGE1

**Area:** Inventory

**Stores:** Goods issues

**Table:** OWTR

**Rows:** WTR1

**Area:** Inventory

**Stores:** Inventory transfers

**Table:** OWTQ

**Rows:** WTQ1

**Area:** Inventory

**Stores:** Inventory transfer requests

**Table:** OITT

**Rows:** ITT1

**Area:** Production

**Stores:** Bills of materials (product trees)

**Table:** OWOR

**Rows:** WOR1

**Area:** Production

**Stores:** Production orders (header and component/resource rows)

**Table:** ORSC

**Rows:** -

**Area:** Production

**Stores:** Resources (machines, labor)

**Table:** OACT

**Rows:** -

**Area:** Finance

**Stores:** Chart of accounts

**Table:** OJDT

**Rows:** JDT1

**Area:** Finance

**Stores:** Journal entries (header and lines)

**Table:** ORCT

**Rows:** RCT2 (invoice links)

**Area:** Finance

**Stores:** Incoming payments

**Table:** OVPM

**Rows:** VPM2 (invoice links)

**Area:** Finance

**Stores:** Outgoing payments

**Table:** OSTC

**Rows:** -

**Area:** Finance

**Stores:** Tax codes

**Table:** OCRN

**Rows:** -

**Area:** Finance

**Stores:** Currencies

**Table:** ORTT

**Rows:** -

**Area:** Finance

**Stores:** Exchange rates by date

**Table:** OUSR

**Rows:** -

**Area:** Administration

**Stores:** Users

**Table:** OHEM

**Rows:** -

**Area:** Administration

**Stores:** Employee master data

**Table:** OADM

**Rows:** ADM1

**Area:** Administration

**Stores:** Company details and general settings

**Table:** OWDD

**Rows:** WDD1

**Area:** Administration

**Stores:** Approval requests (documents awaiting approval)

**Table:** OWTM

**Rows:** WTM1

**Area:** Administration

**Stores:** Approval templates

**Table:** CUFD

**Rows:** -

**Area:** Administration

**Stores:** User-defined field definitions

**Table:** OUTB

**Rows:** -

**Area:** Administration

**Stores:** User-defined table definitions

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use the table list

**Body:** 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.

**Bullets:**

- 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

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### Are the table names the same on HANA and SQL Server?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

sap business one tables, sap b1 table list, sap b1 oitm table, sap business one database schema, sap b1 ordr rdr1, sap b1 query tables, sap b1 owor wor1, sap business one table names

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
