This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DEVELOPERS FORUM - Workflow Automation Question

jjlong - Tuesday, March 1, 2011 12:47 PM:

I've studied the Workflow Automation examples, and they have traits of what I want to do, but are still not a match. Can someone provide advice for the following scenario?

Assume I have a large organization, with a large number of users in a given role (e.g. 50 Project Managers), and a common workflow process for obtaining some kind of approval. Each project manager manages 3-5 projects at a time, and all have to send something through the approval process at some point. A shared "Project Manager" in-basket will have too many workitems to easily manage. I want the project manager to see just their 3-5 items in their in-basket.

On my workitem form I would like to have a dropdown list populated with the names of the users in the "Project Manager" identity. Once a name is selected I want that identity to override the "Project Manager" identity assigned in the Workflow map so that any time the assignment in the map calls for a "Project Manager" it goes to the Project Manager bound to this workflow at runtime.

In other words, I want to define the workflow activity assignments with a generic role, but have the ability to force the work to go to a specific individual in that role (and bypass the shared in-basket).

How do you advise 1) providing a list of users in a role, and 2) advancing the work to the chosen project manager after the vote is selected?

Thanks in advance,

Jeff



Brian - Wednesday, March 2, 2011 12:51 AM:

Hi Jeff,

A good question. The demo database on the Community Projects page http://www.aras.com/communityprojects/?projectid=A799329956F64E959CC0B0339E562D2A answers some of this.

There is a method defined in the PLMe workflows which does just what you want as far as using a generic Identity for the Assignment and resolving it to a particular identity or identities at run time.

My first suggestion therefore is to download and install the demo database and have a look at the PLMe workflows for the method etc.

There is some documentation in the method about how to use it although I will admit it seems a bit cryptic at first.

One thing to appreciate is that this is not necessarily Production released code and you would need to test it in your environment to be sure it did everything you wanted before deploying it to a production environment.

I am a PLM implementation consultant with Matrix (www.matrix.co.nz) and can assist you with this if you need help. You can contact me directly on [email protected]

Cheers,

Brian.

 



PeterSchroer - Wednesday, March 2, 2011 6:34 PM:

Hi Jeff,

Sounds like what you want is Dynamic Activity Assigment.      Brian is pointing you in the right direction for a full understanding of Dynamic assignments.

For your specific use case,  I am thinking there might be a quick-easy solution.   The workflow engine has 2 built-in variabe-assignments  (owner and manager),  these come from the CMII implementation,  but you can use them in your case.

On your work item,   make the property  owned_by_id  (standard property) visible on the Form.  it will present to the user as a Item Property with a selection browser.     Then on your Workflow Map,  make the Assignment for that Actiivty to the  Identity = "Owner".    The user will pick an Identity to be the owned_by_id on the work item form, and then when the Workflow runs,  that person will be automatically substituted for Owner by the workflow engine.  Easy.

To make this one step neater,  we would use  a technique called Filtered Item Browser to restrict the users choices for the owner identity to just certain people by roles, skills, etc.      When you get to this step,  we can point you to some Wiki articles or FAQ's on how to Fitered Item Browser.

--peter



jjlong - Thursday, March 3, 2011 11:35 AM:

Brian and Peter,

Thank you for your advice and direction. I will download and install the sample data and take a look.

I don't think I can use the quick-easy solution as my real-life scenario is a little more complicated than what I posed in the question. Actually there are 4 roles that need to be assigned PM, Lead Architect, Final Approver, and Subject Matter Expert (SME). The SME may be 1-n people and is most like the dynamic assignment workflow sample. With the exception of the SME, the other roles will be filled by one person. My assumption when I posed the question was to lay the problem simply and extend the solution to the other roles.

Could the quick-easy solution be adapted so that I capture the identities for the roles in the form, store the user identities for the roles in properties I define in the ItemType, and then in the activity write some code which would swap the value in the role into the owned_by_id property? Or is that an ugly kludge? I sense that I would probably have to put custom code in each activity which takes away the elegant flexibility of the tool.

Thanks for the advice on the Filtered Item Browser. Sounds like what I need, once I get the other part to work.

Jeff



scottmahr - Tuesday, April 19, 2011 4:38 PM:

Jeff,

If those 4 people you mentioned are working together on a project for some amount of time you could group them using an itemtype you create.  It would be easy to create a "Project" itemtype that stored those 4 roles, as well as other generic project info.  In your form for your item that needs to be approved you could simply select that project from the list, and the 4 roles would be filled in.  In the event that no project is selected you could fill in generic place holder identities for each role.  

As to your second question, I would stay away from users as much as possible.  Instead, use the alias identities when you wish to specify a single person.  Once you have the identities for the people you want, it is pretty straight forward to assign them dynamically to activities they need to be involved in.  

Another way to do this could be to create a relationship to your initial entry that is something like "Required Signoffs".  If that entity specify an identity and a type.  For a certain project you might have

Identity:Project Manager,Type: PM

Identity:Senior Architect, Type:Lead Architect (for the general case)

If you had specific people assigned it would look more like  

Identity:John Smith,Type: PM

Identity:Joe Blow, Type:Lead Architect

In this way you could expand to more types of roles in the future.  You could also do cool things like adding 3 PMs that could all sign off on something.  

 

Scott