Deployment Strategies

  • 27 February 2008
  • 5 replies
  • 0 views

Badge +7

Hi All.


My team and I have produced a workflow for a SharePoint site. It's pretty specific as to what it does and what it can interact with. At the moment we have only one site, but we'd like to deploy the workflow to multiple identical sites (each site is a project).


How is this best achieved... at the moment the workflow knows about the SharePoint environment by the environment settings. I wondering if the best thing to do would be to pass in the SharePoint url to the workflow so it could work out which site it should be interacting with...


Advice welcome.... as we've been promising that we'd spawn 10 sites with the same workflow on it.... but I don't think deploying 10 instances of the workflow is a good idea....


The workflow makes extensive use of SmartObjects, so the database will support all sites without any problem.... it's just the deployment thats got me thinking...


Martin


5 replies

Badge +4

Please confirm whether you have developed the process using the Sharepoint Workflow Integration Process Wizard i.e. is the workflow hooked onto an event on a sharepoint list e.g. document library?


 


OR do you simply interact (i.e. manipulate lists, documents) within a Sharepoint site, but the workflow is not attached to a document library per say? If this is the case then your approach of passing in the Sharepoint URL to the workflow would be the route to go, but probably not the only option. How will you be starting the process i.e. from ASP/Sharepoint/InfoPath?

Badge +7

Hi Samuel,


Yes - the workflow uses SharePoint event wizards, specifically the 'new item' on one form library and 'upload', 'check in', 'check out' and 'copy' on two other  document libraries.


A new form created in a form library (specific to each site) initiates the workflow, this created form is then used thoughout the workflow and the workflow interacts with two document libraries (specific to each site).


The issue as I see it, is that as the workflow is 'hard wired' to look at site specific libraries, it won't be that easy to deploy it as multiple instances, however each site will be identical and have identical libraries.... so really it's just passing in the url of the site the workflow needs to work with... I think :-)


Martin

Badge +8

Hi Martin,


We have the same requirements here (but we need to have our worklows on 50+ Sharepoint sites, excluding the deployment of one process per site; moreover, it would be really unmanageable for the workflow administrator).


Our decision was to use Sharepoint Content Types. You can then abstract from the libraries paths, and use the "Site" field of the generated XML Fields to code relative paths. The only thing you can't do is parameterizing the form lib where you want to upload your Infopath form template (if you use one). In this case, you must host your form template in another site, accessible to all the users of your sites, so that it acts as a central forms repository.


However, we weren't able to test this in real conditions as our production workflow platform is down (still waiting for help from the support team).


[Edit] Oh and the Content Type must be shared between all your sites... It works perfectly if you create it in a root site and use it in different sub-sites, however we're still thinking about if it's possible to reproduce such a behaviour across site collections.

Badge +7
Hi Nicolas, many thanks for you reply. Unfortunately I don't think content types would work for us, we need to have defined areas contained within a site for each project. But out of curiosity, did you create a content type for your form and create an event that is started whenever that content type is created? I'm guessing you can then retrieve the site url that the content was created on. I hope your support team get your production environment back soon :-) Martin
Badge +8

Actually, we created a content type for the documents we want to upload to start the workflow (e.g. we want our workflow to start whenever an item is added in DocLib1, but to be able to apply this behaviour on any site which has a DocLib1, we associate a content tyoe to this library, and plug the start event on new Content Type item created).


This way, when a new document is created / uploaded using this content type, it sends an email to an approver, who can add comments through an Infopath form (stored on another site, because it's shared by all the sites containing DocLib1).


The original document is then moved to DocLib2, using the site URL we got from the event fields, as you guessed :-)


I'm sorry it didn't help you. Yet I'll closely follow this thread as I'm really interested in what you plan to achieve.

Reply