Roles in Primavera P6 software have two uses:

1. Assigning of a title/designation/craft/position to resources.

When we create a Labor resource, for example I created a resource called 'Adam'. While creating this resource, we can assign Role to this resource, so that we can distinguish the roles.

Imagine that you have 100s of resources, it would be difficult to categorize them unless you have assigned them their specific roles. By assigning roles to resources, searching them, viewing them becomes simpler. Furthermore, if you want to view cost or other detail of resources by specific roles, we can also do that.

2. Temporary 'resource' 

Say, you need a architect to work on your project but presently there is no architect in the company. So you can assign role 'Architect' to the activities, since cost and other detail will be added to the actvity as well as project.  If we do not do this, then the project cost, units will be missing details for the architect resource, hence incomplete information.

Once the architect has been hired, his name is known, you will create his resource, assign to activities, and remove the 'Architect' role from the same activity.

These were the uses of Roles in Primavera. Hope it helped.