createRoles
Purpose
This operation creates multiple new roles in PPM Center.
Function and Parameters
This operation returns zero or more role reference objects from PPM Center according to a list of (maximum 1,000) role beans to create roles. The user performing this operation must have the following access grant:
-
Edit All Roles
Required Fields:
-
Name
-
Enabled
Optional Fields:
-
Description
-
ID
Limitations
This operation has the following limitations:
-
Maximum 1,000 roles can be created in a single invocation.
-
Creation of new roles using this operation occurs in a single transaction and as an atomic operation. If the creation of one role fails, the whole operation is rolled back.
Input
An array of Role.
Return
An array of RoleReference.
Java Interface
CreateRolesResponseDocument createRoles(CreateRolesDocument in)
Parameters |
Description |
---|---|
CreateRolesDocument |
Wrapper array of role bean. (RoleBean[]) |
CreateRolesResponseDocument |
Wrapper for the roles reference array. (RoleReference[]) |
Java Examples
Example: create new roles.
public static void main(String[] args) throws Exception { // check parameter if (args.length < 1) { System.out.println("Usage: java ResourceServiceClient <service URL> [<true/false>]"); System.exit(1); }
System.out.println("Starting Resource Service tests..."); ResourceServiceClient rm = new ResourceServiceClient(); rm.WSURL = args[0]; if (args.length > 1 && args[1].equalsIgnoreCase("true")) { rm.DEBUG = true; }
System.out.println("Test create role ..."); Role role = Role.Factory.newInstance(); role.setName("Test Role " + System.currentTimeMillis()); role.setDescription("New Role"); role.setEnabled(true); RoleReference[] roleReferences = createRoles(new Role[]{role});
System.out.println("Resource Service tests complete."); } RoleReference[] createRoles(Role[] roles) throws Exception { ResourceServiceStub service = new ResourceServiceStub(ctx, RESOURCE_SERVICE); CreateRolesDocument createRolesDoc = CreateRolesDocument.Factory.newInstance(); createRolesDoc.addNewCreateRoles().setRoleArray(roles); CreateRolesResponseDocument responseDocCreate = service.createRoles(createRolesDoc); CreateRolesResponse responseCreate = responseDocCreate.getCreateRolesResponse(); debugPrint(responseCreate, "create response"); return responseCreate.getRoleRefArray(); }
Errors and Exceptions
When an error occurs on this operation, you will see a description of the root cause in the log or in the response message.
The server log file content is similar to the following:
Exception in thread "main" org.apache.axis2.AxisFault: <exception:exceptionDetails xmlns:exception="http:// www.mercury.com/ppm/ws/exception"> <exception:detail>[root cause description] </exception:detail> </exception:exceptionDetails>
Possible root cause descriptions:
Message Code |
Message |
Cause(s) |
Possible Corrective Action |
---|---|---|---|
error.ws.maxRoles |
The maximum number of roles to process in a single web service transaction may not exceed 1000. |
The role list has more than 1,000 roles. |
Break up the list into smaller chunks and process over multiple transactions. |
error.duplicateName |
A role with the name "{0}" already exists. Enter a different name. |
The role already exists. |
Enter a different name. |
error.ws.nameRequiredRole |
Name cannot be blank. Provide a name for each role. |
At least one of the roles does not have a name. |
Ensure all roles have a name. |
error.ws.descriptionTooLong |
Description cannot be longer than 650 characters. |
The description of a role is more than 650 characters. |
Reduce length of description. |
error.ws.nameTooLong |
Name cannot be longer than 260 characters. |
The name of a role is great than 260. |
Reduce length of name. |