Deploy Nintex Workflow (NWF) from code

Recently, we had a client with a requirement to have a new SharePoint Team Site created, and then have a Nintex Workflow automatically provisioned.

There are a few ways to do this – via Nintex itself (!) – or using C# code.

The scenario I was dealing with was :

  • Custom/3rd-Party CRM system
  • On creation of new customer, need to provision a ‘client site’ in SharePoint
  • Deploy the NWF as an artifact – we deployed to _LAYOUTS/Company/MyWF.NWF
  • Created a Web Service that did the SharePoint magic
  • A few lines of code to provision the workflow

Here’s what you need to do – within a Visual Studio project :

  • Add a reference to the Nintex Workflow “web service”
  • /_vti_bin/nintexworkflow/workflow.asmx
  • Can then reference the class/project within C# code (NintexWorkflowWS)
  • Read in the contents of the NWF (full XML) – and push/deploy to a list/library

The code steps are as follows…

(1) Add a reference to the Web Service

** NB. uses an SPWeb context – created a few steps earlier

var webServiceUrl = currentWeb.Url;

webServiceUrl += "_vti_bin/nintexworkflow/workflow.asmx";

NintexWorkflowWS wsNW = new NintexWorkflowWS();

wsNW.Url = webServiceUrl;

wsNW.UseDefaultCredentials = true;

(2) Get the contents of the Nintex Workflow (NWF)

var pathNWF = “Microsoft SharedWeb Server Extensions14TEMPLATELAYOUTSCompanyMyWF.nwf”

//get the Program Files folder

var fileName = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + pathNWF;

var contentsNWF = System.IO.File.ReadAllText(fileName);

(3) Deploy the NWF onto the list/library

//call the method to publish the workflow
wsNW.PublishFromNWFXml(nwf, “MyDocLibrary”, “Workflow Title”, true);

============================================

That’s essentially it.     You just have to call the above method – and it will deploy your workflow.

There’s a bunch of methods within the Nintex Web Service API – the above example uses this method (WSDL) :

image

There are a bunch of other methods – including “ExportWorkflow” – meaning that you could create a utility/program that cycles through all SPWeb’s – and SPList’s – and then exports to a file.   

(I haven’t tried it – I might have to do that next….)

Hope that helps someone – happy Nintex’ing…!

Smile

Advertisements

3 thoughts on “Deploy Nintex Workflow (NWF) from code

  1. Matt December 19, 2012 / 8:19 am

    Hmm… This is quite interesting. I’m wondering if this can be powershelled up to help with our deployment process at work (currently involves manually exporting/importing NWFs). Cheers Wookie!

    Like

  2. Philipp April 15, 2013 / 3:51 am

    Hey this is somewhat of off topic but I was wanting to know if blogs use
    WYSIWYG editors or if you have to manually code with HTML.

    I’m starting a blog soon but have no coding experience so I wanted to get guidance from someone with experience. Any help would be enormously appreciated!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s