Archive: SharePoint Designer 2010 Advanced Settings

This article was originally written in Aprile 2012.  It is being reposted here as an archive.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I’ve recently spent a lot of time on SharePoint 2010 workflows.  I made a ton of errors and learned a lot about the new Task Process in 2010.  It may look easy, but there are a lot of things that can go wrong.

I’m currently working on putting together a SharePoint Saturday session on the Task Process.  I will be writing a few “Lessons Learned” articles to help me organize my thoughts to prepare for this session (not yet determined when or where).  I will cover the following topics in more details in upcoming articles: Association and Initiation Forms, Change the behavior of a single task, Change the behavior of the overall task process, Change the completion conditions for this task process, the difference between assigning tasks and starting a task process.

This article is specifically about the Task Process “Advanced Properties”.

It is not immediately noticeable that a task process has advanced properties.  If you click on the name of the task, you are taken to a Task Settings page that allows you to change certain settings.  However, there are certain settings that you may not know to set since you do not see it anywhere except for in the task’s Advanced Properties.  I will notate these as I go through each one below.  Many of the issues I encountered were because these settings had changed or disappeared through the course of my iterations of the workflows.

These settings apply to the three Task Processes that can be added from “Action, Task Actions” and include the word “Process” – Start Approval Process, Start Custom Task Process, Start Feedback Process.

WFA-Image1

I highly recommend completely setting up your task process and reviewing these settings at the end.  Many of these options will be blank when you first set up your task process and will be automatically populated in the course of customizing your workflow.

To view the advanced properties, click on the task process row and click on the drop down button that appears on the right.  Then Select Properties, which will show you some settings and variables that are specific to that task process.

WFAImage2

WFAImage3

Here is a list of all the Properties available.  These are the same for all three task processes.

Note: you will see that some items are “Variables” and some items are “Parameters”

o   Variables are hidden from end users, but the workflow needs to function

o   Parameters  may be included on a form or setting for user input

General Property Variables:

  1. Content Type ID – this is a read only field, you cannot set the Task Content Type here.  If you need to assign a custom content type to a task process, click here for instructions:  Assign a Custom Content Type to Task Process in a SharePoint Designer 2010 workflow
  2. Allow Change Request –will prevent or allow the assigned user to request a change to the page or document being reviewed.

o   This option can be changed from the Task General Settings page (see print screen below)

o   This option will generate a button on the form and a corresponding outcome

o   Selecting this option will mark the current task as complete, assign a new task to the person a change is requested from.  Once that task is marked as complete, a new task will be created to the person that requested the change to review the change and complete the task process.

  1. Allow Reassign – will allow the assigned user to reassign a new task to someone else.  This will mark the current task as complete with an outcome of delegated to:  new person.

o   This option can be changed from the Task General Settings page (see print screen below)

o   This option will generate a button on the form and a corresponding outcome

o   Selecting this option will mark the current task as complete and assign a new task you want to reassign the task to.

WFAImage4

  1. Delete Tasks on Complete – Setting this to “Yes” will delete the task once it has been completed or canceled.

o    You may want to consider this if you will be generating a large number of tasks with workflows.

o   If you are collecting data in the workflow task that you need to retain and you need to delete your tasks, you should include steps in your workflow to place that data somewhere else; in your page or document the process is acting on, for example.

  1. Expand Groups – This setting only applies if you are assigning tasks to SharePoint User Groups.

o   Yes means that each person in the group will get an individual task assigned

o   No means that one task will be created and a member of the group will have the option of claiming the task, which will reassign the task from the group to the individual.

o   This default can be set with the Initiation Form Parameters

WFAImage5

o   You can also leave this option on your workflow initiation form and allow the workflow initiator to select the appropriate option.

  1. Permission Set – This is asking if you want to use the permissions of the task list (default) or set permissions for these tasks so that only people that are assigned to a task, workflow initiators and admins can see tasks.

o   This is set to “Default” by default.

o   This can be set on the Task Settings page.  If you check the box to “Only allow task recipients and process owners to read and edit workflow tasks SharePoint will set this variable to “AssignedTo”

WFAImage6

  1. Task Deleted Outcome – This is asking what the task outcome should be logged as if someone deleted a task.  By default this is blank.   You can enter “Deleted” or “Cancelled” or something that will let someone reviewing the workflow history know what happened to the task.
  2. Task Process Owner – Lists who owns this task process.  If you change the permissions of the task “PermissionSet” then this user or group will have access to all the tasks as the owner.

o   This can be an individual or a SharePoint group.

o   You can set this in the Task Information section of the task general settings page.

WFAImage7

  1. Send Default Task Notifications – pay attention to this one.  If you are sending a custom task notification to a user as part of the process, mark this as “No”.  Otherwise it will change the default setting of your task list no notify users when a task is assigned.

o   Personally, I prefer to customize the task notification message, so I mark this as “no”

o   If this is set to “Yes” it will send the automated message below from the Task List this task resides in (the variables in <> below will be populated by the task or item)

WFAImage8

 

Parameters for “[Task Process]”

  1. Task Process Name – This is the name of the Task Process, which may be included in notifications, depending on how yours are set up.  You can also change this setting in the Task General Settings Page under Task Information.

WFAImage9

  1. Overdue Repeat – Set this parameter if you want to send a notification to a user when the task is overdue.  Your options are Off, Daily, Weekly or Monthly.

o   You have the option of customizing the email that is sent in the Task Process.  That will be covered in another post.

WFAImage10

o   The default setting is weekly.

 

  1. Overdue Repeat Times – How many reminders do you want to send to the person or group a task is assigned to?  You can enter a set number, or enter -1 for infinity.  This means SharePoint will keep sending a reminder on the schedule that you listed in the previous parameter until the task is marked as complete, the task process is cancelled or the task is deleted.

WFAImage11

o   The default setting is infinity

 

Parameters for “[this item]”

  1. Item ID – Do not change this option.  It is defaulted to the Item ID that the workflow is running on.

Parameters for “[these users]”

These variables can also be set in the workflow task using the “Set Workflow Variable” action or when you click on the link to start the task process with “these users”

WFAImage12

WFAImage13

  1. CC: – This variable is asking if an individual or group should be copied on emails regarding this task process.

o   Unless you are setting your workflow so that every workflow copies a certain person or group, I would leave this as “Parameter: CC”.

  • You can include this parameter on the initiation form for a person starting the workflow to complete or you can set with workflow actions if the workflow will be started automatically.
  1. Comments – Important:  if “Parameter: Comments” is not listed here, then if your workflow can be manually started and you allow a workflow initiator to enter comments when manually starting the workflow, they will be lost.  They will not be included in the emails or on the “Task Process Consolidated Comments”

o   The alternative is to enter static text here or to enter static text when you are adding a workflow to the list, library or content type

  1. Subject – Default subject of task notifications.

o   I personally do not complete this one because I make each task notification subject different depending on how complex the workflow is.

  • For example, a reassigned or change request task gets a different subject that an original task.  Or a task assigned to a group will have a different subject than a task assigned to an individual.
  1. Duration – the number of days, weeks or months that a person has to complete a task

o   You can set this parameter here, in the overall workflow process itself, or when adding the workflow to the list, library or content type.

o   Make sure this is as least set as “Parameter: Duration” in the advanced.

  1. Duration Unit – days weeks or months

o   You can set this parameter here, in the overall workflow process itself, or when adding the workflow to the list, library or content type.

o   Make sure this is as least set as “Parameter: Duration Unit” in the advanced settings.

  1. Due Date – If you’d rather set an overall due date for the entire task process you can set it here.

o   You can set this parameter here, in the overall workflow process itself, or when adding the workflow to the list, library or content type.

o   Make sure this is as least set as “Parameter: Due Date” in the advanced settings.

An example of the screen when you are assigning a workflow to a list, library or content type is below.

  • Note the parameters that you can set here or in the Task Process’s advanced settings.
  • You can make these fields available to a workflow initiator or hide them.

WFAImage14

 

I would love to hear if this has been helpful for you.   Have a great day!

Archive: SharePoint Designer 2010 Workflows – an alternate deployment option

This article was originally written in April 2012.  It is being reposted here as an archive.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I love SharePoint Designer and all the cool things you can do with it as a no-code solutions expert.  I love the concept of being able to save a globally reusable workflow as a Site Template and deploying it to other site collections via Visual Studio or Sandbox Solutions.  Unfortunately, we ran into some major issues when trying to deploy a .wsp file from a local machine to our development server to the client’s stage server and finally to production.

I worked with one of our developers to try and deploy workflows through Visual Studio.  Unfortunately, for a variety of reasons, we couldn’t get it to work.  You can read his take on our deployment adventure in his 3-part blog here:  Importing SharePoint Designer Workflows into Visual Studio – Part 1, Part 2 & Part 3.

After spending way too much time on that process, we decided we were going to use the process that Microsoft gave us; Save as a Template, upload into User Solutions, Activate and then turn on the feature.  In theory, this sounds great.  Unfortunately, we ran into a bunch of issues with this process too…including variables getting messed up, empty folders being created, changes not updating, buttons not working, InfoPath form customizations getting lost, etc.  We would resolve one issue and the next time, a totally new one would pop up.  The worst thing of all was that when we deactivated the feature and removed the solution, our out-of-the-box task fields that the workflow used were removed too!

As a last resort, I decided to try the same thing that I did when I needed to get a workflow in SharePoint 2007 from one site to another:  Copy and Paste.  Yup, that’s right, I just copied and pasted a workflow from one site to another, did a quick “Find and replace” of GUID’s for list ID’s and I was able to use the same workflow on multiple sites, my own 2007 version of a reusable workflow.

I thought it was my own little secret way until I just searched for and found this post by  Paul Galvin that gives great step-by-step instructions for moving 2007 workflows:  https://www.nothingbutsharepoint.com/sites/eusp/Pages/why-can_e2_80_99t-i-easily-port-sharepoint-designer-workflow-solutions-from-one-list-to-another-part-2.aspx).  The only thing missing is that you will need to do a Find and Replace of the GUID’s once you have the workflow in its new home.  I have only used this method for copying workflows from one site to another in the same site collection in the same environment.  I do not know if it will work from environment to environment.

Here are the updated instructions for SharePoint 2010.

Some notes about these instructions:

  • Workflows were created as Reusable workflows and were not associated with any lists or content types.
  • I created these workflows on a subsite so they could be tested, then copied it up to the parent site where I could then globally publish them on our development environment and then followed the same process on our production environment.
  • Our site columns and content types were created through Visual Studio so that all of our environments have the same GUID’s.  If you are not able to have a developer do this, then you may need to do a few extra steps listed at the end to re-align everything.
  • These workflows do not include any lookups to other site lists, but they do include global site columns.

Here is the process that worked best for us.  These steps assume that you have completed your workflow, it is fully tested and you are ready to move it to its new home.

First we need to make sure that the workflow’s new home has a “Workflow” folder for it to be moved to.

  1. In the site where you will be moving your workflow, go to All Files (see print screen below if you get a blank screen) and confirm that there is a “Workflows” folder.

SPDImage1

  1. If there is not, create a new reusable workflow.  Don’t worry about adding in steps or publishing it…we are just doing this to create the folder.

SPDImage2

 

The following steps happen on the site where the workflow that you want to move currently exists.

  1. Click on “All Files”
  2. Click on the “Workflows” folder
  3. Click on the name of the workflow that you want to move, right click and select “Copy” (or select and click Ctrl +C)

SPDImage3

  1. Go to the workflow’s new home, “Workflows” folder
  2. Paste your folder in the “Workflows” folder by either clicking “Ctrl+V” or right click and select “Paste”
  3. Now click on Workflows link SPDImage4  in the left navigation and open your workflow.
  4. If your form has any out of the box Association or Task InfoPath forms, delete them and let the new site re-generate them for you.

NOTE: If you customized the Initiation and/or Task InfoPath form, click on them to open InfoPath and publish them.  SharePoint will do some back-end magic that will associate your form with this workflow on this site.

SPDImage5

NOTE: Your Task form may have a different name with “Copy” if you are using the out of the box task form.  If you need to associate a custom content type task form to your workflow, check out this article:  Assign a Custom Content Type to Task Process in a SharePoint Designer 2010 workflow

  1. Click through all the steps in your workflow or click on Check for errors to confirm that everything is aligned correctly.

o   This is where you may need to delete remove associated fields and re-add them.  Or delete fields that you are populating and re-add them in the new environment.

  • Since all of our fields and content types were created with code and the GUID’s matched, I don’t have any examples to show.

SPDImage6

 

  1. If you need to make your site globally available, paste your workflow in the “Workflows” folder on the parent site and you can click on “Publish Globally” from here.

SPDImage7

Notes about globally publishing a workflow:

  • I don’t recommend copying and pasting directly into the global workflows folder.  In theory I think it would work, but I don’t know enough about what SharePoint magic happens to make a workflow globally available, and I’d rather be safe than sorry.
  • If you have a globally published workflow that you need to add to a content type, don’t add it during business hours or during times where users may actively be editing that content type…they may lose their information as your changes override theirs.

o   The same goes for re-publishing changes to the global workflow.

  • If you have custom InfoPath forms, the process of globally publishing it will generate a new out of the box form.  To replace this, copy the forms from your “All Files ->Workflows” folder and paste into the Global Workflows folder: “All Files ->_catalogs ->wfpub”

SPDImage8

 

 

Archive: Connect to multiple sub-sites in Data View Web Part

This article was originally written in April 2012.  It is being reposted here as an archive.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In SharePoint 2007, the Data View Web part (DVWP) was all the rage.  You could create complex views from multiple sites within in your site collection or other data sources and group, sort and format the data in a visually appealing and meaningful way.

SharePoint Designer 2007 made it easy for you to connect multiple lists on sub-sites with a handy little “Connect to another library…” link at the bottom of the data sources task pane.   With all the improvements Microsoft has made with the Content Query Web Part, I was excited to use the DVWP as a sort of expanded version of information that I show in a CQWP.    However, SharePoint Designer 2010 has gotten rid of the task pane and the handy little link that allows you to quickly connect data sources to display in the DVWP.  Out of the box you can see you site’s document libraries and lists in the data sources.

So the question is, how do you combine data from multiple sub-sites to display in a consolidated list?  For this example, I have 8 departments and each department has a sub-site.  Each of these sub-sites has a “Goals” list that uses a global content type in a custom task list.  I want to consolidate each department’s goals on the parent site to display a view the company-wide goals.

Inbar Cizar (@Cizi) does an excellent job of explaining how to add a sub-site’s list to your list of data sources in this post:  http://blogs.microsoft.co.il/blogs/cizi/archive/2010/08/01/connect-to-another-library-in-sharepoint-designer-2010.aspx

Once you have added each of your department’s goals as a data source, you will need to create a “Linked Data Sources” and use this Linked Data Source in your Data View Web Part

Image1-Data Sources for DVWP

Then open an existing or create a new page (I used  an .aspx page).

On the ribbon, click on the down arrow on the Data View button and select your Linked Data Source.

Image2-DataViewButton

From there you can add your columns, group, sort and modify the DVWP as needed.

 

Image3-SOAPServices

NOTE:

Name your SOAP datasources carefully; you can use the name of the connection to group or sort a DVWP by the name of the sub-site, or whatever you call it.  After the datasources have been connected as a Linked Source, any name changes are not reflected, so you will need to create a new Linked Source to reflect a name change.

Here are instructions to group the DVWP by the site name, which is what I named the SOAP Service datasource.

  1. Call your “SOAP Services” data source the name of your sub-site.
  2. Click on sort and Group
  3. Select “Add Sort Expression…”
  4. Select “agg:source”