SharePoint 2010 Workflows • Reusable Workflows • List Workflows • User defined • Sequential • Site Workflows • Predefined • State machine
Courseware – SharePoint 2010 Workflows in Action • Chapter 4 • Tasks • Review all sections • Chapter 5 • Advanced Features • Review all sections • Chapter 6 • Using Visio • Review all sections • Chapter 7 • Using Forms • Review all sections Chapter 8 through Chapter 12 – Custom-Code Workflows – not discussed in this class • Chapter 1 • General Workflow information • 1.1, 1.3.1, 1.3.2 • 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 • Chapter 2 • All About SharePoint Workflows • Review all sections • Chapter 3 • PTO Calendar creation • Review all sections • Refer to the PowerPoint to take this exercise further
SharePoint 2010 Workflows A sequential workflow represents a workflow as a procession of steps that execute in order until the last activity completes. However, sequential workflows are not purely sequential in their execution. Because they can receive external events, and include parallel logic flows, the exact order of activity execution can vary somewhat. • Sequential A state machine workflow represents a set of states, transitions, and actions. One state is denoted as the start state, and then, based on an event, a transition can be made to another state. The state machine can have a final state that determines the end of the workflow. • State machine
List Workflows A list workflow is forever tied to a single list and cannot be reused later. Once you’ve attached a workflow to a list, there’s no supported way to change that list affiliation. However, you can still change the workflow process. You cannot export the workflow from one site to another site, effectively killing the reuse of list workflows. Another consequence of this is that you have to create all your production workflows in your production environment. If what you want is a quick way for business users to solve a problem, designing your workflow in your production environment may be just the right thing, although it has implications for testing mission-critical workflows.
Reusable Workflows A reusable workflow solves list affiliation by simply not being tied to a list at all. This seems at least initially like a great solution, and it does offer some more really useful options for workflow creation. However, SharePoint Designer workflows are declarative in nature. That means you declare, during design, what the workflow should do. The problem is that, because the workflow has no idea on what kind of list it will run in, it also cannot use any of the columns in any of those lists. Content Types - This allows you to connect a workflow to a type of content rather than where that content is stored.
Site Workflows The final type of workflow you can create in SharePoint Designer 2010 is a site workflow. Again, this is a very good idea that may seem utterly useless at first. I mean, why would you want to run workflow on something other than list items and documents? After all, isn’t the whole purpose of a workflow to have some sort of data that behaves in a certain manner? Well, you may be right, but there are many situations in which you don’t want to work directly with a specific piece of data. For example, if you don’t have that data yet but require someone to upload or add that data, you’d want to run a workflow outside the context of a specific item or list.
Insert Options Steps: Workflow steps are logical units containing one or more actions. A step can include several actions that your workflow will do. Actions: The individual tasks that a workflow performs during its execution. An action can be sending an email, assigning a task to someone, creating a new list item, or performing many other tasks.
Insert Options Condition / Else-If Branching: Really means “do something if some condition is true.” In the opposite case, do nothing, or do something else. Parallel Block: Aset of actions that are launched and run in parallel, so we don’t need to wait for one to finish before the next one starts. Impersonation Step: Allows you to create parts of the workflow that run with elevated privileges, specifically the privileges of you or the user who creates the workflow.
Variable Options Initiation Form Parameters: The initiation form is the first form that users see when they launch new workflows. When you click the name of a workflow to start it manually, the form that appears is the initiation form. The parameters we collect from the user when the workflow starts are called initiation parameters. Local Variables: A piece of data that is local to the instance of the workflow that’s currently running. Association Columns: Columns that will be added to a list when a workflow is associated to that list.
Workflows in SPD Working with Actions Using the Task List – have the workflow add 1 day to the Start Date We need to verify that the Due Date isn’t before the Start Date and make the adjustments to Start Date and Due Date accordingly
Check out / Check in Using the check out process for files created by a specific person, updating values and then checking the files back in. Create a library that has Require Check Out - enabled
Exercise Order Processing
Process Chart Approved No Order created Assign a task Pause for duration Yes Still Rejected? Move order to Approved Orders Yes Delete order
Order processing • Setup • Create an “Orders” list (custom list) • Edit List Columns • Keep Title • Add - Customer (choice), Amount (currency), Date (none / Date only) • Save as Template • Create a new list named Approved orders from the above template • On the Order list – set Require Content Approval • Workflow process • From Visio – run Check Diagram and fix any errors (Process Tab) • Export – OrderProcessing • In SPD – click on workflows– Import from Visio • Workflow Name, List Workflow – Orders – Finish • Workflow Settings • New Task List / New History List • Start option – When items change
Order processing • Workflow Process (continued) • Edit Workflow • Name Step – Process Orders • Fill-in criteria as picture illustrates • Save and publish workflow • Test Workflow • Enter an Item • Mark as Approved / Click on In Progress • Mark as Rejected / Click on In Progress • Check the Task generated
Manage Workflows • Removing workflows • Versions • Workflow status page • Workflow history lists
Available actions • Assign a to-do item • Creates a task that is assigned to one or more people and the workflow becomes idle while it waits for each person to complete their task. Complete or Cancel are the only options • Assign a Form to a group • Creates a task that is assigned to one or more people. • When user clicks on their task – they are presented with a form that contains defined questions - very much like a survey, except that the information is contained within a custom content type. • Collect data from users • Same as above with one other feature – the information captured in the form can be stored in workflow variables for use within the workflow
Available actions • Secondary Workflows • A workflow that runs on one list - adds or changes an item in a second list. You can create a second workflow that is triggered by that addition or change. This secondary workflow can manage the added or changed item, or take any other workflow actions • Start Approval Process • Utilizes the Globally Reusable Predefined Approval – SharePoint 2010 Workflow • Start Custom task process • To support complex requirements (laid out as the approval workflow mentioned above)
Available actions • Assignment Stage • Use when creating custom workflows that you want to be able to specify the participants in the workflow when the workflow kicks off, much like the default out of the box Approval, Collect Signatures or Collect Feedback workflows • Use this with the Approval process, Feedback process or Custom Task process • Workflow should be setup to start manually, otherwise, the participants should be assigned within the workflow.
Exercise Interview Feedback process
Scenario • HR would like to automate certain procedures in the Interview process • Central location of Resumes • Ability to assign the people who will be interviewing the Candidate • When the HR person is ready, the ability to trigger a task for those Interviewers • Once the Interview is complete, a feedback form is generated for the interviewer to fill out • Based on the response from the feedback form, trigger an email back to HR indicating a 2nd Interview is required
Setup Resumes Library • Create “Resumes” library • In SPD – Create a “Resumes” library • The Resumes library is setup as follows: • Rename Title to Candidate • Add column – Received Date – Today/Date Only • Add column – Interviewers – People & Group - Multiple • Name, All Users, Allow multiple values, no blank values • Save library • HR uploads a resume into the Resume library • Assigns interviewers • Fills in Candidate name • Selects Received date
Primary Workflow When the HR person is ready, trigger the creation of a task assigned to the Interviewers • Create a list workflow on the Resumes library • Named – Assign Resume • Start option – Manual • Task / History list – NEW for both • Edit workflow • Add an Action • Assign a to-do item • Configure these users
Primary Workflow • Edit workflow (continued) • Configure a to-do item • Name: Complete Interview • Description: Please schedule andcomplete this interview • Save and Publish Note: This creates a new content type calledComplete Interview
Test Primary Workflow • Go to the SharePoint site and test your workflow. • Are there things that should be changed? Modify the form Modify the values for Title (include Candidate name) and Due Date (set a value)
Form adjustment In SPD – on the Workflow setting tab • Forms: • Assign Resume:
Secondary Workflow Modify the value of Title and assign a due date to the task that was created from the Resumes library. Note: On Assign Resume Task List anew column is created named Workflow name • Create a list workflow on the Assign Resume task list • Name: Modify task values • Start option: when created • Lists – keep as Assign Resume Tasks / History
Secondary Workflow Before we modify the values of a task in the Assign Resume Task List – we need to verify that the task that we are adjusting actually was created by the Primary workflow • Edit Workflow • Step 1 – verify task was generated from the resumes library • Condition • If Current Item field equals value • If Current Item: Workflow Name not equal Assign Resume • Action • Stop Workflow • Stop the workflow and log this message • Workflow stopped because task was not generated from Resume library
Secondary Workflow • Edit Workflow • Step 2 – Modify values • Set workflow variable • Create New Due Date variable • Set value to Today • Action to calculate a Due Date • Add Time to Date • Add 2 days to Variable: New Due Date(Output to Variable: New Due Date) • Add Parallel block • Action • Set Field in Current Item • Set Due Date to Variable: New Due Date
Secondary Workflow See Next Page for Relationship Diagram • Edit Workflow • Step 2 – Modify values • Action • Set Field in Current Item • Set Title to … = Interview with - Add a lookup • Select Resumes library, field = Candidate • Connected by value of the ID of the item in the Resume library to the current item - Workflow Item ID value in the Assign Resume Task List • Action • Log to Workflow history list • Action • Stop the Workflow
Secondary Workflow Save and Publish Go to SharePoint and test this workflow
Interview Feedback Form • Once the interview has been completed • Meaning that the interviewer has marked the task complete • A feedback form task is assigned to the interviewer • Questions: • Should a 2nd interview be scheduled? • Yes or No • Additional Comments • Based on the answer to the 1st question, If Yes, a new task should be triggered back to the initiator in the HR group. • Responses should be written to a separate list
Secondary Workflow • Create a Custom List • Name: Interview Feedback • Rename Title to Candidate • Add column – Single Line of Text – 2ndInterview • Add column – Single Line of Text – Interviewer • Save list • Create a list workflow on Assign Resumes Task List • Name: Candidate Feedback • Start option: when changed • Lists: keep as is
Secondary Workflow • Step 1 – Collect Feedback • Condition • If current item field equals value • If Current Item Outcome equals Completed • AND • If current item field equals value • If Current Item Workflow name equals Assign Resume • Action • Collect data from a user • OUTPUT Variable – create new – ResponseID / List Item ID • USER – Workflow lookup – Current Item: Assigned to – As String • DATA – FORM • Name: Interview Responses • Description: Please take a moment to let us know your thoughts • ADD – Should there be a 2nd interview? – choice (Yes, No) • ADD – Additional Comments – multiple lines
Secondary Workflow Window A • Save and Publish • Go to the SharePoint Site and test your workflow We still need to write the feedback to the Interview feedback list and set up a task for 2nd Interview – Yes Edit workflow • Action • Set Workflow variable • Create new – 2ndInterviewID / List Item ID toAssign Resumes Tasks: Should there be a 2nd Interview?
Response ID Joining the Interview Task with the Feedback Form Task Resume Library Assign Resume Tasks List
Secondary Workflow • Edit Workflow (Continued) • Action • Set workflow variable • Create new – Interviewer / List Item ID toCurrent Item: Assigned to • Action • Create List item • Create Item in Interview Feedback (Output to variable: create)
Secondary Workflow • Trigger 2nd Interview • Condition • If any value equals a value • If Variable: 2ndInterviewID=Yes • Action • Assign a to-do item • Assign Schedule 2nd Interview to Resumes: Created By