Codes, UDFs & Notes
Project Codes Tag Projects, Not Activities
PCATTYPE / PCATVAL / PROJPCAT tag projects; not activity codes; zero or one per type

What a planner means
Project codes track projects by characteristics they share. Oracle: use them to arrange projects hierarchically when the EPS has many projects, and to group and filter across the organization. The application supports an almost unlimited number of hierarchical project codes and values.
They sit on the project, not on an activity. They are not the EPS, not OBS, and not activity codes.
REST / API: for each project code type, a project may have zero or one value assigned.
Creating a code: unique name, optional Secure (read-only without the privilege), maximum length for value names. Values are hierarchical (siblings / children). Professional also has a weight on the type and on values (proj_catg_type_wt, proj_catg_wt, max_proj_catg_wt) — EPPM map marks those Professional only.
XER
PCATTYPE (Project Codes)
| Column | Oracle label |
|---|---|
proj_catg_type_id | Unique ID |
proj_catg_type | Project Code |
proj_catg_short_len | Max Code Length |
seq_num | Sort Order |
super_flag | Secure Code |
proj_catg_type_wt | Weight (Professional only) |
max_proj_catg_wt | Max Code Value Weight (Professional only) |
PCATVAL (Project Code Values)
| Column | Oracle label |
|---|---|
proj_catg_id | Unique ID |
proj_catg_short_name | Project Code Value |
proj_catg_name | Code Description |
proj_catg_type_id | Project Code |
parent_proj_catg_id | Parent Code |
seq_num | Sort Order |
proj_catg_wt | Weight (Professional only) |
PROJPCAT (assignments)
| Column | Oracle label |
|---|---|
proj_id | Project |
proj_catg_type_id | Project Code |
proj_catg_id | Code Value |
vs activity codes
Same shape (type + hierarchical values + one assignment per type). Different object and different tables. Activity codes go on TASK via TASKACTV. Project codes go on PROJECT via PROJPCAT. Do not reuse ACTVTYPE for project codes.
Microsoft Project
Desktop Project has no project-code dictionary. Enterprise / Project Online custom fields on the project are fixed slots, not PCATTYPE/PCATVAL. Outline codes are for tasks or resources. Do not map PROJPCAT to a task Outline Code.
Don't
- Treat project codes as activity codes, EPS nodes, or OBS.
- Assign two values of the same project code type to one project.
- Draw project codes as the WBS or as the EPS tree.
- Map PCATTYPE to ACTVTYPE or to MSP Text1 / Outline Code and call them the same object.