Here is some quick code I put together today to get all Suspended workflow instances on a list in SharePoint Online.
This code can be used to get all instances for a given status. (Suspended, Terminated etc.)
I have used the SharePoint Online CSOM August 2016 Update for this code:
http://dev.office.com/blogs/new-sharepoint-csom-version-released-for-Office-365-august-2016-updated
Thanks for reading!
Showing posts with label Workflows. Show all posts
Showing posts with label Workflows. Show all posts
Thursday, 1 September 2016
Saturday, 13 September 2014
Deploy Workflows to Host Web with Integrated Workflow Apps
Update (19/08/2015): Integrated Workflow Apps are now part of Visual Studio 2015. You do not need to manually edit any XML files now. You will just need to:
1) Use Visual Studio 2015 (I was using the Enterprise version)
2) Create a SharePoint App (Add-In as it's now called)
3) Add a Workflow to your Add-In Project. (Your Add-In cannot be an Integrated Workflow Add-In unless there is a Workflow in it)
4) Go to the Project Properties and set the "Integrated App" property to True. That's it!
Original Article:
In the recent Office 365 Developer YamJam on the Office 365 Technical Network, there were lots of great questions asked to and answered by the Office 365 Engineering Team. You can view all the questions over here: https://www.yammer.com/itpronetwork/#/threads/inGroup?type=in_group&feedId=4419638
One thing which I was interested in was the Integrated Workflow Apps. I have seen a lot of people ask about this as they want to deploy Workflows to their Host Web (or Content Site) from their Apps. I had known that something was in the pipeline as I had seen a glimpse of it in this video from SPC 2014 http://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC3994
Luckily, Tim McConnell who is the speaker in the video was part of the YamJam and he answered that Integrated Workflow Apps are already available on SharePoint Online but they are waiting for tooling support so no official announcement has been made till now.
I have tested them on my development Office 365 Tenant and it works! In this post, I will be detailing the process by which you can get it working too.
You will need to have installed Visual Studio 2013 and Microsoft Office Developer Tools for Visual Studio 2013 for this. My test project is available on GitHub here: https://github.com/vman/Integrated-Workflow-Apps
1) Start Visual Studio 2013 > New Project > App for SharePoint
2) Enter the SharePoint Online Site Url and select the hosting model for your app. I have selected SharePoint Hosted.
3) Right Click App Project > Add > New Item
4) Select Workflow and type in a name for your Workflow
(Click on the Image to Zoom)
5) Select the type of Workflow as Site Workflow
(List Workflow Deployment is shown at the end of the post)
6) Select "Create New" for History List and Task List.
7) Add some sample activities to your Workflow.
I have added a LookupWorkflowContextProperty to get the current Site Url and a WriteToHistory activity which will write the Current Site Url to the History List
(Click on the Image to Zoom)
(Click on the Image to Zoom)
8) Give your App Manage Permissions on the Web:
9) Right click App Project > Publish > Package the app. A window will pop up showing you the packaged .app file.
(Click on the Image to Zoom)
10) Now the interesting part. Open the .app file as an archive with a tool of your choice.
I have used 7-Zip which is a really awesome tool. You can download it from here: http://www.7-zip.org/
(Click on the Image to Zoom)
11) Once opened, look for the WorkflowManifest.xml file and open it. It will be empty to start with. Copy the following in the file and save it.
(Click on the Image to Zoom)
12) After Clicking save, you will get the following prompt. Click Ok.
13) Now your .app package is ready to be deployed to your App Catalog. Go to your App Catalog and upload the .app file in the "Apps for SharePoint" document library.
14) Once uploaded, go to your Team Site > Site Contents > Add an App > Select your app and add it to your Team Site.
15) You will be prompted to trust your App. Click on "Trust It".
16) Once the App is installed on your site, go to Site Contents > Site Workflows
17) Click on your App to see your Site Workflow deployed on the site. Click on the Workflow to start it.
(Click on the Image to Zoom)
18) Let the workflow complete. After it has completed, click on the Internal Status to see what the workflow logged to the History List
(Click on the Image to Zoom)
19) You can see that the Workflow logged the url of the Team Site on which it was running.
(Click on the Image to Zoom)
This proves that the Workflow was deployed to and ran on the Host Web (Content Site).
Deploy List Workflow:
The process to deploy the list workflow is quite the same except in step 5, select List Workflow.
Do not associate your workflow to any List. We will do the association after the deployment of the Workflow.
Select when you want your workflow to start.
Add a Sample Workflow Activity in the Workflow to Log the Current List Name and the Current Item Url:
Steps 8 to 15 are the same as for a Site Workflow. After the Workflow is deployed, Go to a list > List Settings > Workflow Settings > Add a Workflow
Click on your App, Associate your Custom Workflow by giving it a name and configuring other settings. Click on OK.
After you associate the Workflow, Start it either manually, or create an item, or update an item depending on the method you selected in the Workflow Designer in the App.
After the Workflow Completes, Click on the Internal Status to see what the Workflow Logged to the History List:
Monday, 25 August 2014
Start SharePoint Workflows with JavaScript Client Object Model
This will be a quick post to follow up on couple of my previous posts. In this post we will see how to start SharePoint 2013 Workflows which are created using the SharePoint 2010 Workflow engine. If you have Workflows created with the SharePoint 2013 engine, please see my previous posts:
1) Managing SharePoint 2013 Workflows with CSOM
2) Using the SharePoint 2013 Workflow Interop Service in CSOM
In this post, I will show you basically the same thing as in the previous posts, but by using the JavaScript Client Object Model (JSOM).
I recently had a requirement for which I had to start a Nintex Site Workflow with JavaScript. Now due to my previous posts, I had an idea that we can use the Managed CSOM to manage workflows but wanted to see if the same is possible from the JavaScript CSOM. Nintex Workflows utilize the SharePoint 2010 Workflow Engine and hence we require the Interop Service to work with them in JavaScript.
Here is the code I put together to start my Site Workflow:
You can have a look at my previous posts and the SP.WorkflowServices.debug.js file to see how to start other workflows such as List Workflows or SharePoint 2013 Workflow Engine workflows from the JavaScript Client Object Model.
1) Managing SharePoint 2013 Workflows with CSOM
2) Using the SharePoint 2013 Workflow Interop Service in CSOM
In this post, I will show you basically the same thing as in the previous posts, but by using the JavaScript Client Object Model (JSOM).
I recently had a requirement for which I had to start a Nintex Site Workflow with JavaScript. Now due to my previous posts, I had an idea that we can use the Managed CSOM to manage workflows but wanted to see if the same is possible from the JavaScript CSOM. Nintex Workflows utilize the SharePoint 2010 Workflow Engine and hence we require the Interop Service to work with them in JavaScript.
Here is the code I put together to start my Site Workflow:
You can have a look at my previous posts and the SP.WorkflowServices.debug.js file to see how to start other workflows such as List Workflows or SharePoint 2013 Workflow Engine workflows from the JavaScript Client Object Model.
Saturday, 31 May 2014
Using the SharePoint 2013 Workflow Interop Service in CSOM
In my previous post, I briefly introduced the SharePoint 2013 Workflow Architecture and also showed how to programmatically manage the SharePoint 2013 Workflows via the Workflow Services in the Client Site Object Model (CSOM). I will recommend to read that post before this one.
You can find the previous post here: Managing SharePoint 2013 Workflows with CSOM
As a follow up to that post, in this post I will show how to start a Workflow authored with the SharePoint 2010 Engine.
The Workflow Services in the CSOM contain an InteropService which is a hook in the SharePoint 2010 Windows Workflow Foundation runtime engine.
This code works with SharePoint 2013 On-Premises as well as with SharePoint Online. I have created my sample code against SharePoint Online.
Before you run this code, you will need to create a SharePoint 2010 Workflow (Definition) either via SharePoint Designer 2010/2013 or through Visual Studio 2012/2013 and deploy it to your SharePoint 2013 target site. You can then use this code to start the Workflow
You will need to reference the following Assemblies:
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
Microsoft.SharePoint.Client.WorkflowServices.dll
You can find the previous post here: Managing SharePoint 2013 Workflows with CSOM
As a follow up to that post, in this post I will show how to start a Workflow authored with the SharePoint 2010 Engine.
The Workflow Services in the CSOM contain an InteropService which is a hook in the SharePoint 2010 Windows Workflow Foundation runtime engine.
This code works with SharePoint 2013 On-Premises as well as with SharePoint Online. I have created my sample code against SharePoint Online.
Before you run this code, you will need to create a SharePoint 2010 Workflow (Definition) either via SharePoint Designer 2010/2013 or through Visual Studio 2012/2013 and deploy it to your SharePoint 2013 target site. You can then use this code to start the Workflow
You will need to reference the following Assemblies:
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
Microsoft.SharePoint.Client.WorkflowServices.dll
1) Start a SharePoint 2010 Site Workflow with CSOM:
2) Start a SharePoint 2010 List Workflow with CSOM:
Managing SharePoint 2013 Workflows with CSOM
As you might have heard many times, the Workflow Architecture in SharePoint 2013 was entirely changed from what it was in SharePoint 2010. Instead of the Workflows running on the SharePoint server, they now have to run on a separate Workflow Manager.
On top of that, only declarative custom Workflow's are allowed to be deployed to the Workflow Manager. If there has to be any custom code, it has to be hosted in an external service and then consumed from the declarative workflow.
The Workflow Manager has certain activities and types which come predefined with it. This is called the Trusted Surface. Workflow Authors can consume these activities in their declarative workflows. A whole list of types and activities available under the trusted surface is here: http://msdn.microsoft.com/en-us/library/jj193509(v=azure.10).aspx and here: http://msdn.microsoft.com/en-us/library/jj193474(v=azure.10).aspx
This architecture is very much inline with Microsoft's strategy to move code execution away from the SharePoint server.
On top of that, only declarative custom Workflow's are allowed to be deployed to the Workflow Manager. If there has to be any custom code, it has to be hosted in an external service and then consumed from the declarative workflow.
The Workflow Manager has certain activities and types which come predefined with it. This is called the Trusted Surface. Workflow Authors can consume these activities in their declarative workflows. A whole list of types and activities available under the trusted surface is here: http://msdn.microsoft.com/en-us/library/jj193509(v=azure.10).aspx and here: http://msdn.microsoft.com/en-us/library/jj193474(v=azure.10).aspx
This architecture is very much inline with Microsoft's strategy to move code execution away from the SharePoint server.
SharePoint 2013 supports two methods of workflow authoring. Authoring Workflows in the SharePoint 2013 engine and also authoring them in the SharePoint 2010 engine. Workflows which are authored in the SharePoint 2010 engine run on the SharePoint server and are allowed to execute code there. That architecture has not been changed and is available for backwards compatibility.
In the SharePoint 2013 Workflow platform, a Workflow definition is a Service Bus Topic and a Workflow Association is a Subscription to the topic. Topics and Subscriptions are used by the Service Bus to decouple message publishers from message subscribers. More about the Workflow Manager and Service Bus Pub/Sub architecture here: http://msdn.microsoft.com/en-us/library/office/jj163181(v=office.15).aspx#bkm_Subscriptions
In the SharePoint 2013 Workflow platform, a Workflow definition is a Service Bus Topic and a Workflow Association is a Subscription to the topic. Topics and Subscriptions are used by the Service Bus to decouple message publishers from message subscribers. More about the Workflow Manager and Service Bus Pub/Sub architecture here: http://msdn.microsoft.com/en-us/library/office/jj163181(v=office.15).aspx#bkm_Subscriptions
Microsoft has also very recently added Workflow Management services to the Client Side Object Model (CSOM). The entire range of Workflow services available in the CSOM is published here: http://msdn.microsoft.com/en-us/library/office/dn481315(v=office.15).aspx. In this post, and the following posts, I will show you how to manage workflows with CSOM.
This is code works with SharePoint 2013 On-Premises as well as with SharePoint Online. I have created my sample code against SharePoint Online. Also, this code only works with Workflows which are authored on the SharePoint 2013 Workflow Engine. I will be writing another post on the CSOM Interop Service in which I will show how to start SharePoint 2010 Workflow Engine authored Workflows.
Before you run this code, you will need to create a Workflow (Definition) either via SharePoint Designer 2013 or through Visual Studio 2012/2013 and deploy it to your target site. You can then use this code to dynamically create associations of the Workflow, and also to start those associations.
You will need to reference the following Assemblies:
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.Runtime.dll
Microsoft.SharePoint.Client.WorkflowServices.dll
1) Create a new Subscription (Association) from a Workflow Definition with CSOM:
2) Start a SharePoint 2013 Site Workflow with CSOM:
3) Start a SharePoint 2013 List Workflow with CSOM:
Subscribe to:
Posts (Atom)




























