Extending the Branching Workflow with Approvals

With Project Server 2010 you get an out of the box workflow named ‘Sample Proposal Workflow’, this is quite a good demonstration as it includes all of the usual things you might see in such a process; Validation, Approval, Selection, etc. However unfortunately as of this time (days before RTM) the source for this sample is still not available, at the moment the only SDK example is a simple Branching Workflow which only includes a single validation step.

I had an opportunity at the Sydney Ignite to ask Jan Kalis about this one, and he assured me that the full source for the sample will be released sometime around RTM, but we’ll have to wait a little bit more for that one.

In the meantime the world moves on and I have been busily writing my first full blow demand management workflow for a customer deployment, and so I thought I would share some of what I have done here. To that end I have taken the SDK Branching Workflow and extended it to include an Approval stage similar to that in the Sample Proposal Workflow.

Read below for what I have done and what you need to test it for yourself, then download my Visual Studio 2010 project below.

Branching Workflow with Approval:

The steps below are a summary of the changes made to the Branching Workflow, for a more complete how-to guide I very strongly suggest that you read the SDK Branching Workflow article and if you complete the examples there you will end where my steps below begin. Furthermore all the general requirements for getting this running (Visual Studio 2010 etc) are in the SDK article.

Before you start (or download):

This example is built on a default PWA instance, I have renamed the out of the box Sample Proposal Workflow to ‘Branching Workflow with Approvals’ then after deploying the code changed the workflow selected to the new one. All other PDPs and Stages are used as is, and the only other change required is an optional one below in step 5 below (see image).

Changes Made:

  1. Starting with the SDK Branching Workflow (note that if you download it in the p14betasdk then the code is incomplete and a few steps from the MSDN article must be completed). I also renamed the Feature and the Workflow in the deployment package to avoid confusion.
  2. Then I added a pre-build event command to automatically regenerate the Strong Name. (Can be removed, but just makes testing easier)
  3. Added a step after the Proposal Details Stage where the workflow goes to Proposal Selection Stage in Select Phase (updateProjectStageStatus20 – Waiting for Approval) – Note I have used the Select phase as my ‘Approval’ phase, I am not doing anything with Portfolio Selection here just approval.
  4. Next I read the Project Properties of "Project Name" and "Owner" for the Workflow Task (These are optional and just for completeness).
  5. Read "Portfolio Managers" Project Server Group membership to create approval request for first person returned in group.
  6. Create Workflow Task using CreateTaskWithContentType and assign to approver and populate task properties with Project Name and Owner.

Important: In order for these task properties to work you must ad the built in Columns to the PSWApprovalTask content type by editing the Default Workflow Approvals, then updating the content type to include the existing list columns.

(See Screenshot from List Settings PSWApprovalTask Content Type Properties)

clip_image001

  1. Then we add a while activity onTaskChanged to wait for the Approval task to be actioned. In this step the ExtendedProperties are checked for a value "Approved" anything else results in Rejection.
  2. And finally an IfElseActivity is used to branch on the Approved / Rejected result.
    1. If true then continue to end and UpdateProjectStageStatus to Execution stage.
    2. Else UpdateProjectStageStatus to Not Selected state and Terminate.

Here is the result in Visual Studio:

BranchingWorkflowApproval

What’s left?

  • Email notification? You can simply use the SharePoint list notifications on the Workflow Task list as a simple and consistent email notification method.
  • Portfolio Selection? I’ll leave that one to you.

 

Technical Details:

This example was created on the following beta software, meaning that things might change by RTM:

  • SharePoint Server 2010 RC Build
  • Project Server 2010 RC Build
  • Visual Studio 2010 RC Build

Download the full project files in a zip here. (*see update below)

 

MSDN References:

How to: Create a Branching Workflow <http://msdn.microsoft.com/en-us/library/ee767701(v=office.14).aspx>

Step 3: Create the Workflow <http://msdn.microsoft.com/en-us/library/ms580283.aspx>

 

UPDATE 3/09/2010:

I thought that I’d revisit this one as clearly from the comments there was something wrong after RTM, basically the problem everyone seems to be having relates to the ‘WorkflowTaskCTypeID’ defined. Somehow what I had in the BranchingWorkflow.cs file is actually incorrect, the solution has the following on line 46:

public String WorkflowTaskCTypeID = “0x0108010038A52C27344148C9B9214F82C7C0298500544602C73FFD1245BCC090442C85426B”;

When it should be:

public String WorkflowTaskCTypeID = “0x0108010038A52C27344148C9B9214F82C7C02985?;

Not quite sure where the first one came from (and why it worked?!) but that fixed it for me. If you update that line then recompile / rebuild you should be good.

 

PS. I don’t use the CreateTaskWithContentType anymore, have a look at the 2010 workflow activity (OfficeTask class) used in the Sample Proposal found in the SDK: http://msdn.microsoft.com/en-us/library/microsoft.office.workflow.actions.officetask.aspx

Share and Enjoy !

Shares

2010 Analysis Services Setup – No More Repository!

One thing I had been thus far unable to find out with 2010 and SQL AS is what’s changed with regards to the repository and DSO configuration, didn’t seem to be much specific mention in TechNet and I have seen a few posts indicating that the setup procedure is the same. (As in here.)

Well I just quickly tested and realised that it the whole configuration of the repository and DSO settings is no longer necessary! Hurrah! No more manually creating the repository database, and thank you MS for getting rid of the option to use an MDB repository!

Now that it’s 2010 we can finally get rid of some of those 90’s technologies..

Share and Enjoy !

Shares

PS2010 SQL Performance Setting

Been reviewing the MS documentation on 2010 in preparation for my first production 2010 deployment, and found this little titbit in this TechNet Article under ‘Enable the common language runtime’.

Use the following SQL script to improve Project Server performance, quote: “Enabling the common language runtime provides a significant improvement in performance for custom field operations.”

sp_configure ‘clr enabled’, 1
go
reconfigure
go

Simple enough, just open SQL Management Studio, connect to your SQL server and select New Query then paste and run that.

Share and Enjoy !

Shares

Project / SharePoint 2010 Launch date announced!

The official date(s) has now been announced on the Office 2010 Engineering Blog:

In addition to the Office 2010 Technology Guarantee, were excited to confirm that Office 2010, SharePoint 2010, Visio 2010 and Project 2010 are on schedule and will release to manufacturing (RTM) next month.

For businesses, we will launch the 2010 set of products, including Office 2010, SharePoint 2010, Visio 2010, and Project 2010 worldwide on May 12. To find out more about the Worldwide Business Launch, visit http://sharepoint.microsoft.com/businessproductivity/proof/pages/2010-launch-events.aspx.

For consumers, Office 2010 will be available online and on retail shelves this June. Until then, you can get the Office 2010 beta at www.office.com/beta.”

Looks like May the 12th will be a big day this year, time to start getting ready!

Share and Enjoy !

Shares

Project Server 2010 Hosted Demo Available

In case you haven’t seen this on the Project Programmability blog, then Microsoft have now released a hosted Project Server 2010 demo. This makes it much easier for anyone would would struggle to get their hands on an 8GB 64bit Windows 2008 server!

Access it directly here at the Microsoft Virtual Labs.

See the blog link above if you want some more info or are game to try your hands at the full Hyper-V version, even if you haven’t yet installed Project Professional 2010 you’ll find that link there also!

Share and Enjoy !

Shares

Project 2010 Ignite

Just finished up at the Microsoft Project 2010 Ignite conference in Sydney and wanted to share some of the great things I learnt over the week. The sessions were very good over all I must say and it was good to meet many of the familiar names in both the .AU EPM field but also the Redmond guys who came down.

I’ll post here all my notes taken, basically covering significant items that I learnt and some questions asked and / or answered. Note though that this list is in way a complete list of content covered as basically all the hundreds of things that I have previously learnt over the past few months beta testing are not mentioned in these notes! Also the order is as it was discussed so mostly relates to the agenda, but of course some questions or items discussed were of course off topic.

Day 1

Points of Interest:

  • Release date for General Availability of Office 2010 scheduled for June!
  • Project Server 2010 requires SharePoint 2010 Enterprise version as a minimum.
  • 2007 PWA CAL will upgrade to a full PWA 2010 AND SharePoint Enterprise 2010 CAL if on Software Assurance.
  • Portfolio Server CAL’s upgrade to full Project Server 2010 CAL’s with SA.
  • Full pricing is to be released very soon, and is apparently very similar to the current pricing.
  • Project Pro 2010 is not backwards compatible, ie it cannot connect to PS2007.
  • Synch to SharePoint lists requires only Project Pro (not Standard) 2010 and SharePoint Foundation 2010 (WSS4)
  • Synch to SharePoint task function is fully disabled when connected to a Project Server (interesting).
  • PWA requires Internet Explorer 7 as a minimum, and does not support Tier 2 (other modern) browsers unlike SharePoint
  • Team Foundation Server 2010 for Application Lifecycle Management supported out of the box with a connector, however so far only a client based sync connector is released, the server to server connector will be released soon. Also no support for any previous versions.
  • Project Web App views published data, e.g. Project Centre, but editing a project opens the working or draft copy. (Something to watch out for)
  • MPP format has changed again with PPRO2010 and is not backwards compatible unless the option is specifically selected on save.

Questions asked or answered:

  • Office version required for PS2010 is mainly revolving around Excel Services 2010 which requires Excel 2007/2010 for editing. However no Office version is required for just viewing reports, etc. (Not sure what Word requirements there are for editing / saving, assume the same as 2007)
  • Migration / import from other data sources such as Primavera is not considered. (Not really surprising)

New Buzzwords:

  • Demand Management (my favourite new topic!)
  • Top Down Portfolio Management (included in PS now with PPS)
  • Project Lifecycle Management – preferred to Demand Management as is more accurate to describe the workflow features.

Day 2

Points of Interest:

  • Project Workspaces are now created at the very outset of any workflow or new project, before the first publish. This has the effect in particular if you change workflow mid process and that results in a workspace change then manual extra effort would be required.
  • The SDK will include a tool to visualise workflow through a webpart (like in Portfolio Server)
  • The SDK will also include a tool to pull workspace data (artefacts) into a PDP (Project Details Page).
  • UMT plans to release a few products to supplement the features omitted from Portfolio Server 2010 such as a Project Financial Management and Application Management add-on’s.
  • Timesheets include a new function ‘Send Status’ which performs a status update (submit task updates) of selected or all timesheet lines, without requiring a full timesheet submit.
  • New Timesheet option in settings to require Status Manager approval prior to Timesheet manager approval of a timesheet. (This should address most of the rejection scenario issues in Tied-Mode)
  • Surrogate Timesheets have been completely replaced by the new Delegate functionality.
  • OLAP cubes no longer require the DSO (and thus backwards compatibility components), they are now built using AMO.
  • Project file properties (File->Properties) now selectively stored in the RDB, such as keywords, etc. This would be particularly useful for search.
  • No more OWC (hurrah).
  • Report viewer users do not need direct security permissions on database, this is handled by the Secure Store which uses the appropriate service account. This does not apply to editing of reports.

Things to read:

  • Power Pivot! (Awesome name!)
  • Eigen Vector (which is the formula behind the Portfolio optimiser percentages)

Day 3

Points of Interest:

  • Must check out the BI content on the Project Programmability blog.
  • Visio Services is great for dynamic data driven charts and diagrams, however it does not accept parameters (like Excel Services) which may limit some uses (such as in a project workspace template).
  • Hosted option “Project Online” to be announced soon, which will comprise of a slightly cut down EPM solution for entry level clients.
  • Still not possible to set a baseline using PSI.
  • Delegation feature is basically equivalent to giving someone your password.
  • However delegation is only valid in PWA or with Project web parts, and not in SharePoint including workspaces, or in Project Pro.
  • AD synchronisation and WSS permissions sync have been ‘greatly improved’ to prevent dead-locks, etc.
  • New option for Project Managers via PWA is the ‘project permissions’ option which allows project level security permissions to be assigned by the project owner, negating the need for the use of delegates for project access. (Love it, more user self service!)
  • Project Pro no longer provides the password prompt option, however as it uses Claims based authentication it relies on IE settings and so if IE prompts for password then so does Project Pro.
  • Now need to always think of Project Server as having 5 databases, as the SharePoint content database stores so much important data such as BI, workflow, PDP’s etc.
  • Bulk Update option in Server Settings provides WSSRelinker tool functionality.
  • Playbooks upgrade for 2010 to be released near release date.
  • Playbooks has been fixed to not rely on GUID’s and instead use names to prevent migration issues.
  • A new tool is to be released to migrate PDP’s and workflow like Playbooks.
  • WSS_Logging database is a new SharePoint 2010 feature and provides fully documented performance / issue logging for the farm.
  • The SharePoint Developer Dashboard feature provides very detailed page stats once enabled, detailing things like load times per web parts, SQL stored procedures called, etc.
  • SQL database mirroring is now also supported in 2010.
  • Manually scheduled tasks still have the old duration, start and finish stored as “Scheduled Start, etc”.
  • RDB stores the scheduled start / finish etc as the normal date field, and stores the new manual values separately, and also contains a task field indicating if the task is auto / manual.

Share and Enjoy !

Shares