Ideas on re-usability

  • 16 February 2011
  • 4 replies
  • 3 views

Badge +9

I am looking for some ideas on how to achieve the following, with the least amount of work:


I have been asked to create 2 workflow processes - approval processes for documents. The business process for each of the approvals is identical, the only thing that differs is that the properties collected for each document are different.


I am planning on setting these processes up so that they are triggered by uploading a file to a document library, the user who uploads would then have a task assigned where they would enter the properties of the document.
The document is then reviewed by a couple of different people, and moved to an "Approved" document library, and the properties of the document are set appropriately.


As the process is identical, I am keen to only develop this once, but I am unclear on how I can do this, given that the properties that are required to be entered by the initiator are different. These properties are also required to be viewed by the reviewers as well, to confirm they are correct.


Is there some way I can use an IPC process, and pass the form that needs to be used into the child process?


Typically, we use Forms services for client events, however I am prepared to consider aspx pages if this is going to be more flexible?


Thanks in advance for any assistance on this....any ideas/prompts on how to make processes more re-usable would be very much appreciated....


4 replies

Badge +10

I’ve built a Contract Management solution that sounds similar to your requirements.  It assigns metadata to signed contracts when they’re uploaded into SharePoint based on the contract type like Master Agreement, Schedule, Licensing Agreement, etc.  I used Forms Services as well.


In your case if the task is being routed directly back to the originator then on the form for the client event could probably have a dropdown or button that allows them to select the “document type”.  The form would then either show a different view or show a previously hidden section which would display the properties for that “document type”.  After they submit the client event the workflow can then assign the metadata to the document using the SharePoint document event.


When it gets routed to the reviewers the form would know that this is a specific document type and would display the correct filled out property view of the Forms Services form.


From what you’ve described so far I don’t think a IPC event would be needed and would add complexity.  A single form with different views or a single view but hidden sections sounds like it would meet your requirements.


Regards,


Tim

Badge +9

Hi Tim, thanks for getting back to me.


I had considered what you are suggesting, and it is a viable solution for this situation, assuming there are only a limited number of processes.


I guess I see this as the tip of the ice berg though - the process that I am implementing seems to be quite common across the business, and I was trying to think ahead to how many times a similar process would be requested - it would be much nicer (and quicker) if I could just use the same approval process, and start it off (via IPC)  for each new request.


The problem the I can't seem to get my head around is the fact that each process collects different information, but that information goes through the same path...so I would like to be able to re-use the path, but get a different form to go around that path...


So far, I am finding it very difficult to re-use any of the processes that I have developed - I am not sure if this is a common problem, or if it is because of my limited knowledge???


Again, any ideas/experience you anyone can share on this would be very much appreciated!!


Thanks in advance...

Badge +10

When using InfoPath the form travels with the process so reusing the same process across multiple SharePoint document libraries is probably not a practical option.


 


If you use ASP.net forms the process should be more easily reused as the Default Client Event URL can be dynamic and potentially populated at runtime with the correct ASP.net page when the process starts which might be through an IPC call.  Of course the downside of this is that you would need to add custom code to the ASP.net form to respond to the client events vs. no code InfoPath development.  The APIs are relatively easy with good samples in the online help but if you don’t have a developer available to help create and modify the pages over time then it could become a bottleneck in your process development and maintenance.


 


In my experience although I’ve had customers express a wish to reuse processes once we got down to the actual process requirements they were just enough different that you couldn’t effectively reuse the same process.  I would end up simply creating a new process and just copying and pasting the common elements between the processes to rebuild it.  Another key thing to think about is who is going to manage the process.  Often IT wants to offload the regular process management to the business units through a process portal.  However, if you have multiple business units using the same common process one business unit might accidently modify another units process. 


 


I’d love to hear other people’s experience about K2 process reuse.


 


Regards,


Tim

Badge +9

Hi Tim,


Yes, I have found the same thing - so far I haven't been able to re-use any of my processes, but I was starting to think that I may have been taking the wrong approach and that there was a better way of approaching this that would mean that I could re-use my processes...


Anyone who can add their experience in this area, I would love to hear it as well...Is there anyone who manages to re-use their processes?

Reply