# Sage 100 Table and Module Prefix Reference

> Source: https://netray.co/tools/sage-100-table-and-module-prefix-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Find the Sage 100 module prefix and the commonly used table names for items, customers, vendors, orders and bills of material.

## Category

other-erp

## Erp

Sage 100

## Audience

- Sage 100 consultant
- Report writer
- ODBC integrator

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Table or prefix

**Key:** name

**Type:** text

#### Module

**Key:** module

**Type:** text

#### What it stores

**Key:** purpose

**Type:** text

**Rows:**

#### AR_

**Module:** Accounts Receivable

**Purpose:** Prefix for receivables tables

#### AP_

**Module:** Accounts Payable

**Purpose:** Prefix for payables tables

#### GL_

**Module:** General Ledger

**Purpose:** Prefix for general ledger tables

#### CI_

**Module:** Common Information

**Purpose:** Prefix for shared item, code and master tables

#### IM_

**Module:** Inventory Management

**Purpose:** Prefix for warehouse level inventory tables

#### SO_

**Module:** Sales Order

**Purpose:** Prefix for sales order tables

#### PO_

**Module:** Purchase Order

**Purpose:** Prefix for purchase order tables

#### BM_

**Module:** Bill of Materials

**Purpose:** Prefix for bill of materials tables

#### SY_

**Module:** System

**Purpose:** Prefix for system level tables such as company and user

#### CI_Item

**Module:** Common Information

**Purpose:** Item master

#### AR_Customer

**Module:** Accounts Receivable

**Purpose:** Customer master

#### AP_Vendor

**Module:** Accounts Payable

**Purpose:** Vendor master

#### GL_Account

**Module:** General Ledger

**Purpose:** Chart of accounts

#### IM_ItemWarehouse

**Module:** Inventory Management

**Purpose:** Item quantities and costs by warehouse

#### SO_SalesOrderHeader

**Module:** Sales Order

**Purpose:** Sales order headers

#### SO_SalesOrderDetail

**Module:** Sales Order

**Purpose:** Sales order lines

#### PO_PurchaseOrderHeader

**Module:** Purchase Order

**Purpose:** Purchase order headers

#### PO_PurchaseOrderDetail

**Module:** Purchase Order

**Purpose:** Purchase order lines

#### BM_BillHeader

**Module:** Bill of Materials

**Purpose:** Bill headers

#### BM_BillDetail

**Module:** Bill of Materials

**Purpose:** Bill component lines

**Notes:** Sage 100 data is normally read through the Sage 100 ODBC driver, which exposes these names. Table availability depends on your edition and installed modules, and names can vary slightly by version. Confirm in your own dictionary before building reports, and do not write through ODBC.

## Content

**Intro:** Sage 100 tables are named with a module prefix, an underscore and a descriptive name, which makes them easy to read through ODBC. This lookup lists the prefixes and the tables people search for most.

**Sections:**

#### How to use the lookup

**Body:** Filter by module or by a word like order or bill to find the table you need, then use that name in Crystal Reports, Excel or an ODBC query. Exporting to Excel is useful when you build a mapping for a migration. The first rows show the module prefixes themselves, which helps when you meet an unfamiliar table in a report written years ago.

#### Reading the structure

**Body:** Headers and details are separate tables, joined by the document number. Item data is split between the shared CI_Item master and warehouse level tables in Inventory Management. Because Sage 100 data can be exposed through ODBC, reporting tools connect easily, but the driver is a read channel for reports rather than a safe way to update data.

**Bullets:**

- Join header and detail on the document number
- CI_Item is the shared item master
- Use business objects for any updates

#### Common mistakes

**Body:** Frequent errors are reporting on warehouse quantities without a warehouse filter, ignoring edition differences when a module is not installed, and relying on a table name that was renamed in a newer version. Test every query against a copy and keep the ODBC login read only.

**Cta:** Many Sage 100 users reach a point where reports and integrations need rethinking. We can help assess the options.

**Faq:**

#### How do I connect to Sage 100 data?

**Answer:** Most reporting tools connect through the Sage 100 ODBC driver, set up as a data source on the server or workstation. Use a dedicated read-only user.

#### Where are item quantities stored?

**Answer:** Item definitions are in CI_Item, and quantities and costs by warehouse are in the Inventory Management warehouse table. Always filter by warehouse in reports.

#### Are these table names guaranteed?

**Answer:** They are widely used, but modules, editions and versions differ. Verify in your own installation before relying on a name in production reports.

#### Can I write to these tables?

**Answer:** Not safely. Use Sage 100 business objects, Visual Integrator or supported import tools so validation and related updates run.

## Search terms

sage 100 tables, sage 100 odbc table names, sage 100 ci_item table, sage 100 so_salesorderheader, sage 100 module prefixes, sage 100 crystal reports tables

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