Resources & Cost

A Role

A role is a skill; not RSRC; not MSP Generic; staff later

P6 Resources tab. Role is the last assignment column, after Original Lag, Start, Finish, and units.
Role is an assignment column. A role is a skill, not a named resource.

What a planner means

Oracle: roles are personnel job titles or skills (architect, general laborer, engineer). You build a standard hierarchy, assign roles to labor and nonlabor resources and to activities, and set multiple price/unit rates and units/time limits. The roles on an activity are its skill requirements.

You can assign one or more roles to a resource, with a proficiency and exactly one primary role (the main role that resource is performing). Oracle’s example: Joe is 1 – Master as software engineer, but his primary role is manager at 3 – Skilled.

Assign roles to activities the way you assign resources while the plan is still a skill request. When staffing is known, replace the role with a resource. A role-only assignment is not a named person.

A preference can make the role limit include limits of resources who have that role as primary (and whether inactive resources count). Default: role limits from the primary resource’s limit, which “may not accurately reflect a role’s planned allocation.” You can instead define custom limits over time (unique effective date per row). API: max units/time “should correspond to the number of people who can fill this role.”

This is not RSRC, not OBS, and not an activity code.

XER

ROLES

ColumnOracle label
role_idUnique ID
role_short_nameRole ID
role_nameRole Name
parent_role_idParent Role
role_descrResponsibilities
seq_numSort Order
cost_qty_typePrice Time Units
def_cost_qty_link_flagCalculate costs from units

RSRCROLE (resource ↔ role)

ColumnOracle label
rsrc_idResource
role_idRole
skill_levelProficiency
rsrc_role_idRole (map repeats a Role label — do not invent which is primary)

Stored proficiency tokens are not listed. Oracle’s UI example uses “1 – Master” / “3 – Skilled”. Do not invent SL_* codes.

ROLELIMIT

ColumnOracle label
rolelimit_idUnique ID
role_idRole ID
max_qty_per_hrMax Units / Time
start_dateEffective Date

ROLERATE — role prices; see RSRC / TASKRSRC (and Roles / Prices). RSRC.role_id is the resource’s Primary Role. TASKRSRC.role_id is the Role on the assignment. An assignment can point at a resource, a role, or both — exact UI pairing when one is blank is unverified.

Microsoft Project

There is no role dictionary. A Generic resource is a Yes/No flag on a resource (“identified by skill rather than by name”). You later replace that resource with a named one (Resource Substitution Wizard in enterprise). Same planning idea. Not the same object. A P6 role is a hierarchy with rates, limits, and proficiency. Generic is one checkbox on RSRC-equivalent.

Don't

  • Treat ROLES as RSRC, or role_id as rsrc_id.
  • Treat a role assignment as a named person, or a generic MSP resource as a P6 role row.
  • Treat OBS Responsible Manager as a role.
  • Invent skill_level tokens, or assume rsrc_role_id is primary without a citation.
  • Collapse role-only TASKRSRC rows into named resources without saying the person was invented.

Sources

Back to top