SharePoint Workflow – What You Need to Know

The most powerful feature of SharePoint, at least the one most likely to cause a high return on investment (ROI), is the tight integration and high utilization of workflow.

In this short article, I will tell you what you need to know about SharePoint workflow in order to understand how to harness the power and potential economic benefit of business process management in SharePoint.

So, What Is a Workflow Anyway?

OK, you may have heard me use that exact phrase before, and you’d be right, as I explained this in a previous post on SharePoint Designer workflow. Rather than repeat what I wrote then, however, I’d like to offer a more descriptive… description.

A workflow is a formalized business process mapped to various executable activities on a computer. Think of a workflow as a highly adaptable and configurable program that performs a series of tasks. The program is adaptable in that it can be changed depending on business needs.

The ‘various’ part of the explanation is where you get the power of workflow. Compared to a traditional program, in which you often get a set of features and need to rewrite the program to extend that set of features, workflows allow you to pick and choose from activities.

Figure 55 

In short, you get a ‘pick and choose’ program that you can change as your needs change. Workflow is the Lego of programming, in a manner of speaking.

Wait, Programs? That Sounds Complicated and Unstable?

Yes, which is why I say ‘in a manner of speaking’.

You see, at least in the Windows Workflow Foundation that SharePoint uses, the framework handles most of the nitty-gritty details for you, and enables you, more or less, to just say what you want to happen when during a process. The stability and flexibility is also handled by the framework so you don’t need to worry as much about your workflows as you would normal programs. 

For example, if your server goes down, the framework will make sure that your workflow continues to run after the server comes back up. If you need to change your workflow, the framework and SharePoint will ensure that running workflows complete and that new instances of the workflow only use the new version of the workflow.

What Are Some Common SharePoint Workflow Examples?

Probably the most common example used is an approval workflow, in which some form of data requires approval from someone. The default SharePoint approval workflow is one such example, in which the author of the data requests approval for an item or document. This may be a request for expenses reimbursed, a vacation request, or any other request for which on user requires the approval of another user to complete some task.

Another common example is document management. Regardless of size, almost all organization have some form of document management, even if it’s as simple as telling a secretary to file a report in a certain file cabinet. Workflow can help automate document management, and the SharePoint document workflows offer some out-of-the-box functionality to cater to basic needs.

However, these are just two examples of scenarios in which workflow may help. The nature of workflow is that it can be customized to almost any business process, if nothing else than to track the progress of those processes or audit what happens during a process.

How Can I Create SharePoint Custom Workflows?

You have several options for creating and customizing workflow.

Out-of-the-box SharePoint Workflows

Granted, out-of-the-box doesn’t sound very customizable, but the truth is, many of these workflows are flexible enough to solve at least basic needs. For example, for the SharePoint approval workflow, you can customize who gets to approve an item or document, as well as deadlines for the approval tasks, and allow or disallow the approvers to reassign the workflow approval task.

If this still doesn’t meet your needs, you may want to take one step up.

SharePoint Designer Workflows

SharePoint Designer (SPD) offers a basic workflow authoring experience. With SharePoint Designer 2007, end users can create workflows without needing to learn complicated tools or adopt programming as a career.

Despite the perceived simplicity of SharePoint Designer workflows, however, you can accomplish fairly complex tasks using the built-in activities in SharePoint Designer. In addition, you can get or create additional activities to further customize your workflow and in essence create your own Lego pieces.

Figure 84 

SharePoint Designer is often scoffed at by developers as being a FrontPage bastard child. However, for designing one-off workflows with a very gentle learning curve, SharePoint Designer workflow is the way to go.

In addition, several of the limitations of SharePoint Designer 2007 are improved in SharePoint Designer 2010, as I have written previously in the first and second look at SharePoint Designer 2010 as well as the SharePoint Designer 2010 workflow features article.

You can learn all about SharePoint Designer workflows in issue 4 of Understanding SharePoint Journal.

Visual Studio SharePoint Workflows

The limitations of SharePoint Designer workflows become apparent when your needs become a bit more complex. That is when you may want to turn to Visual Studio.

Visual Studio offers the maximum amount of flexibility and power at the cost of a longer and more complex learning curve. If you want complete control and maximum power, however, that is the price to pay.

 Figure 84

However, while Visual Studio is traditionally considered a programmers tool, it is a myth that creating Visual Studio workflows require programming skills. You can get a lot more done if you do use some programming, but in essence, the same building-block paradigm is used in Visual Studio workflows as well.

You can get an introduction to Visual Studio workflows for SharePoint in issue 7 of Understanding SharePoint Journal.

Third-party Workflow Tools

If neither of these options are to your liking, you may want t
o turn to third-party workflow tools. Some well known tools are K2 BlackPoint and Nintex Workflow 2007.

Third-party tools offer both competing and complementary features to the already mentioned workflow tools. For example, Nintex Workflow 2007 offers a combination of the ease of SharePoint Designer workflows with some of the power of Visual Studio.

While a complete description of all the available tools is a bit beyond the scope of this article, you should know that these third-party alternatives exist.
You can also get the free Using Nintex Workflow 2007 issue of, you guess it, Understanding SharePoint Journal, if you want to explore that product more.

Anything Else?

Yeah, don’t forget to brush your teeth and floss. Seriously, everything I have said here is just my personal opinion, but brushing your teeth and using dental floss is recommended based on hard, scientific proof. Proper dental care leads to healthier teeth, prevents bad breath, and can improve the whiteness of your teeth without damaging chemicals.

.b

Found this article valuable? Want to show your appreciation? Here are some options:

a) Click on the banners anywhere on the site to visit my blog's sponsors. They are all hand-picked and are selected based on providing great products and services to the SharePoint community.

b) Donate Bitcoins! I love Bitcoins, and you can donate if you'd like by clicking the button below.

c) Spread the word! Below, you should find links to sharing this article on your favorite social media sites. I'm an attention junkie, so sharing is caring in my book!

Pin It

Published by

Bjørn Furuknap

I previously did SharePoint. These days, I try new things to see where I can find the passion. If you have great ideas, cool projects, or is in general an awesome person, get in touch and we might find out together.

12 thoughts on “SharePoint Workflow – What You Need to Know”

  1. Hi,
    I’ve been struggling with this workflow for a while now, so I’m hoping you can shed some light.

    Using SP 2010 & SP Designer 2010, I’ve created a custom list with the following workflow:
    If Status equals Assigned,
    Update “Date WO ‘Assigned’” field with Today’s date & Add a note to Notes/Comments field
    Then send Email

    The start options are:
    Start WF manually
    Start WF when item is changed

    The part that’s tripping me up is this…
    Let’s say I change the status to “Assigned” today (1/8). The “Date WO Assigned” field will be populated with 1/8.
    Now, let’s say tomorrow I decide to add a note to the Notes field. Since the status is still set to “Assigned”, the WF will start because the item has been changed. The “Date WO Assigned” field will now be populated with “Today’s date”, which would be 1/9. This creates bad data since the item was actually assigned on 1/7.

    What condition or action can I add to the WF to keep the workflow from starting if the date field is already populated? I need to be able to edit the item without the WF starting & repopulating the dates, adding notes & sending out emails.

    Any insight is greatly appreciated!
    Stephanie

  2. Mrs. K,

    If I understand the situation correctly, why not just have a step near the beginning where you check a condition to the effect of 'if Date WO Assigned is not empty then end workflow'.

    This will cause the workflow to end if the date wo assigned is not empty, in other words, if it has already been assigned.

    It's slightly difficult to give an exact answer without seeing the whole picture, though 🙂

    .b

  3. Thank you for getting back to me. I'm pretty new to using workflows & doing them in 2010 seems more difficult, since there isn't a lot of training available just yet.

    Your solution of adding a condition "if Date WO Assigned is not empty then end workflow" sounds like the perfect plan, however, can you walk me thru the steps on how to add that? I don't recall there being a condition or action where "not empty" is an option.

    If you need a screen shot or more information, let me know & I'll get it to you. Just need your email addy.

    Thanks again!
    Mrs. K

  4. Mrs. K,

    I haven't actually checked if you can compare a date to nothing, but here's a trick that you can use.

    Rather than check for an empty value, compare the value to an old date, for example 1/1/1970.

    I'll see if I can fire up my SPD2010 environment and write a short blog post to describe.

    .b

  5. It does allow you to check a date via "equal", "greater than or equal to", "greater than", "less than or equal to" and "less than". I've tried comparing it to "greater than or equal to", but the WF still ran. I may have not put in the right action tho, like "stop WF". Any insight you can provide would be great! thanks!

  6. Thank you, Furuknap. Great intro to SharePoint workflow.

    SharePoint Designer deploys workflows as XML and compiles it on-the-fly. What’s the implication of this in terms of performance? Will the same workflow created by Visual Studio perform better because it’s compiled into assemblies and deployed in the GAC? Is there a pre-compiling and caching mechanism for SharePoint Designer workflows similar to how execution plans are generated for SQL Server stored procedures?

  7. i am trying to create a workflow for a leave letter system in an organization

    for ex: in an organization an employee login to sps and enter the leave letter form and send request to TL, if he approves then it should sent to MD , if he approves it should be sent to HR

  8. Pingback: Top 10 Tips for Success with SharePoint: #4 « Doing IT Differently
  9. Hi

    I am having a very crucial scenario for workflows, where I can’t deploy the custom WF assembly into GAC, but I have to acheive this. Though I don’t know how !! As per my knowledge custom WF needs to have their dll in GAC to run, else it can’t. SO, my question is, is there any body here knows that, how the share point deployment system and run time engine gets the instruction about the GAC? To find out the assembly, where this principle is written, and is there any way to do a tweak with that, so that we can deploy the WF without keeping the dll into GAC, rather some where else. Please note that, neither we have access to GAC nor we can change the config file to tweak with the trust level provided. Any idea is welcome.

    Thanks in advance !!

  10. Hello All Experts ,

    How can i create a workflow in sharepoint 2013 for dynamic approval level… My Requirement is I have to create a workflow using SPD2013 or VS 2012 . Workflow is assocated on list .It will be intialize automatically throgh the code .

    It is having simple approval + It approver can send back for rework also. I have implemented that already but now the requirement is change . I want to make it configurable means suppose I have to add one more approver in approver group then it should work for that also..Client don’t want to change workflow each time ..

    How can I achieve this ? Currently I am having only two approval level in future it would be more then how can I do configuration in that then It should automatically add the approver in workflow based on some condition ?
    in some cases client can push 3rd approval level in between these two approval levels how to deal this one?

    Any suggestion ??

    thanks in Advance ..

Leave a Reply

Your email address will not be published.