In project management, a project life cycle can be a long-running process that spans several phases. For instance, new R&D projects need to go through several phases, including creating the proposals, selecting a subset of them, planning, assigning resources, and finally managing and executing the approved projects. In general, managing any work request, whether it’s a new idea, or an IT change request, would have to go through several phases until its completion.
The initial proposals and project ideas are generally referred to as demands, and Demand Management is the process for collecting these demands. Typical demand management phases are create, select, plan, and manage. The planning and management phases are accomplished by the more familiar project management processes by using Project Professional and Project Web App. Selection is accomplished with the Project Portfolio Analysis features.
Project Server Workflows provide a structured way for projects to proceed through the phases. A workflow includes definitions of the lifecycle stages through which the project progresses, for example, proposal creation and initial approval. The workflow sets the information that is required or locked in each stage. For example, a workflow can lock budget cost after the project is approved. A workflow can include necessary manual approval or notification steps and add business logic to update other systems. Or, a workflow can update an enterprise resource planning (ERP) system when the proposal budget is approved.
In Project Server 2010, Project developers were empowered to create governance workflows in Visual Studio that enabled complex lifecycles for the demands. We have taken major steps to significantly improve this experience in the 2013 release:
- SharePoint Designer: You can now create Project workflows in SharePoint Designer in addition to Visual Studio. As you will see in this blog post, these improvements make the whole process significantly easier: with very limited coding knowledge, you can create complex Project workflows to manage the lifecycle of a wide range of proposals.
- Project Online: Also, with this new release, we are enabling Workflow Controlled Projects on both on-premises and online PWA instances, allowing all of our customers take advantage of the great functionalities provided in Project Workflows.
Creating Project Workflows
The diagram below shows the steps to create Project workflows from the first steps in PWA, all the way to the end:
1. Create Enterprise Custom Fields
The very first step in defining workflow controlled projects is to define the enterprise custom fields. Custom fields are like SharePoint list columns for Project entities. They capture metadata about a given entity such as “Location” or “Department”, and can even be configured to track status using formulas and graphical indicators. For instance, you can define a “Sample Proposal Cost” custom field to track the cost of every project proposal.
You can find more details on how to create Enterprise Custom Fields here.
2. Create Web Parts and PDPs
Project Detail Pages (PDPs) are the collection of web parts where users can edit and/or view Custom Fields. Some of the commonly used PDPs, that are shipped out of the box, are the Project Details PDP (which contains all the Project Custom Fields), and the Project Information PDP (which contains the more common project fields). If you’d like to modify the existing PDPs, or define new PDPs, you can do so in PWA Settings > Project Detail Pages. More details on how to create PDPs are given here.
3. Create Stages in PWA
The next step is creating workflow stages in PWA. Each stage is a step in the lifecycle of the project or proposal, and is composed of one or more Project Detail Pages linked by common logic or theme. At each stage, data may be entered, modified, reviewed, or processed. More details on how to create a stage is available here.
4. Create Workflows in SharePoint Designer (SPD)
We’re now ready to define a simple 3-stage Project workflow that determines the fate of a proposal based on its proposed cost:
- Open SharePoint Designer, and hit the Open Site button. Then, enter the URL of the PWA site. Once you hit OK, you’ll likely be asked to enter the credentials to access the PWA site
- Once the site is open, using the left nav, select the Workflows option
- In the ribbon, click on the Site Workflow button
- Enter a name for the new workflow, and pick the “SharePoint 2013 Workflow – Project Server” option in the platform type
- Now, you can see the Text-Based designer, where you can define the workflow
- If you click on the “Stages” dropdown, you’ll see all the stages that were previously defined in PWA:
- Let’s pick “Initial Proposal Details”, “Automatic Rejection” and “Proposal Details”, and add them to the workflow. In order for these stages to show up here, you need to follow Step 3 above to create them in PWA.
- Place the curser inside the top portion of the “Stage: Initial Proposal Details” stage, and then click on the “Action” dropdown in the ribbon. If you scroll down to the “Project Web App Action” group in the dropdown, you’ll see the four available PWA actions in SharePoint Designer:
- Add the “Wait for Project Event” action to the stage, and click on Event dropdown, and choose “Event: When a Project is Submitted”:
- Then, click the curser in the “Transition to stage” section of the stage, and click on the Condition dropdown and drop the “If any value equals value” condition in this section:
- You can click the first “value” in this condition and pick which variable you want to use for comparison. Pick “Project Data” as the data source and then from the second dropdown, pick the “Sample Proposal Cost” Enterprise Custom Field that you had defined during step 1 above:
- Then change “equals” to “is greater than”, and the second “value” to “1000000”. Place the curser immediately below the If statement and from the Action dropdown, pick the “Go to a stage” action. Modify the stage to the “Automatic Rejection” stage. Repeat the same transition logic for the “Else” portion of the If statement, and change its transition to the “Proposal Details” section:
- For the “Automated Rejection” stage, just add the “Go to stage” to its transition section, and change the stage to “End of Workflow”, so that the workflow terminates at the end of this stage.
- For the “Proposal Details” stage, pick the “Start a task process” from the Task Actions group in the Actions dropdown:
- Click on “these users”, to get the tasks details dialog.
- In the Participants field, enter the name of the people and group you’d want to review this proposal.
- In the Task Title, click on “…” to open the String Builder dialog, and in that dialog, enter the task title: “Please review the project”. Then, click on the “Add or Change Lookup” button to open the Lookup dialog. In that dialog, pick the Project Name, and hit OK:
This will inject the Project Name into the task title string.
- In the “Task Options” section, you can set when the task process is complete:
Your workflow will now look something like this:
At this point, the workflow is ready to go. All you need to do is to hit the “Publish” button in the ribbon, and the workflow will be available in PWA after that.
SharePoint Designer also lets you view this workflow in the “Visual Designer” view mode if you have Visio Professional installed. All you need to do is to click on the “View” dropdown in the ribbons and select the “Visual Designer” view. For instance, below is the Visual Designer view of a 5-stage workflow. You can continue editing your workflow in the Visual Designer view, and also copy-paste any piece of this Visio-based view into any other Office app.
You can find more details on creating, editing and viewing workflows with Visual Designer and Visio here.
5. Create an Enterprise Project Type
Now that you have defined and published the workflow, you will need to define an enterprise project type based on this workflow, from which, one can create workflow projects.
- Navigate to PWA Settings > Enterprise Project Types, and select “New Enterprise Project Type”
- Give it a name and description
- Make sure the “SharePoint Tasks List Project” option is NOT selected for the workflow enterprise project type
- In the “Site Workflow Association”, pick the workflow you had just created using SharePoint Designer.
- Leave the rest of the options to their default value and hit “Save”
6. Create Workflow Controlled Projects
This last step completes everything required to set up workflow controlled projects. Now, all you need to do is to navigate to the Project Center, and from the “New” dropdown, select the Enterprise Project Type that was associated with the workflow. This will create the workflow controlled project, and you can navigate through the stages of the workflow similar to Project Server 2010.
In this sample workflow example, we showed how you can use the “Wait for Project Event” action to move between different stages; however, that’s not the only PWA action available in SharePoint Designer. In order to enable common workflow scenarios, other PWA-specific actions are also available in SharePoint Designer:
- The “Set Project Field” sets the value of Enterprise Custom Fields.
- The “Set Project Stage Status” updates the status of the each stage,
- The “Set Status Field in Idea List” updates the Status field in a custom list whose items have been promoted to projects in PWA.
In this blog post, we mostly covered designing Project workflows using SharePoint Designer. If you’d want to stay up to date on the new features in SharePoint Designer 2013, make sure you visit SharePoint Designer blog as well.
We are excited about all these improvements this release, and how they will empower you to take advantage of workflows. We look forward to hearing your feedback and comments!