Deployment of Workflows in Workflow Manager

Damir Dobric Posts

Next talks:



Follow me on Twitter: #ddobric




When deploying Workflows within Workflow Manager as long activities inside of trusted surface are used, there is no assembly which should be referenced or published to the host.
All required is contained in a XAML.

Usually one workflow is WorkflowDefinition which basically defines the activation envelope of the around the activity.
That means one workflow is defined by two XAML-s: Activit.Xaml and Workflow.Xaml.
Activity.Xaml fully implements the workflow in XAML. Workflow.Xaml defines configuration, activation, etc. and sets the reference to Activity.xaml which will be executed.

So, Deployment is two-phase process:

client.Activities.Publish(Activity.Xaml) and


As we see, first root activity is published to the manager database and then the workflow envelope (workflow description) itself. This is because, Workflow has a dependency to root activity, so activity has to be deployed first.
As long you use build-in activities defined by trusted surface there is no need for any assembly to be deployed. All you have and need  is declarative XAML.
However in a case of extending of trusted surface, fist assemblies which implement custom types have to be deployed. After they are deployed, workflow publishing works as already described above.

To get a feeling about publishing open the browser and paste following:

GET //SharePoint/default/eac2871d-0758-4a2e-8b03-c02598c63c0b/8256fccd-21e8-4435-8327-2affb3234c23/$Workflows?$skip=0&$top=100

Note, the underlined part is the scope path of workflow at your machine (this one is example from my machine). This statement is a REST call to Workflow Manager which will return up to 100 installed workflow definitions.
Similarly following REST call would get the full Workflow Description of workflow with name=’ d1991cf0-0fa3-46d7-9cf7-32014141c6aa‘:

GET //SharePoint/default/eac2871d-0758-4a2e-8b03-c02598c63c0b/8256fccd-21e8-4435-8327-2affb3234c23/$Workflows/d1991cf0-0fa3-46d7-9cf7-32014141c6aa

There is also a REST call which can dump-out the whole XAML implementation.



Posted Nov 18 2012, 11:48 AM by Damir Dobric is a .Net Community Blog powered by daenet GmbH.