# Epicor Table Reference: Erp.Part, Erp.JobHead, Erp.OrderHed

> Source: https://netray.co/tools/epicor-erp-part-jobhead-orderhed-table-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Searchable list of frequently used columns in three core Epicor tables, with type and usage notes for BAQs, reports and REST queries.

## Category

epicor

## Erp

Epicor Kinetic

## Audience

- Epicor developer
- BAQ author
- Report developer

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Table

**Key:** table

**Type:** text

#### Column

**Key:** column

**Type:** text

#### Type

**Key:** type

**Type:** text

#### Meaning

**Key:** meaning

**Type:** text

#### Query tip

**Key:** tip

**Type:** text

**Rows:**

**Table:** Erp.Part

**Column:** Company

**Type:** string

**Meaning:** Company the part belongs to

**Tip:** Part of the key on almost every table. Always join on it.

**Table:** Erp.Part

**Column:** PartNum

**Type:** string

**Meaning:** Part number

**Tip:** Primary identifier. Watch trailing spaces from imports.

**Table:** Erp.Part

**Column:** PartDescription

**Type:** string

**Meaning:** Part description

**Tip:** Coalesce before concatenating.

**Table:** Erp.Part

**Column:** ClassID

**Type:** string

**Meaning:** Part class code

**Tip:** Join to PartClass for the class description.

**Table:** Erp.Part

**Column:** ProdCode

**Type:** string

**Meaning:** Product group code

**Tip:** Join to ProdGrup for the group description.

**Table:** Erp.Part

**Column:** IUM

**Type:** string

**Meaning:** Inventory unit of measure

**Tip:** Compare with SalesUM and PUM when converting quantities.

**Table:** Erp.Part

**Column:** SalesUM

**Type:** string

**Meaning:** Sales unit of measure

**Tip:** Differs from IUM when UOM classes are used.

**Table:** Erp.Part

**Column:** PUM

**Type:** string

**Meaning:** Purchasing unit of measure

**Tip:** Used on purchase orders by default.

**Table:** Erp.Part

**Column:** TypeCode

**Type:** string

**Meaning:** Part type: purchased or manufactured

**Tip:** Single letter codes. Check your release for the list.

**Table:** Erp.Part

**Column:** TrackLots

**Type:** boolean

**Meaning:** Part is lot tracked

**Tip:** Filter with = 1 in a BAQ.

**Table:** Erp.Part

**Column:** TrackSerialNum

**Type:** boolean

**Meaning:** Part is serial tracked

**Tip:** Filter with = 1 in a BAQ.

**Table:** Erp.Part

**Column:** NonStock

**Type:** boolean

**Meaning:** Part is a non stock item

**Tip:** Often excluded from stock reports.

**Table:** Erp.Part

**Column:** UnitPrice

**Type:** decimal

**Meaning:** Base list price

**Tip:** Not cost. Pricing lists can override it.

**Table:** Erp.Part

**Column:** InActive

**Type:** boolean

**Meaning:** Part is inactive

**Tip:** Filter out inactive parts in pick lists.

**Table:** Erp.Part

**Column:** SearchWord

**Type:** string

**Meaning:** Search word for lookups

**Tip:** Useful for fuzzy matching in dashboards.

**Table:** Erp.JobHead

**Column:** Company

**Type:** string

**Meaning:** Company of the job

**Tip:** Part of the job key.

**Table:** Erp.JobHead

**Column:** JobNum

**Type:** string

**Meaning:** Job number

**Tip:** Primary identifier. Child tables include JobAsmbl, JobMtl, JobOper.

**Table:** Erp.JobHead

**Column:** PartNum

**Type:** string

**Meaning:** Part being produced

**Tip:** Join to Part on Company and PartNum.

**Table:** Erp.JobHead

**Column:** PartDescription

**Type:** string

**Meaning:** Description copied to the job

**Tip:** May differ from the current Part description.

**Table:** Erp.JobHead

**Column:** RevisionNum

**Type:** string

**Meaning:** Revision of the part on the job

**Tip:** Compare with PartRev for engineering changes.

**Table:** Erp.JobHead

**Column:** ProdQty

**Type:** decimal

**Meaning:** Quantity to produce

**Tip:** Pair with QtyCompleted for percent complete.

**Table:** Erp.JobHead

**Column:** QtyCompleted

**Type:** decimal

**Meaning:** Quantity completed so far

**Tip:** Updated by job receipts and operation reporting.

**Table:** Erp.JobHead

**Column:** IUM

**Type:** string

**Meaning:** Unit of measure of the job quantity

**Tip:** Check before summing across parts.

**Table:** Erp.JobHead

**Column:** JobReleased

**Type:** boolean

**Meaning:** Job released to the shop floor

**Tip:** Filter for released work.

**Table:** Erp.JobHead

**Column:** JobEngineered

**Type:** boolean

**Meaning:** Job engineering complete

**Tip:** Often required before release.

**Table:** Erp.JobHead

**Column:** JobComplete

**Type:** boolean

**Meaning:** Job marked complete

**Tip:** Complete is not the same as closed.

**Table:** Erp.JobHead

**Column:** JobClosed

**Type:** boolean

**Meaning:** Job closed

**Tip:** Use with JobComplete to find open work.

**Table:** Erp.JobHead

**Column:** JobFirm

**Type:** boolean

**Meaning:** Job is firm

**Tip:** Unfirm jobs may be rescheduled by planning.

**Table:** Erp.JobHead

**Column:** StartDate

**Type:** date

**Meaning:** Scheduled start date

**Tip:** Set by scheduling.

**Table:** Erp.JobHead

**Column:** DueDate

**Type:** date

**Meaning:** Scheduled due date

**Tip:** Compare with ReqDueDate for slippage.

**Table:** Erp.JobHead

**Column:** ReqDueDate

**Type:** date

**Meaning:** Requested due date

**Tip:** The date asked for, not the scheduled one.

**Table:** Erp.JobHead

**Column:** ClosedDate

**Type:** date

**Meaning:** Date the job was closed

**Tip:** Null for open jobs.

**Table:** Erp.OrderHed

**Column:** Company

**Type:** string

**Meaning:** Company of the order

**Tip:** Part of the order key.

**Table:** Erp.OrderHed

**Column:** OrderNum

**Type:** integer

**Meaning:** Sales order number

**Tip:** Child tables include OrderDtl and OrderRel.

**Table:** Erp.OrderHed

**Column:** CustNum

**Type:** integer

**Meaning:** Customer number (sold to)

**Tip:** Join to Customer on Company and CustNum.

**Table:** Erp.OrderHed

**Column:** BTCustNum

**Type:** integer

**Meaning:** Bill to customer number

**Tip:** Can differ from CustNum.

**Table:** Erp.OrderHed

**Column:** PONum

**Type:** string

**Meaning:** Customer purchase order reference

**Tip:** Frequent search field for customer service.

**Table:** Erp.OrderHed

**Column:** OrderDate

**Type:** date

**Meaning:** Date the order was entered

**Tip:** Use for ageing and monthly trends.

**Table:** Erp.OrderHed

**Column:** NeedByDate

**Type:** date

**Meaning:** Customer need by date

**Tip:** Default for new lines.

**Table:** Erp.OrderHed

**Column:** RequestDate

**Type:** date

**Meaning:** Customer requested date

**Tip:** Compare with release dates for service level.

**Table:** Erp.OrderHed

**Column:** OpenOrder

**Type:** boolean

**Meaning:** Order is open

**Tip:** Core filter for backlog reports.

**Table:** Erp.OrderHed

**Column:** OrderHeld

**Type:** boolean

**Meaning:** Order is on hold

**Tip:** Exclude from available to promise views.

**Table:** Erp.OrderHed

**Column:** VoidOrder

**Type:** boolean

**Meaning:** Order is voided

**Tip:** Exclude from sales totals.

**Table:** Erp.OrderHed

**Column:** TermsCode

**Type:** string

**Meaning:** Payment terms code

**Tip:** Join to the terms table for the description.

**Table:** Erp.OrderHed

**Column:** ShipViaCode

**Type:** string

**Meaning:** Default ship via code

**Tip:** Lines can override it.

**Table:** Erp.OrderHed

**Column:** CurrencyCode

**Type:** string

**Meaning:** Order currency

**Tip:** Use Doc amount columns on child tables for this currency.

**Table:** Erp.OrderHed

**Column:** EntryPerson

**Type:** string

**Meaning:** User who entered the order

**Tip:** Useful for audit and training reviews.

**Notes:** These are commonly used columns, not a full data dictionary. Types are simplified. Always confirm names and types for your release with the Data Dictionary Viewer or the REST metadata, since fields are added and renamed between versions.

## Content

**Intro:** Most Epicor query work starts with the same three tables: parts, jobs and orders. This reference lists the columns developers reach for most, with a short tip for each.

**Sections:**

#### How to use this table reference

**Body:** Use the search box to filter by table or column name, then copy the name into your BAQ, SSRS data definition, function or REST filter. Keep in mind that the table name may appear as Erp.Part in BAQ and REST contexts and as Part in the UI and in query builder aliases. The tip column highlights how the column is normally used: as a join key, a status filter or a date for ageing. Export the list to Excel or PDF for a team cheat sheet.

#### Keys and joins

**Body:** Almost every Epicor table carries Company as part of its key. Forgetting it in a join is a common reason for duplicated rows in multi company databases. Part joins to JobHead on Company and PartNum, OrderHed joins to Customer on Company and CustNum, and child tables like OrderDtl and JobMtl extend the parent key with line or sequence numbers. When a result set is larger than expected, check that every join includes Company and the full parent key.

**Bullets:**

- Always include Company in joins
- Include the full parent key for child tables
- Beware optional relationships that multiply rows
- Use distinct counts when joins fan out

#### Status flags

**Body:** Jobs and orders carry several boolean flags that describe their stage: released, engineered, complete, closed for jobs, and open, held, void for orders. These flags are not mutually exclusive, so a job can be complete and not yet closed. Define the meaning of open work explicitly in your report rules and use that definition consistently, otherwise two reports will disagree on backlog.

#### Limits of this reference

**Body:** The list is intentionally partial. Epicor tables have many more columns, and UD fields are added by each site. Use the Data Dictionary Viewer for the full schema and for exact types, and test queries with a small row limit before running them against production data. Treat any description here as a hint, not a specification.

**Cta:** If your team spends time hunting through schemas to answer simple questions, Netray can discuss a read-only assistant that finds the right tables and shows its query.

**Faq:**

#### How do I see all columns of Erp.Part in Epicor?

**Answer:** Open the Data Dictionary Viewer in Epicor, search for the Part table and review its fields, including any UD columns your site added. The Query Builder also lists every field when you add the table to a BAQ.

#### What is the difference between JobComplete and JobClosed?

**Answer:** JobComplete means production is finished, while JobClosed means the job has been closed in the system, typically after costs are finalized. A job can be complete yet still open for costing, so open work reports usually test JobClosed.

#### Why do my BAQ results double up?

**Answer:** Usually a join is missing Company or a key part, or a one to many relationship multiplies rows. Check the join conditions, then aggregate or use distinct counts where fan out is expected.

#### Can I use these table names in the REST API?

**Answer:** The REST API exposes data through business object services such as Erp.BO.PartSvc rather than raw tables, but the field names in the returned data match the same naming. Use the metadata or help page of your instance to confirm.

## Search terms

epicor erp.part table, epicor erp.jobhead fields, epicor erp.orderhed fields, epicor table reference, epicor database schema, epicor data dictionary, epicor baq table fields, epicor part table columns

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