Class ProjectProfile

java.lang.Object
com.primavera.integration.client.BOBase
com.primavera.integration.client.bo.BusinessObject
com.primavera.integration.client.bo.base.ProjectProfileBase
com.primavera.integration.client.bo.object.ProjectProfile

public class ProjectProfile extends com.primavera.integration.client.bo.base.ProjectProfileBase

A project profile defines a set of privileges for access to project-specific information. Project profiles are assigned to users based on the OBS hierarchy. To control access to project-specific information, you create project profiles, and then assign specific OBS elements and associated project profiles to individual users. The assigned OBS element determines the EPS and WBS elements for which the user can access project information. The assigned project profile determines the type of access privileges the user has to that project information.

All WBS elements are required to have an assigned responsible OBS. If a user's project profile assignment includes a WBS element's responsible OBS, then the user can access all activities, risks, and issues related to that WBS element. Similarly, all thresholds and project issues also have an assigned responsible OBS. If a user's project profile assignment includes a threshold or issue's responsible OBS, then the user can access that threshold or issue.

A user is not required to have a profile for every project. However, unless a user's global profile is Admin Superuser, that user cannot access a project without a project profile. To allow complete access to a project/OBS assignment, a project profile is included named Project Superuser. You can apply the Project Superuser profile to as many users and for as many projects as you like. The Project Superuser profile has a constant ObjectId defined by the PROJECT_SUPERUSER static constant.

To access individual privileges in a project profile, use the hasPrivilege(), setPrivilege() methods. To get an array of all privileges that are set, use the getPrivileges() method.

See Also:   Quick reference of ProjectProfile fields

  • Field Details

    • PROJECT_SUPERUSER

      public static final ObjectId PROJECT_SUPERUSER
      Constant for Project Superuser
  • Constructor Details

    • ProjectProfile

      public ProjectProfile(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
    • ProjectProfile

      public ProjectProfile(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
    • ProjectProfile

      public ProjectProfile(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

    • loadUserOBS

      public BOIterator<UserOBS> loadUserOBS(String[] fields, String sWhereClause, String sOrderBy) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple associated UserOBS 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
    • hasPrivilege

      public boolean hasPrivilege(ProjectPrivilege priv) throws BusinessObjectException
      Find out whether this profile has a certain privilege.
      Parameters:
      priv - identify which privilege
      Returns:
      boolean whether this profile has this privilege or not
      Throws:
      BusinessObjectException
    • setPrivilege

      public void setPrivilege(ProjectPrivilege priv, boolean bOn) throws BusinessObjectException
      Turn a certain privilege on or off.
      Parameters:
      priv - identify which privilege
      bOn - turn on/off this privilege
      Throws:
      BusinessObjectException
    • getPrivileges

      public ProjectPrivilege[] getPrivileges() throws BusinessObjectException
      Sets this privilege on or off.
      Returns:
      ProjectPrivilege[] privileges that are on
      Throws:
      BusinessObjectException
    • 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
    • getIsDefault

      public boolean getIsDefault() throws BusinessObjectException
      Gets the flag that indicates this security profile is the default profile assigned to UserOBS objects. When a ProjectProfile object is deleted from the database, all UserOBS objects assigned to that profile are reassigned to the default profile. You cannot not delete the default profile.
      Returns:
      the value in the field IsDefault
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • setIsDefault

      public void setIsDefault(boolean b) throws BusinessObjectException
      Sets the flag that indicates this security profile is the default profile assigned to UserOBS objects. When a ProjectProfile object is deleted from the database, all UserOBS objects assigned to that profile are reassigned to the default profile. You cannot not delete the default profile.
      Parameters:
      b - the value to set this field to
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getIsSuperUser

      public boolean getIsSuperUser() throws BusinessObjectException
      Gets the flag that indicates this is the project superuser profile, which gives a user read/write privileges for all project and OBS specific information and features.
      Returns:
      the value in the field IsSuperUser
      Throws:
      BusinessObjectException - if a problem occurred in the client-side business objects
    • getName

      public String getName() throws BusinessObjectException
      Gets the unique name of this project profile. 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 unique name of this project profile. 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
    • getCreateDate

      public Date getCreateDate() throws BusinessObjectException
      Gets the date this project profile 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 project profile 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 project profile.
      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 project profile.
      Returns:
      the value in the field LastUpdateUser
      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
    • 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 ProjectProfile object in the database.
      Returns:
      ObjectId the unique ID of the newly created ProjectProfile 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, ProjectProfile[] projectprofiles) throws ServerException, NetworkException, BusinessObjectException
      Creates multiple ProjectProfile objects in the database.
      Parameters:
      session - the Session object
      projectprofiles - array of ProjectProfile objects to create
      Returns:
      ObjectId[] the array of unique IDs of newly created ProjectProfile 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 ProjectProfile load(Session session, String[] fields, ObjectId objId) throws ServerException, NetworkException, BusinessObjectException
      Loads a single ProjectProfile object from the database.
      Parameters:
      session - the Session object
      fields - fields to load
      objId - unique ID of the ProjectProfile object
      Returns:
      ProjectProfile the ProjectProfile 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<ProjectProfile> load(Session session, String[] fields, ObjectId[] objIds) throws ServerException, NetworkException, BusinessObjectException
      Loads multiple ProjectProfile objects from the database.
      Parameters:
      session - the Session object
      fields - fields to load
      objIds - object ids of the ProjectProfile 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 ProjectProfile 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, ProjectProfile[] projectprofiles) throws ServerException, NetworkException, BusinessObjectException
      Updates multiple ProjectProfile objects in the database.
      Parameters:
      session - the Session object
      projectprofiles - array of ProjectProfile 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 ProjectProfile 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 static void delete(Session session, ProjectProfile[] projectprofiles) throws ServerException, NetworkException, BusinessObjectException
      Deletes multiple ProjectProfile objects from the database.
      Parameters:
      session - the Session object
      projectprofiles - array of ProjectProfile 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