java.lang.Object
com.primavera.integration.client.BOBase
com.primavera.integration.client.bo.BusinessObject
com.primavera.integration.client.bo.base.RoleBase
com.primavera.integration.client.bo.object.Role

public class Role extends com.primavera.integration.client.bo.base.RoleBase

Roles are project personnel job titles or skills, such as mechanical engineer, inspector, or carpenter. They represent a type of resource with a certain level of proficiency rather than a specific individual. Roles can also be assigned to specific resources to further identify that resource's skills. For example, a resource may have a role of a engineer and manager.

You can create a set of roles to assign to resources and activities in all projects in the enterprise. You can establish an unlimited number of roles and organize them in a hierarchy for easier management and assignment. The set of roles you assign to an activity defines the activity's skill requirements.

You can temporarily assign roles during the planning stages of the project to see how certain resources affect the schedule. Once you finalize your plans, you can replace the roles with resources that fulfill the role skill levels. Five proficiency levels can be assigned to roles: Master, Expert, Skilled, Proficient and Inexperienced.

Roles may be loaded with summarized project role spreads using the loadWithProjectRoleSpread() method. All projects must have been previously summarized using the summarizer job service. The ObjectId(s) of the project(s) are normally specified for which to load the project role spreads. If no project ObjectIds are specified, project role spreads are loaded for all projects to which the role is assigned. After loading, call the getProjectRoleSpreads() method to access the spread data.

Roles are hierarchical objects.

See Also:   Quick reference of Role fields

  • Constructor Details

    • Role

      public Role(Session session)
      Class constructor specifying the Session. This constructor is most commonly used when create() is intended to be called on this object.
      Parameters:
      session - the Session
    • Role

      public Role(Session session, ObjectId objId) throws BusinessObjectException
      Class constructor specifying the Session and ObjectId of the object. This constructor is most commonly used when update() will be called on this object.
      Parameters:
      session - the Session
      objId - the ObjectId
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • Role

      public Role(Session session, com.primavera.infr.db.PrmRowSet rowSet, int iIndex) throws BusinessObjectException
      Class constructor called internally after objects are retrieved from the server. Client code should use one of the other constructors for this class.
      Parameters:
      session - the Session
      rowSet - the PrmRowSet retrieved from the server
      iIndex - the row index in the PrmRowSet associated with this business object
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
  • Method Details

    • loadParentRole

      public Role loadParentRole(String[] fields) throws ServerException, NetworkException, BusinessObjectException
      Loads an associated Role object from the database.
      Parameters:
      fields - fields to load
      Returns:
      Role the Role object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • createRoleChild

      public ObjectId createRoleChild(Role rolechild) throws ServerException, NetworkException, BusinessObjectException
      Creates an associated Role object in the database.
      Parameters:
      rolechild - RoleChild object to create
      Returns:
      ObjectId unique ID of the newly created Role object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • createRoleChildren

      public ObjectId[] createRoleChildren(Role[] rolechildren) throws ServerException, NetworkException, BusinessObjectException
      Creates multiple associated Role objects in the database.
      Parameters:
      rolechildren - array of RoleChild objects to create
      Returns:
      ObjectId[] array of object ids of newly created Role objects
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadRoleChildren

      public BOIterator<Role> loadRoleChildren(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated Role objects from the database.
      Parameters:
      fields - fields to load
      sWhereClause - where clause
      sOrderBy - order-by clause
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadRootRoles

      public static BOIterator<Role> loadRootRoles(Session session, String[] fields) throws ServerException, NetworkException, BusinessObjectException
      Loads the root Role objects from the database.
      Parameters:
      session - the Session object
      fields - fields to load
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadRoleCodeAssignments

      public BOIterator<RoleCodeAssignment> loadRoleCodeAssignments(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated RoleCodeAssignment objects from the database.
      Parameters:
      fields - fields to load
      sWhereClause - where clause
      sOrderBy - order-by clause
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadResourceRoles

      public BOIterator<ResourceRole> loadResourceRoles(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated ResourceRole objects from the database.
      Parameters:
      fields - fields to load
      sWhereClause - where clause
      sOrderBy - order-by clause
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadResourceAssignments

      public BOIterator<ResourceAssignment> loadResourceAssignments(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated ResourceAssignment objects from the database.
      Parameters:
      fields - fields to load
      sWhereClause - where clause
      sOrderBy - order-by clause
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • createRoleRate

      public ObjectId createRoleRate(RoleRate rolerate) throws ServerException, NetworkException, BusinessObjectException
      Creates an associated RoleRate object in the database.
      Parameters:
      rolerate - RoleRate object to create
      Returns:
      ObjectId unique ID of newly created RoleRate object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadRoleRate

      public RoleRate loadRoleRate(String[] fields) throws ServerException, NetworkException, BusinessObjectException
      Loads an associated RoleRate object from the database.
      Parameters:
      fields - fields to load
      Returns:
      RoleRate the RoleRate object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • createRoleLimit

      public ObjectId createRoleLimit(RoleLimit rolelimit) throws ServerException, NetworkException, BusinessObjectException
      Creates an associated RoleLimit object in the database.
      Parameters:
      rolelimit - RoleLimit object to create
      Returns:
      ObjectId unique ID of the newly created RoleLimit object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • createRoleLimits

      public ObjectId[] createRoleLimits(RoleLimit[] rolelimits) throws ServerException, NetworkException, BusinessObjectException
      Creates multiple associated RoleLimit objects in the database.
      Parameters:
      rolelimits - array of RoleLimit objects to create
      Returns:
      ObjectId[] array of object ids of newly created RoleLimit objects
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadRoleLimits

      public BOIterator<RoleLimit> loadRoleLimits(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated RoleLimit objects from the database.
      Parameters:
      fields - fields to load
      sWhereClause - where clause
      sOrderBy - order-by clause
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getParentObjectId

      public ObjectId getParentObjectId() throws BusinessObjectException
      Gets the unique ID of the parent role of this role in the hierarchy. This field is automatically loaded by default whenever this type of business object is loaded from the database.
      Returns:
      the value in the field ParentObjectId
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setParentObjectId

      public void setParentObjectId(ObjectId o) throws BusinessObjectException
      Sets the unique ID of the parent role of this role in the hierarchy. This field is automatically loaded by default whenever this type of business object is loaded from the database.
      Parameters:
      o - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getObjectId

      public ObjectId getObjectId() throws BusinessObjectException
      Gets the unique ID generated by the system. This field is automatically loaded by default whenever this type of business object is loaded from the database.
      Overrides:
      getObjectId in class BusinessObject
      Returns:
      the value in the field ObjectId
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setObjectId

      public void setObjectId(ObjectId o) throws BusinessObjectException
      Sets the unique ID generated by the system. This field is automatically loaded by default whenever this type of business object is loaded from the database.
      Overrides:
      setObjectId in class BusinessObject
      Parameters:
      o - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getSequenceNumber

      public int getSequenceNumber() throws BusinessObjectException
      Gets the sequence number for sorting.
      Returns:
      the value in the field SequenceNumber
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setSequenceNumber

      public void setSequenceNumber(int i) throws BusinessObjectException
      Sets the sequence number for sorting.
      Parameters:
      i - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getId

      public String getId() throws BusinessObjectException
      Gets the short code that uniquely identifies the role. This field must contain a valid value in order to create this type of business object in the database.
      Returns:
      the value in the field Id
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setId

      public void setId(String s) throws BusinessObjectException
      Sets the short code that uniquely identifies the role. This field must contain a valid value in order to create this type of business object in the database.
      Parameters:
      s - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getName

      public String getName() throws BusinessObjectException
      Gets the name of the role. The role name uniquely identifies the role. This field must contain a valid value in order to create this type of business object in the database.
      Returns:
      the value in the field Name
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setName

      public void setName(String s) throws BusinessObjectException
      Sets the name of the role. The role name uniquely identifies the role. This field must contain a valid value in order to create this type of business object in the database.
      Parameters:
      s - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getResponsibilities

      public String getResponsibilities() throws BusinessObjectException
      Gets the responsibilities for the role. This field may not be included in the where clause or order by clause specified when loading business objects.
      Returns:
      the value in the field Responsibilities
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setResponsibilities

      public void setResponsibilities(String s) throws BusinessObjectException
      Sets the responsibilities for the role. This field may not be included in the where clause or order by clause specified when loading business objects.
      Parameters:
      s - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getCreateDate

      public Date getCreateDate() throws BusinessObjectException
      Gets the date this role was created.
      Returns:
      the value in the field CreateDate
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getLastUpdateDate

      public Date getLastUpdateDate() throws BusinessObjectException
      Gets the date this role was last updated.
      Returns:
      the value in the field LastUpdateDate
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getCreateUser

      public String getCreateUser() throws BusinessObjectException
      Gets the name of the user that created this role.
      Returns:
      the value in the field CreateUser
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getLastUpdateUser

      public String getLastUpdateUser() throws BusinessObjectException
      Gets the name of the user that last updated this role.
      Returns:
      the value in the field LastUpdateUser
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getCalculateCostFromUnits

      public boolean getCalculateCostFromUnits() throws BusinessObjectException
      Gets the option that indicates whether costs and quantities are linked, and whether quantities should be updated when costs are updated.
      Returns:
      the value in the field CalculateCostFromUnits
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setCalculateCostFromUnits

      public void setCalculateCostFromUnits(boolean b) throws BusinessObjectException
      Sets the option that indicates whether costs and quantities are linked, and whether quantities should be updated when costs are updated.
      Parameters:
      b - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getProjectRoleSpreads

      public ProjectRoleSpread[] getProjectRoleSpreads() throws BusinessObjectException
      Gets the field containing project spread data for this role. If a role is attempted to be loaded with project spread data, getProjectRoleSpread will return null if no project spread data was available for that role. This field may not be included in the where clause or order by clause specified when loading business objects.
      Returns:
      the value in the field ProjectRoleSpread
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getRequiredCreateFields

      public static String[] getRequiredCreateFields()
      Gets all fields that must be set before calling create() on this business object. Generally the array will contain one field in each position, but if this business object requires either one field or another field to be set, both of those fields will appear in an element of the returned array separated by '|'. For example, if this business object requires field A to always be set, and field B or field C to be set, one element in the returned array will contain A, and one element will contain B|C.
      Returns:
      String[] an array of required create fields
    • getFilterableFields

      public static String[] getFilterableFields()
      Gets all fields that can be filtered.
      Returns:
      String[] an array of filterable fields
    • getInternalDefaultLoadFields

      public static String[] getInternalDefaultLoadFields()
      An internal method that should not be called directly by client code.
      Returns:
      String[] an internal array
    • getAllFields

      public static String[] getAllFields()
      Gets all fields for this business object.
      Returns:
      String[] an array of all fields
    • getInternalAllFields

      public static String[] getInternalAllFields()
      An internal method that should not be called directly by client code.
      Returns:
      String[] an internal array
    • getInternalAllFieldsSet

      public static Set<String> getInternalAllFieldsSet()
      An internal method that should not be called directly by client code.
      Returns:
      String[] an internal array
    • getMainFields

      public static String[] getMainFields()
      Gets all fields in the main group for this business object.
      Returns:
      String[] an array of fields in this group
    • getRoleSpreadFields

      public static String[] getRoleSpreadFields()
      Gets all spread fields that can be specified in the spreadFields parameter of loadWithRoleSpreadSpread methods for this business object.
      Returns:
      String[] an array of all spread fields
    • getWritableFields

      public static String[] getWritableFields()
      Gets all writable fields for this business object.
      Returns:
      String[] an array of writable fields
    • getDefaultXMLExportFields

      @Deprecated public static String[] getDefaultXMLExportFields()
      Deprecated.
      Gets the fields that are exported by the hierarchical XML exporter when no fields are specified. This method is no longer relevant since the hierarchical XML exporter has been replaced by the flat XML exporter.
      Returns:
      String[] an array of field names
    • getMinimumXMLExportFields

      public static String[] getMinimumXMLExportFields()
      Gets all fields that are always exported at a minimum by the new flat XML exporter
      Returns:
      String[] an array of exported fields
    • toString

      public String toString()
      Returns a string representation of the object. The output is in XML.
      Overrides:
      toString in class Object
      Returns:
      String a string representation of the object.
    • create

      Creates this Role object in the database.
      Returns:
      ObjectId the unique ID of the newly created Role object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • create

      public static ObjectId[] create(Session session, Role[] roles) throws ServerException, NetworkException, BusinessObjectException
      Creates multiple Role objects in the database.
      Parameters:
      session - the Session object
      roles - array of Role objects to create
      Returns:
      ObjectId[] the array of unique IDs of newly created Role objects
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • load

      public static Role load(Session session, String[] fields, ObjectId objId) throws ServerException, NetworkException, BusinessObjectException
      Loads a single Role object from the database.
      Parameters:
      session - the Session object
      fields - fields to load
      objId - unique ID of the Role object
      Returns:
      Role the Role object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • load

      public static BOIterator<Role> load(Session session, String[] fields, ObjectId[] objIds) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple Role objects from the database.
      Parameters:
      session - the Session object
      fields - fields to load
      objIds - object ids of the Role objects
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadWithProjectRoleSpread

      public static Role loadWithProjectRoleSpread(Session session, String[] nonSpreadFields, ObjectId objId, String[] spreadFields, SpreadPeriodType periodType, Date startDate, Date endDate, boolean bIncludeCumulative, ObjectId[] projectObjectIds) throws ServerException, NetworkException, BusinessObjectException
      Loads a Role object with summarized spreads from the database.
      Parameters:
      nonSpreadFields - fields to load
      objId - unique ID of the Role object
      spreadFields - the fields to include in the spread object
      periodType - the period of the spread data (hour, day, etc.)
      startDate - the start date of the spread
      endDate - the end date of the spread
      bIncludeCumulative - indicates whether to include cumulative spread data
      projectObjectIds - object ids of the Project objects
      Returns:
      Role the Role object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • loadWithProjectRoleSpread

      public static BOIterator<Role> loadWithProjectRoleSpread(Session session, String[] nonSpreadFields, ObjectId[] objIds, String[] spreadFields, SpreadPeriodType periodType, Date startDate, Date endDate, boolean bIncludeCumulative, ObjectId[] projectObjectIds) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple Role objects with summarized spreads from the database.
      Parameters:
      nonSpreadFields - fields to load
      objIds - object ids of the Role objects
      spreadFields - the fields to include in the spread object
      periodType - the period of the spread data (hour, day, etc.)
      startDate - the start date of the spread
      endDate - the end date of the spread
      bIncludeCumulative - indicates whether to include cumulative spread data
      projectObjectIds - object ids of the Project objects
      Returns:
      BOIterator a business object iterator used to get the results of the load request
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • update

      Updates this Role object in the database.
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • update

      public static void update(Session session, Role[] roles) throws ServerException, NetworkException, BusinessObjectException
      Updates multiple Role objects in the database.
      Parameters:
      session - the Session object
      roles - array of Role objects to update
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • delete

      Deletes this Role object from the database.
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • delete

      public void delete(ObjectId replacementId) throws ServerException, NetworkException, BusinessObjectException
      Deletes this Role object from the database.
      Parameters:
      replacementId - unique ID of the new parent for all current child objects
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • delete

      public static void delete(Session session, Role[] roles) throws ServerException, NetworkException, BusinessObjectException
      Deletes multiple Role objects from the database.
      Parameters:
      session - the Session object
      roles - array of Role objects to delete
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects
    • delete

      public static void delete(Session session, Role[] roles, ObjectId replacementParent) throws ServerException, NetworkException, BusinessObjectException
      Deletes multiple role objects in a hierarchy from the database and set the new parent of all child objects.
      Parameters:
      session - the Session object
      roles - array of Role objects to delete
      replacementParent - replacement parent object
      Throws:
      ServerException - if a problem occurred on the server-side
      NetworkException - if a problem occurred in the network layer
      BusinessObjectException - if a problem occurred in the client-side business objects