Something that I have come across a lot is solutions that require setting item level security after a particular occurrence on the list item (or in some workflow process). Specifically what I wanted to look at was how to do it using SharePoint Groups as opposed to AD users, though I will probably cover that later. This is going to be a two-part post as well because I am also going to do it with Microsoft Flow in my next blog. Moving forward, whenever I do a SharePoint Designer Workflow blog I am going to try and do a corresponding one for Flow as well.
I am sure we can all agree that at some point or another we had a need to email a user that did not have an account within our domain via a SharePoint Designer (SPD) 2013 workflow. And while attempting to set it up we were surprised to find out it wouldn’t work. Not only did it NOT send the email, but to add insult to injury the attempt actually would suspend the workflow if forced to try. If you have never had the need, well thanks for coming to my post anyways and let me tell you… it can’t be done. An easy workaround is to build a SharePoint 2010 workflow, which doesn’t have this limitation, but then you lose the other fantastic benefits of a 2013 workflow. Microsoft removed this ability as a security enhancement. Today I am going to demonstrate how to email an external user in a SharePoint 2013 Workflow.
Quick note: Microsoft Flow does NOT have this limitation. I am describing how to to it in SharePoint Designer because so many still use this tool
I had to build a fairly complex workflow not long ago. The workflow was built in SharePoint Designer 2013 and had a lot of moving parts to it. So many, that when I went to publish it I received the following error message: “Microsoft.Workflow.Client.ActivityValidationException: Workflow XAML failed validation due to the following errors: Activity “SomeXActivity” has 65 arguments, which exceeds the maximum number of arguments per activity (50).” This error message is actually telling us that our workflow has too many variables within it. Basically, this is happening because when the workflow is running the Workflow Manager has to manage more 58 (in my case) variables. Workflow Manager only allows there to be 50 variables in the workflow… by default.
Back in October I did an overview of the different ways to wait for a change in a SharePoint Workflow. You also have the option to wait for a certain time, there are two options which are waiting for a set duration or waiting until a set date. Either of which are easy to control or set. I am not focusing on these actions in this post, but just a quick note if you want the date to be dynamic when using wait until a date, then you will have to set the date you want in a workflow variable prior to setting the wait value. Otherwise your date is going to have to be static and that’s probably not going to work for you in 99% of your workflows.
Today, however I want to discuss waiting for a value to change on the list your workflow is attached to.
Bit of a disclaimer: Why am I still talking about SharePoint Designer? Why not Microsoft Flow? Don’t worry, I have some Flow blogs planned. However, Designer is still widely used and will be for some time. I encourage others to use flow where they can, but remember that not everyone has access to that yet. Designer is free and anyone with a SharePoint environment can make use of it. Hence, I still see providing insight and knowledge on this product very important.
I have a bit of a TLDR here as you may be just looking for the answer, and not WHY it is occurring. I strongly urge you to read the whole post to understand why things are the way they are and to make you a better person ;-p, but if you are in a hurry or think I talk\write too much, just click here to find out what you need to do.
In my previous post on the different ways to determine the return message from a REST API call in a SPD workflow I covered using a test list and Fiddler to build your web call in a SharePoint Designer workflow. In this post I want to discuss manipulating REST API calls in SharePoint Designer 2013 workflows. Basically I want to show how you can determine what your read string is going to look like based on the values coming back from SharePoint.