# Oracle EBS Employee, HR and Projects Tables

> Source: https://netray.co/tools/oracle-ebs-employee-hr-and-projects-tables-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Lookup of the EBS base tables for employees, assignments, organizations and Oracle Projects, with the key columns and joins you need for reports.

## Category

oracle

## Erp

Oracle E-Business Suite

## Audience

- Oracle EBS developer
- Report writer
- Oracle apps DBA

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Table

**Key:** table

**Type:** text

#### Module

**Key:** module

**Type:** select

**Options:**

- HRMS
- Projects
- Foundation

#### What it holds

**Key:** holds

**Type:** text

#### Key columns to join on

**Key:** keys

**Type:** text

#### Query tip

**Key:** tip

**Type:** text

**Rows:**

**Table:** PER_ALL_PEOPLE_F

**Module:** HRMS

**Holds:** Person records: employees, contingent workers, applicants.

**Keys:** PERSON_ID, EFFECTIVE_START_DATE, EFFECTIVE_END_DATE, EMPLOYEE_NUMBER, FULL_NAME

**Tip:** Date-effective. Filter with TRUNC(SYSDATE) BETWEEN effective dates.

**Table:** PER_ALL_ASSIGNMENTS_F

**Module:** HRMS

**Holds:** Assignments linking a person to organization, job, position and supervisor.

**Keys:** ASSIGNMENT_ID, PERSON_ID, ORGANIZATION_ID, JOB_ID, POSITION_ID, SUPERVISOR_ID, PRIMARY_FLAG

**Tip:** Filter PRIMARY_FLAG = 'Y' and ASSIGNMENT_TYPE = 'E' for current employee primary assignments.

**Table:** PER_PERIODS_OF_SERVICE

**Module:** HRMS

**Holds:** Employment periods with start and termination dates.

**Keys:** PERIOD_OF_SERVICE_ID, PERSON_ID, DATE_START, ACTUAL_TERMINATION_DATE

**Tip:** Use to find terminated employees and rehires.

**Table:** PER_JOBS

**Module:** HRMS

**Holds:** Job definitions.

**Keys:** JOB_ID, BUSINESS_GROUP_ID, NAME

**Tip:** Join from assignments on JOB_ID.

**Table:** PER_ALL_POSITIONS

**Module:** HRMS

**Holds:** Position definitions where position management is used.

**Keys:** POSITION_ID, ORGANIZATION_ID, NAME

**Tip:** Join from assignments on POSITION_ID.

**Table:** PER_PERSON_TYPES

**Module:** HRMS

**Holds:** Person types such as Employee, Ex-employee, Applicant.

**Keys:** PERSON_TYPE_ID, SYSTEM_PERSON_TYPE, USER_PERSON_TYPE

**Tip:** Join from PER_ALL_PEOPLE_F.PERSON_TYPE_ID.

**Table:** PER_ADDRESSES

**Module:** HRMS

**Holds:** Person addresses.

**Keys:** ADDRESS_ID, PERSON_ID, PRIMARY_FLAG, DATE_FROM, DATE_TO

**Tip:** Select the primary address within its date range.

**Table:** PER_PHONES

**Module:** HRMS

**Holds:** Person phone numbers.

**Keys:** PHONE_ID, PARENT_ID, PARENT_TABLE, PHONE_TYPE

**Tip:** Parent table value tells you which entity owns the phone.

**Table:** PER_BUSINESS_GROUPS

**Module:** HRMS

**Holds:** Business groups.

**Keys:** BUSINESS_GROUP_ID, NAME

**Tip:** Restrict reports to one business group where several exist.

**Table:** PAY_ALL_PAYROLLS_F

**Module:** HRMS

**Holds:** Payroll definitions.

**Keys:** PAYROLL_ID, PAYROLL_NAME

**Tip:** Join from assignments on PAYROLL_ID if Payroll is used.

**Table:** HR_ALL_ORGANIZATION_UNITS

**Module:** Foundation

**Holds:** Organizations including operating units, inventory organizations and departments.

**Keys:** ORGANIZATION_ID, NAME, BUSINESS_GROUP_ID

**Tip:** Names can be translated; join to the _TL table for the language you need.

**Table:** HR_ORGANIZATION_INFORMATION

**Module:** Foundation

**Holds:** Classifications and attributes of organizations.

**Keys:** ORGANIZATION_ID, ORG_INFORMATION_CONTEXT, ORG_INFORMATION1

**Tip:** Use context 'CLASS' and 'Operating Unit' style values to filter by type.

**Table:** HR_LOCATIONS_ALL

**Module:** Foundation

**Holds:** Locations used in assignments, ship-to and bill-to.

**Keys:** LOCATION_ID, LOCATION_CODE, ADDRESS_LINE_1

**Tip:** Join from assignments on LOCATION_ID.

**Table:** FND_USER

**Module:** Foundation

**Holds:** Application user accounts.

**Keys:** USER_ID, USER_NAME, EMPLOYEE_ID, END_DATE

**Tip:** EMPLOYEE_ID matches PER_ALL_PEOPLE_F.PERSON_ID. Filter end dates for active users.

**Table:** PA_PROJECTS_ALL

**Module:** Projects

**Holds:** Project headers.

**Keys:** PROJECT_ID, SEGMENT1 (project number), NAME, ORG_ID, PROJECT_TYPE, START_DATE, COMPLETION_DATE

**Tip:** Filter by ORG_ID in multi-org reports.

**Table:** PA_PROJECT_TYPES_ALL

**Module:** Projects

**Holds:** Project type definitions that drive classification and accounting.

**Keys:** PROJECT_TYPE, ORG_ID, PROJECT_TYPE_CLASS_CODE

**Tip:** Join on PROJECT_TYPE and ORG_ID.

**Table:** PA_TASKS

**Module:** Projects

**Holds:** Project work breakdown structure tasks.

**Keys:** TASK_ID, PROJECT_ID, TASK_NUMBER, TASK_NAME, PARENT_TASK_ID, TOP_TASK_ID

**Tip:** Use TOP_TASK_ID to roll lower level tasks up to top tasks.

**Table:** PA_PROJECT_PLAYERS

**Module:** Projects

**Holds:** People assigned to a project and their roles.

**Keys:** PROJECT_ID, PERSON_ID, PROJECT_ROLE_TYPE, START_DATE_ACTIVE, END_DATE_ACTIVE

**Tip:** Join PERSON_ID to PER_ALL_PEOPLE_F for names.

**Table:** PA_EXPENDITURES_ALL

**Module:** Projects

**Holds:** Expenditure batches grouped by person or organization and week.

**Keys:** EXPENDITURE_ID, EXPENDITURE_STATUS_CODE, INCURRED_BY_PERSON_ID, EXPENDITURE_ENDING_DATE

**Tip:** Parent of expenditure items.

**Table:** PA_EXPENDITURE_ITEMS_ALL

**Module:** Projects

**Holds:** Individual cost lines charged to project tasks.

**Keys:** EXPENDITURE_ITEM_ID, EXPENDITURE_ID, TASK_ID, EXPENDITURE_TYPE, QUANTITY, EXPENDITURE_ITEM_DATE

**Tip:** Join TASK_ID to PA_TASKS to reach the project.

**Table:** PA_EXPENDITURE_TYPES

**Module:** Projects

**Holds:** Expenditure type definitions.

**Keys:** EXPENDITURE_TYPE, EXPENDITURE_CATEGORY, REVENUE_CATEGORY_CODE

**Tip:** Use to group costs by category.

**Table:** PA_COST_DISTRIBUTION_LINES_ALL

**Module:** Projects

**Holds:** Costing and GL accounting for expenditure items.

**Keys:** EXPENDITURE_ITEM_ID, LINE_NUM, AMOUNT, DR_CODE_COMBINATION_ID, CR_CODE_COMBINATION_ID

**Tip:** Join code combination IDs to GL_CODE_COMBINATIONS for accounts.

**Table:** PA_DRAFT_REVENUES_ALL

**Module:** Projects

**Holds:** Draft revenue headers per project.

**Keys:** PROJECT_ID, DRAFT_REVENUE_NUM, RELEASED_DATE

**Tip:** Revenue is released before interface to GL.

**Table:** PA_DRAFT_INVOICES_ALL

**Module:** Projects

**Holds:** Draft invoice headers per project.

**Keys:** PROJECT_ID, DRAFT_INVOICE_NUM, RELEASED_DATE

**Tip:** Released drafts are transferred to Receivables.

**Table:** PA_AGREEMENTS_ALL

**Module:** Projects

**Holds:** Customer contract agreements funding projects.

**Keys:** AGREEMENT_ID, CUSTOMER_ID, AGREEMENT_NUM

**Tip:** Link to projects through funding records.

**Table:** PA_PROJECT_FUNDINGS

**Module:** Projects

**Holds:** Funding allocated from agreements to projects and tasks.

**Keys:** PROJECT_FUNDING_ID, AGREEMENT_ID, PROJECT_ID, TASK_ID

**Tip:** Bridge between agreements and projects.

**Table:** PA_BUDGET_VERSIONS

**Module:** Projects

**Holds:** Budget and forecast versions for a project.

**Keys:** BUDGET_VERSION_ID, PROJECT_ID, BUDGET_TYPE_CODE, CURRENT_FLAG

**Tip:** Filter CURRENT_FLAG = 'Y' for the active version.

**Table:** PA_PROJECT_STATUSES

**Module:** Projects

**Holds:** Project status definitions.

**Keys:** PROJECT_STATUS_CODE, PROJECT_STATUS_NAME

**Tip:** Join from PA_PROJECTS_ALL on the status code.

**Notes:** Table and column names are shown for Release 12 style data models and may differ by patch level, installed products and custom extensions. Verify with DESCRIBE or the Oracle Electronic Technical Reference Manual for your release. Supplier, purchasing, GL and payables tables are in the Oracle EBS finance tables reference.

## Content

**Intro:** This is a lookup for the Oracle E-Business Suite tables behind employees, HR organizations and Oracle Projects. It lists the key columns you join on and a tip for each, so you can write a report query without searching documentation.

**Sections:**

#### How to use the table list

**Body:** Filter by module to see only HRMS, Projects or foundation tables, or search by a word such as employee, task or expenditure. Each row shows the columns most reports join on and a short tip about date ranges or flags. Export the list to Excel for a design document. Supplier tables such as AP_SUPPLIERS and purchasing tables are covered in the Oracle EBS finance tables reference, so this page concentrates on people and projects.

#### The employee model

**Body:** In EBS the employee is a person record in PER_ALL_PEOPLE_F, with a row per date-effective change. Assignments in PER_ALL_ASSIGNMENTS_F link the person to organization, job, position, location and supervisor. Employment periods are in PER_PERIODS_OF_SERVICE. To find the employee behind a user, join FND_USER.EMPLOYEE_ID to PER_ALL_PEOPLE_F.PERSON_ID. To find a buyer on a purchase order, the agent id on the PO header points to a person.

**Bullets:**

- Always filter date-effective tables by the date you need
- Pick the primary assignment unless the report needs all of them
- Use views such as PER_PEOPLE_F only when you know their security behavior

#### The projects model

**Body:** A project in PA_PROJECTS_ALL has a task hierarchy in PA_TASKS. Costs arrive as expenditure items in PA_EXPENDITURE_ITEMS_ALL, charged to a task, and are costed in PA_COST_DISTRIBUTION_LINES_ALL, where the accounting code combinations live. Revenue and invoices start as drafts in PA_DRAFT_REVENUES_ALL and PA_DRAFT_INVOICES_ALL and are released before they transfer to the ledger and receivables. Agreements and fundings connect customer contracts to projects.

#### Common mistakes in EBS reporting queries

**Body:** Forgetting date-effective filters returns duplicate people. Forgetting the multi-org filter on _ALL tables mixes operating units. Joining projects to costs through project id alone misses the task level. Reading base tables directly also bypasses application security, so confirm that your database access and data handling follow your company policy, especially for personal HR data. Test every query on a non-production copy first.

**Cta:** If you want people to ask EBS questions in plain language without opening the HR or Projects data to everyone, Netray can build a private, role-aware layer on your servers. The list is free to use as is.

**Faq:**

#### What is the employee table in Oracle EBS?

**Answer:** The main table is PER_ALL_PEOPLE_F, which holds person records with effective dates. Employee assignments are in PER_ALL_ASSIGNMENTS_F, and employment dates are in PER_PERIODS_OF_SERVICE. Filter by effective date to get the current row.

#### Which tables hold Oracle EBS Projects data?

**Answer:** PA_PROJECTS_ALL for projects, PA_TASKS for tasks, PA_EXPENDITURE_ITEMS_ALL for cost lines, PA_COST_DISTRIBUTION_LINES_ALL for accounting, and PA_DRAFT_REVENUES_ALL and PA_DRAFT_INVOICES_ALL for revenue and billing.

#### How do I link an EBS user to an employee?

**Answer:** Join FND_USER.EMPLOYEE_ID to PER_ALL_PEOPLE_F.PERSON_ID, and filter the person row on today's date within its effective start and end dates. Some users, such as service accounts, have no employee.

#### Where can I list all Oracle EBS tables?

**Answer:** Query ALL_TABLES or DBA_TABLES filtered by owner, such as the product schema, or use the Electronic Technical Reference Manual for your release. This page lists the commonly used HR and Projects tables rather than every table.

## Search terms

oracle ebs employee table, per_all_people_f columns, oracle ebs projects tables, pa_projects_all table, oracle apps hr tables, oracle ebs data model hr, per_all_assignments_f join, list all oracle ebs tables

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