EpicorFree referencePDF, Excel, Word exportEpicor Kinetic

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

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.

Download:
TableColumnTypeMeaningQuery tip
Erp.Part
Company
string
Company the part belongs to
Part of the key on almost every table. Always join on it.
Erp.Part
PartNum
string
Part number
Primary identifier. Watch trailing spaces from imports.
Erp.Part
PartDescription
string
Part description
Coalesce before concatenating.
Erp.Part
ClassID
string
Part class code
Join to PartClass for the class description.
Erp.Part
ProdCode
string
Product group code
Join to ProdGrup for the group description.
Erp.Part
IUM
string
Inventory unit of measure
Compare with SalesUM and PUM when converting quantities.
Erp.Part
SalesUM
string
Sales unit of measure
Differs from IUM when UOM classes are used.
Erp.Part
PUM
string
Purchasing unit of measure
Used on purchase orders by default.
Erp.Part
TypeCode
string
Part type: purchased or manufactured
Single letter codes. Check your release for the list.
Erp.Part
TrackLots
boolean
Part is lot tracked
Filter with = 1 in a BAQ.
Erp.Part
TrackSerialNum
boolean
Part is serial tracked
Filter with = 1 in a BAQ.
Erp.Part
NonStock
boolean
Part is a non stock item
Often excluded from stock reports.
Erp.Part
UnitPrice
decimal
Base list price
Not cost. Pricing lists can override it.
Erp.Part
InActive
boolean
Part is inactive
Filter out inactive parts in pick lists.
Erp.Part
SearchWord
string
Search word for lookups
Useful for fuzzy matching in dashboards.
Erp.JobHead
Company
string
Company of the job
Part of the job key.
Erp.JobHead
JobNum
string
Job number
Primary identifier. Child tables include JobAsmbl, JobMtl, JobOper.
Erp.JobHead
PartNum
string
Part being produced
Join to Part on Company and PartNum.
Erp.JobHead
PartDescription
string
Description copied to the job
May differ from the current Part description.
Erp.JobHead
RevisionNum
string
Revision of the part on the job
Compare with PartRev for engineering changes.
Erp.JobHead
ProdQty
decimal
Quantity to produce
Pair with QtyCompleted for percent complete.
Erp.JobHead
QtyCompleted
decimal
Quantity completed so far
Updated by job receipts and operation reporting.
Erp.JobHead
IUM
string
Unit of measure of the job quantity
Check before summing across parts.
Erp.JobHead
JobReleased
boolean
Job released to the shop floor
Filter for released work.
Erp.JobHead
JobEngineered
boolean
Job engineering complete
Often required before release.
Erp.JobHead
JobComplete
boolean
Job marked complete
Complete is not the same as closed.
Erp.JobHead
JobClosed
boolean
Job closed
Use with JobComplete to find open work.
Erp.JobHead
JobFirm
boolean
Job is firm
Unfirm jobs may be rescheduled by planning.
Erp.JobHead
StartDate
date
Scheduled start date
Set by scheduling.
Erp.JobHead
DueDate
date
Scheduled due date
Compare with ReqDueDate for slippage.
Erp.JobHead
ReqDueDate
date
Requested due date
The date asked for, not the scheduled one.
Erp.JobHead
ClosedDate
date
Date the job was closed
Null for open jobs.
Erp.OrderHed
Company
string
Company of the order
Part of the order key.
Erp.OrderHed
OrderNum
integer
Sales order number
Child tables include OrderDtl and OrderRel.
Erp.OrderHed
CustNum
integer
Customer number (sold to)
Join to Customer on Company and CustNum.
Erp.OrderHed
BTCustNum
integer
Bill to customer number
Can differ from CustNum.
Erp.OrderHed
PONum
string
Customer purchase order reference
Frequent search field for customer service.
Erp.OrderHed
OrderDate
date
Date the order was entered
Use for ageing and monthly trends.
Erp.OrderHed
NeedByDate
date
Customer need by date
Default for new lines.
Erp.OrderHed
RequestDate
date
Customer requested date
Compare with release dates for service level.
Erp.OrderHed
OpenOrder
boolean
Order is open
Core filter for backlog reports.
Erp.OrderHed
OrderHeld
boolean
Order is on hold
Exclude from available to promise views.
Erp.OrderHed
VoidOrder
boolean
Order is voided
Exclude from sales totals.
Erp.OrderHed
TermsCode
string
Payment terms code
Join to the terms table for the description.
Erp.OrderHed
ShipViaCode
string
Default ship via code
Lines can override it.
Erp.OrderHed
CurrencyCode
string
Order currency
Use Doc amount columns on child tables for this currency.
Erp.OrderHed
EntryPerson
string
User who entered the order
Useful for audit and training reviews.

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.

Ask your Epicor data in plain English

Optional: see how a read-only assistant maps questions to tables and shows the query it ran.

Optional. The tool and every export work without this. No spam.

How to use this table reference

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

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.

  • 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

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

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.

Frequently Asked Questions

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

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?

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?

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?

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.

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.