cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

need API to get Role of user who start the Workflow process ?

Highlighted
Level 8

need API to get Role of user who start the Workflow process ?

Hi All,

I need to find out the Role of User who initiate the workflow.

On the basis of user's "Role", Routing of Workflow decided.

Ex. If "Member" Role user initiated a workflow then it will follow different direction like, notify to Product Manager and after approval of "Product Manager" it will start to next process.

But if the Workflow initiator is itself "Product Manager" role user, then in this case no need of Approval and all.

Please let me help to know, which API i have to use to find out a "Role" of a user who initiate the Workflow.

Regards,

Vivek

Tags (1)
2 REPLIES

Re: need API to get Role of user who start the Workflow process ?

Vivek Uchekar wrote:

Hi All,

I need to find out the Role of User who initiate the workflow.

On the basis of user's "Role", Routing of Workflow decided.

Ex. If "Member" Role user initiated a workflow then it will follow different direction like, notify to Product Manager and after approval of "Product Manager" it will start to next process.

But if the Workflow initiator is itself "Product Manager" role user, then in this case no need of Approval and all.

Please let me help to know, which API i have to use to find out a "Role" of a user who initiate the Workflow.

Check out article CS126532:

https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS126532

Re: need API to get Role of user who start the Workflow process ?

Hi Vivek,

I'm not sure if this is exactly what you need but here is a simple procedure I wrote to print out all the assignees to all roles in a workflow:

    public void printAssignees(WfProcess process) {

     try {

   Vector roles = process.getProcessRoles();

   if (roles.size() == 0)

    System.out.println("there are no assignees in any roles for this process");

   for(int i=0; i < roles.size(); i++) {

    wt.project.Role procRole = (Role) roles.get(i);

    Enumeration procPrins = process.getPrincipals(procRole);

    if (! procPrins.hasMoreElements())

     System.out.println("There are no assignees for Role[" + procRole.getFullDisplay() + "]");    

    while (procPrins.hasMoreElements()) {

     WTPrincipalReference roleUserRef = (WTPrincipalReference) procPrins.nextElement();

                    WTPrincipal p = ((WTPrincipalReference)roleUserRef).getPrincipal();

                    if (p instanceof WTUser) {

         System.out.println("user for Role[" + procRole.getFullDisplay() + "] is [" + p.getPrincipalDisplayIdentifier() + "]");

                    } else if (p instanceof WTGroup) {

         System.out.println("group for Role[" + procRole.getFullDisplay() + "] is [" + p.getPrincipalDisplayIdentifier() + "]");

                    }

    }

   }

  } catch (WTException e) {

   e.printStackTrace();

  }

    }

I hope this is of some help.

Thanks,

Dave Christy