# SAP Business One tables list: the core tables and how the names work

> Source: https://netray.co/erp-help/sap-business-one-tables-list-oitm-ordr-owor-prefix-conventions
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

SAP Business One table names follow a pattern: O plus a short object name for header tables (OITM items, OCRD partners, ORDR sales orders), the same letters with a 1 for row tables (RDR1), and U_ prefixed columns or @ prefixed tables for user-defined objects. Read them for reports, but write only through the DI API or Service Layer.

## Kind

how-to

## System

sap

## Erp

SAP Business One

## Module

Database / Reporting

## Query

sap business one tables list

## Alternate Queries

- sap b1 table list
- sap b1 oitm ordr table
- sap business one database schema

## Applies To

SAP Business One 10.0 on SQL Server and HANA. Column sets vary by version and localization; check the DI API reference.

## Steps

### Find the table you need

**Items:**

- In the client, open the form and turn on System Information (View > System Information), then hover over a field to see its table and field name.
- Open the DI API reference (Help Portal) for the object, which lists the table and fields for each business object.
- Query the metadata: INFORMATION_SCHEMA.COLUMNS on SQL Server, or SYS.TABLE_COLUMNS on HANA, for column names.
- Use SELECT with a TOP or LIMIT clause, never an unbounded query, in production hours.
- For reports, build a saved query or a Crystal layout. For external tools use a read-only database user or replica.

## Sections

### Core table list

**Body:**

Master data: OITM (items), OITW (item stock per warehouse), OCRD (business partners), OCRG (partner groups), OWHS (warehouses), OITB (item groups), OHEM (employees), OUSR (users). Sales: OQUT (quotations), ORDR (sales orders), ODLN (deliveries), OINV (A/R invoices), ORIN (credit memos). Purchasing: OPOR (purchase orders), OPDN (goods receipt PO), OPCH (A/P invoices). Each has a row table with the numeral 1: QUT1, RDR1, DLN1, INV1, POR1, PDN1, PCH1.

Production and inventory: OITT/ITT1 (BOM), OWOR/WOR1 (production orders), OIGN/IGN1 (goods receipt), OIGE/IGE1 (goods issue), OINM (inventory audit log). Finance: OJDT/JDT1 (journal entries), OACT (chart of accounts), OPRC (distribution rules). Metadata: CINF (company info), OADM (admin settings).

**Code:**

- -- Top 10 items with stock and price list 1 price (SQL Server)
- SELECT TOP 10 T0.ItemCode, T0.ItemName, T0.OnHand, T1.Price
- FROM OITM T0 LEFT JOIN ITM1 T1 ON T0.ItemCode = T1.ItemCode AND T1.PriceList = 1
- ORDER BY T0.OnHand DESC;

### Naming conventions

**Body:**

A header table starts with O (for object): OITM, ORDR. Its rows live in a table where the O is dropped and a 1 is added: RDR1 for ORDR. Some objects have more tables with 2, 3 and so on for addresses, expenses or installments (RDR12 holds address data for sales orders, for example). Column names are typically CamelCase and keys like DocEntry (internal number) and DocNum (displayed number) are different: join on DocEntry, display DocNum.

User-defined fields are columns with a U_ prefix on the standard table, and user-defined tables appear with an @ prefix (shown as @TABLENAME). Add-ons often create their own tables with their own prefix. On HANA the schema is the company database name and identifiers are quoted in double quotes.

### Safe use in reports and integrations

**Body:**

Reading is fine; use WITH (NOLOCK) on SQL Server only if you understand dirty reads, and prefer a replica or reporting copy for heavy queries. Never insert or update these tables yourself: posting rules, numbering, audit logs and linked tables would be bypassed and the SAP support position is clear on this.

For writes use the DI API or Service Layer, which validate the document and update all linked tables. For Service Layer questions see the related help pages.

## Pitfalls

- Joining on DocNum instead of DocEntry.
- Writing to the tables directly and breaking numbering and the audit trail.
- Running unbounded queries on production during business hours.
- Forgetting the Canceled and DocStatus filters so cancelled documents appear in reports.
- Assuming column names are the same across versions and localizations.

## Ai Angle

Knowing table names is the barrier for most business users. A read-only assistant that already understands the Business One schema, such as ERPray, turns a question into a SQL query against these tables, shows the query, and runs it with the user's permissions. Keeping it on-prem means no schema or data leaves your servers.

## Faq

### What does the O prefix mean in SAP Business One tables?

**Answer:** It marks the header or object table of a business object, such as OITM for items or ORDR for sales orders. The row table drops the O and adds 1, like RDR1 for sales order rows.

### What is the difference between DocEntry and DocNum?

**Answer:** DocEntry is the internal unique key of a document, while DocNum is the number shown to users and may depend on the numbering series. Join tables on DocEntry and show DocNum on reports.

### Can I update Business One tables with SQL?

**Answer:** You should not. Direct updates bypass validation, numbering and logging and can corrupt data and void support. Use the DI API or the Service Layer for writes.

### How do I find the table behind a screen?

**Answer:** Turn on System Information in the View menu and hover over a field to see the table and field name, or check the DI API reference for the business object.

## Search terms

sap business one tables list, sap b1 table list, oitm table sap b1, ordr table sap business one, owor table, sap b1 database schema, sap b1 docentry docnum, sap business one sql queries

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