Archive

Archive for the ‘Project 2010’ Category

Love Business Intelligence on Project Server, install the December 2011 CU now!

January 15, 2012 Leave a comment

It’s always sound advice to try and keep your Project Server 2010 environment patched to the latest cumulative update, typically these include bug fixes or small enhancements to keep your environment running smoothly. Back in December, Microsoft released the December Project Server 2011 CU, which included a number of fixes and changes to timesheets amongst other things. As Project Server runs on top of your SharePoint environment,  it’s also necessary to patch SharePoint at the same time. With the December 2011 CU, the PerformancePoint team rolled in a number of enhancements to allow the viewing of PerformancePoint dashboards, reporting services reports and excel services on the iPad which Project Server gets to benefit from free of charge! Check out the screenshots below of the various Business Intelligence reports and dashboards rendering on an iPad.

Project Server Summary Dashboard on the iPad

 

Project Server Status Report on the iPad

 

Excel Services on the iPad

There are a number considerations for allowing your reports and scorecards to render correctly on an iPad. From my limited testing most, if not all of the the Project Server v1 demo image rendered correctly without modification, with the exception of one of the status reporting services reports. Microsoft published a technet article outlining the limitations of the type of reports that can be displayed on the iPad and tips on how to interact with the reports.

Finally, don’t forget to check Brian Smith’s and Adrian Jenkins webcast covering the contents of the December CU including the various fixes and design changes it implements, to make sure the patch is right for your farm & circumstances.

Happy Patching Smile

Hiding & Disabling ribbon items in Project Server, Part II

December 13, 2011 2 comments

In the last post, we covered a few things you will need to know when hiding or disabling ribbon buttons in PWA. In this post we will look at how to actually hide the buttons.

Where to start?

Irrespective of whether you wish to hide or disable a button in the ribbon, you will need to follow the same basic process by building a solution in Visual Studio that will deploy your ribbon customisation.

To start, open up Visual Studio and choose to create an Empty SharePoint Project.

Create Empty SharePoint Project

Enter a name and then click on OK. You will then see the SharePoint Customisation Wizard, enter the local site you wish to use for debugging and choose to ‘Deploy as a sandboxed solution’.
SharePoint Customisation Wizard

On clicking finish, Visual Studio will create a solution ready to be customised.

To start with we need to create a feature,  this is a logical container for our customisation and allows the user to turn on and off the customisation by activating and deactivating the feature. To do so, right click on Features in the solution explorer and choose Add Feature.

Add Feature

A feature will be created and Visual Studio will show a page where you can enter information about the feature such as the name, description and the scope. In this case we are going to choose Web (for an individual site) as we want this change to deploy only to the /PWA site and not all the children sites.

Hidebutton Feature

Next we want to add an element to the solution, this is where the real work is done and contains the XML that will be used to configure our ribbon.

To add an element, right click on the project name, choose Add, New Item

Add New Item

In the dialog that is displayed, scroll down and select Empty Element and give it a name.

Add Element

Once you click add, the element will be created.

Blank Element

Now the empty element is created, all that is needed is to add the relevant XML to either disable or remove the button.

Disabling a button

For this example, we shall be disabling the EPT Change button from the Project Centre ribbon. To do so we need to know the ID of the item as defined in the ribbon so we can build up some XML that defines what we want to do to that item. To find the ID, we need to look through the PWARibbon.xml file, which can be a bit daunting, but after a while you will understand the structure and finding the Id’s will become simple.

SharePoint ribbon customisations use a defined XML schema which describes the structure and behaviour of the ribbon and the items that make it up. In order to disable the EPT Change button, we need to override the current structure and behaviour to change the configuration of what the button will do, in this case, pointing to a command that doesn’t exist.  In doing so, the ribbon will disable the button for us, giving us the desired effect.

To get the various attributes of the button, the PWARibbon.XML is your friend, containing all the configuration information you will need. In this case I have taken the configuration of the button and changed the command to point at a non existent command, which will cause the button to be disabled. This XML then needs to be put in the Element.xml file ready to be built, but more on that later.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
	<CustomAction
			Id="Ribbon.ContextualTabs.ProjectCenter.Home.ChangeProjectType.Change"
			Location="CommandUI.Ribbon"
			Title="Disables the EPT Change button in the Project Center Ribbon">
		<CommandUIExtension>
			<CommandUIDefinitions>
				<CommandUIDefinition Location="Ribbon.ContextualTabs.ProjectCenter.Home.ChangeProjectType.Change">
					<Button
						Id="Ribbon.ContextualTabs.ProjectCenter.Home.ChangeProjectType.Change"
						Command="ChangeReplacement"
						Sequence="10"
						Image16by16="/_layouts/$Resources:core,Language;/images/ps16x16.png"
						Image16by16Top="-112"
						Image16by16Left="-190"
						Image32by32="/_layouts/$Resources:core,Language;/images/ps32x32.png"
						Image32by32Top="-352"
						Image32by32Left="-96"
						LabelText="$Resources:pwafeatures,WEBPARTS_PROJECTCENTERPART_CM_CHANGE"
						TemplateAlias="o1"
						ToolTipTitle="$Resources:pwafeatures,PAGE_PDP_CM_CHANGE_WORKFLOW"
						ToolTipDescription="$Resources:pwafeatures,SUPER_TOOLTIP_CHANGE_PROJECT_TYPE"
						/>
				</CommandUIDefinition>
			</CommandUIDefinitions>
		</CommandUIExtension>
	</CustomAction>
</Elements>

Removing a button

The XML code required to remove a button is simpler. Instead of defining the XML for the whole button, all that is required is to redefine the CommandUIDefinition as per below.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
	<CustomAction
			Id="Ribbon.ContextualTabs.ProjectCenter.Home.ChangeProjectType.Change"
			Location="CommandUI.Ribbon">
		<CommandUIExtension>
			<CommandUIDefinitions>
				<CommandUIDefinition Location="Ribbon.ContextualTabs.ProjectCenter.Home.ChangeProjectType.Change" />
			</CommandUIDefinitions>
		</CommandUIExtension>
	</CustomAction>
</Elements>

When PWA parses the XML it uses this to remove the button as key items are not defined. Once again, all that is required to remove the button is to move this XML into the Elements.XML file and save ready for building.

In both cases, if you wish to hide or disable more than one button, you will need to duplicate the Custom Action mark up and change as necessary for each button.

How to Build

Finally once the configuration is completed, all that is required is to build and deploy the solution. To do so, right click on the project name and choose build, if everything is ok, you should see something similar to this in the build output:

Build Succeeded

If the build fails, then there may be a problem in your code. I have packaged the code up I used to build this post into a zip file which is available from my Skydrive account so you can compare or copy.

Once the build is successful you can deploy the solution by right clicking on the solution name and choosing deploy. VS 2010 will then deploy the solution to the site you entered for debugging and activate the solution in the site collection.

Activate Feature

Once the solution has been activated, you should see the changes to the ribbon in Project Center.

As you can see from above, creating a custom feature to hide or disabling buttons in the ribbon is relatively simple once you have the basic structure in place. Hopefully this post has explained how to build these customisations for use in your next project or internal implementation.

Hiding & Disabling ribbon items in Project Server, Part I

December 7, 2011 Leave a comment

Recently I have been working on a number of projects where the requirement to disable ribbon commands in Project Server has come up again and again. There are a couple of posts out there around modifying the ribbon, but they tend to focus on adding new items, not removing or disabling them, so I thought I would post something covering it. Of course, before you look at disabling the ribbon item through a customisation, you should look to see if the item can be disabled using the Project Server security model first.

What you need to know about the ribbon

If you are going to do any work on the ribbon, you need to be aware of a couple of things, firstly for performance reasons the ribbon is cached client side, which makes it really really painful to work with as your changes may not be visible straight away. To get around this, I found using the InPrivate mode of Internet Explorer stopped the client side caching and ensured my ribbon changes were visible.

Secondly, if you are going to hide or disable a ribbon item you need to know the ID of the item. Both SharePoint and Project Server have xml configuration files that define the structure of the ribbons, for SharePoint the ribbon structure is defined in a number of files, but the main one is CMDUI.XML located in {SharePointRoot}TEMPLATE\GLOBAL\XML\CMDUI.XML. For Project Server, the ribbon definitions are kept in the PWACONFIG.XML file located in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\PWARibbon\listtemplates. The file itself contains the configuration of each button within the PWA app, including the name, image, command to be fired when clicked and references to the tooltips etc.

Example of PWACONFIG.XML

Finally, in the case of Project Server, you need to make sure you find the correct Id, things like the Timesheet ribbon have different id’s depending on whether the timesheet is running in Single Entry Mode, or normal timesheet mode.

To disable or hide? That is the question…

There are two schools of thought when disabling commands in SharePoint and therefore Project Server, to disable or hide the buttons. Hiding the buttons will remove the button completely from the ribbon, whereas disabling the button will leave the button on the ribbon, but in a state that cannot be clicked, thus stopping the functionality the item provides.

Normal Normal Ribbon
Disabled Disabled button on ribbon
Hidden Hidden button on ribbon

 

As you can see from above, the disabling route will be less confusing and will lead to a more consistent user experience for end users, but there are still situations where hiding might be the best route to go (I have a couple of customers that preferred hiding to disabling).

In the next post, we will look at how hide and disable a button using Visual Studio and some SharePoint features.

Introducing Project Social

November 23, 2011 2 comments

A couple of weeks ago I traded in my iPhone for a new Mango based Windows Phone 7. For those of you that haven’t tried WP7, I would strongly suggest you do. In addition to being able to view your favourite EPM software through the mobile browser, the whole platform and experience seems vastly superior to the Apple offering.

Whilst the WP7 marketplace has a wide variety of application that is growing on a daily basis, it is a little light on Project related applications. So inspired by the fantastic Project Server and SharePoint iPhone app by Giles Hamson, I thought I would have a go at doing something myself, so I am pleased to introduce Project Social.

Project Social Panorama

What is it?

Project Social is a social viewer application that aggregates MS Project related Twitter and RSS feeds from the official MS Twitter accounts and blogs, a number of community blogs and the Project Server Technet content feeds all into one convenient application. Each item can be read directly on the phone where you can interact socially with it by via twitter (tweets, replies or retweets) email or directly via the browser. The application is based on the excellent Codeplex Social Viewer template which is constantly being updated, so watch out for some exciting new updates in the future.

Where can I get it?

Project Social is available now as a free download from the Windows Phone Marketplace or by clicking on the image below.

Download Project Social for Windows Phone

If you have any suggestions, or would like to add or remove your feed, please contact me directly at wp7@epmsource.com.

MPUG Melbourne–Tuesday 6th December

November 21, 2011 Leave a comment

mpug

It’s time for the last MPUG Melbourne of 2011, being held at Microsoft Melbourne on Tuesday 6th December. In a change from previous events, this session is being held at 12:00pm, instead of the usual 5:30pm start, based on feedback from attendees.

The topic for December is The low-down on Project 2010 and Project Server 2010 Service Pack 1

We will provide an overview of the recently released Microsoft Project & Project Server 2010 Service Pack 1. Demonstrating the improvements that have been made that were highly requested by EPM users, including multiple-browser support, synchronisation to Microsoft SharePoint task list updates, manual scheduling extensions, and schedule web part improvements. We will also provide guidance on how to successfully deploy this Service Pack within your organisation.

If you’re running Project Server 2010 and haven’t installed SP1, then this is a must attend event. Registration is free, but please RSVP via EventBright so we know numbers.

Date:  Tuesday 6th December 2011

Time: 12pm to 1:30pm

Location: Microsoft Melbourne, Level 5, 4 Freshwater Place, Southbank VIC 3006

Removing closed web parts before saving a project workspace template

November 18, 2011 Leave a comment

Recently I have seen this problem manifest itself at two customers, so I thought I would post about it to save anyone else running into it, or scratching their heads. When you customise project workspaces, or SharePoint workspaces in general, you have two options to remove the web parts from the page:

  • Close the web part – this stops the web part being rendered on the page, but still being created on each page load
  • Delete the web part – this removes the web part from the page completely.

By default, when you click on a web part without putting the page into edit mode, the first option presented to the user is to close the web part, but not to delete.

Close Web Part

It is only after you choose to edit the page that you will get an option to delete the web part, either in the context menu,

Delete Web Part - Context Menu

or via the Web Part Tools ribbon.

Delete a web part

So what is the problem you may be asking? Well, in both cases,  to customise the templates the users had simply closed instead of deleting the web parts and then thinking all was good, saved the workspace as a template. When that template was used to create a new site, each of the closed web parts were restored and visible once again, effectively removing the customisations.

Luckily fixing this is pretty simple.

First, we need to gain access to the Web Part Maintenance page which will display all web parts on the page and their associated status. To get there, simply add the following to the URL – ?Contents=1 so…

http://project.contoso.com/PWA/ProjectSiteTemplate/default.aspx

becomes

http://project.contoso.com/PWA/ProjectSiteTemplate/default.aspx?Contents=1

This will display the web part maintenance page, showing each of the web parts and their associated status.

Web Part Page Maintenance

To delete the closed web parts, simply select the correct items and click on Delete. This will delete the web parts from the page.

Finally, save the site as a template once again and all new sites created with it will reflect your customisations. Of course all of this can be avoided by a simple bit of training to delete instead of close,  but if the web parts have already been closed, this will help you fix it.

Turning off Personalisation in Project Server

October 27, 2011 Leave a comment

Personalize this pageOne little known capability of SharePoint is the ability to personalise web part pages to allow a user to remove or add web parts or change the layout of the page for themselves without the change being made for all other people that use that page. In some organisations this can be a useful feature allowing users to tailor the look and feel of SharePoint to their exact to allow them to work more efficiently.

PWA Personalised View

In other organisations, it can also be a source of confusion when end users personalise a page and remove enterprise web parts from the page or totally configure the page , leading to an increased support overhead, which is why some organisations wish to turn off this capability.

Luckily doing so is incredibly easy and can be done at the web application level meaning both your PWA site and project workspaces can have Personalisation disabled in a couple of mouse clicks.

To start, navigate to Central Administration and choose Manage Web Applications

Manage Web Application

Select the web application you wish to turn of Personalisation off within, then click on User Permissions on the ribbon. This will show all the permissions for the web application which you can customise. Scroll to the bottom of the dialog box and uncheck Add/Remove Personal Web Parts and Update Personal Web Parts items.

Setting unchecked

Once you have saved the settings, you will find the Personalize this Page option is no longer available from the top right hand menu, stopping users from personalising PWA or any other sites within the web application.

Personalize this page removed

Mobile Timesheets on Windows Phone 7

October 17, 2011 1 comment

A couple of weeks ago I finally took the plunge and got rid of my iPhone and replaced it with a Windows Phone 7 and promptly upgraded it to the new Mango release. After using it in anger for a while, I can’t believe I didn’t upgrade sooner.

Now why am I telling you this? Well whilst out on the road last week, I forgot to complete my timesheet. My company, like many others out there use Project Server 2010’s timesheet capability to record the time for each project we are working on. The only device I had on me at the time was my WP7, so I thought I would give it a go.

To my surprise, PWA popped up and rendered perfectly in Mango’s IE9 app. Now as I haven’t worked out how to screenshot in WP7, I have opened up PWA in the desktop emulator to give you an idea of what it looks like.

PWA on Windows Phone 7

Zooming in by pinching the screen will let you see more detail. Unlike the iPad that I wrote about previously, moving around the page is very simple and easy to achieve.

Timesheets on Windows Phone 7

If you are in need of a mobile timesheet and task solution for Project Server 2010, then you can’t really go past IE9 in Mango. Nice work MS!

ProjectUID Filter Provider for Reporting Services Viewer Web Part

October 9, 2011 4 comments

Visual Studio 2010 - Custom Web partA couple of months ago, I was wondering if there was a simple way to show project reports automatically within a project workspace. The problem seems quite simple at first, all you need to do is work out which workspace you are in, then pass that value into the Reporting Services viewer web part as a web part connection. After a bit of experimenting with the out of the box web part filter providers, jQuery and other black magic, I quickly came to the conclusion that this wasn’t going to be an easy ask and so cracked open my old friend, Visual Studio 2010.

A couple of hours later (yes, it really did take me that long), I came up with a web part which I have called the ProjectUID Filter Provider for Reporting Services Viewer Web part. To use it you simply drop it onto a Project workspace, the web part will determine the ProjectUID of project the workspace is linked to and then make that available via a web part connection that the Reporting Services Viewer can consume.

Once installed, the web part is available for use in the custom category of the web part gallery.

Web part in the web part gallery

When added to a workspace, the web part is very minimalistic with the following chrome in edit mode and nothing in the normal rendering mode.

ProjectUID web part chrome

If the workspace you are adding the web part to is not connected to a Project, or is not a Project workspace at all, then an error message will be displayed.

To utilise the filter, add a Reporting Services Viewer web part onto your project workspace. In this example I have added a single Reporting Services Viewer web part and configured it to render the Project Status Report from the Project Demo and Evaluation Pack.

Report Viewer Web Part

Next we need to connect the filter provider web parts together, to do this select the context menu for the Reporting Services Viewer Web part, then choose Connections > Get Report Parameters From > ProjectUID Filter Provider for Reporting…

Connecting the web parts

A dialog box will then be displayed allowing you to wire these together, which will default to the ProjectUID. Click on Finish and the web parts will be connected.

Configure Connection

Once you are happy with the page and stopped editing the Project Status Report will render automatically using the ProjectUID passed in from the Filter Provider for Reporting Services Viewer Web part.

The final connected webpart

Of course, the real value of this web part comes into its own when you have more than one report on the page that you wish to render for the specific project. By creating multiple web part connections you can supply the ProjectUID to other Report Viewer web parts.

Now, as I mentioned above I have been sitting on this web part for a few months, why you may ask? Well, for me the killer use of the web part would be to use it in a Project Workspace template, so you could template the reporting dashboard. Unfortunately though if you were to configure the web part connections and create a template, the connections are lost due to the way SharePoint works Sad smile There are solutions to this, which are quite complex and involve event receivers, which I haven’t had a chance to look at in detail just yet. So please be aware of this limitation if you choose to use the web part.  The reason I decided to release the web part now was to help a Project forum user that was after this very capability.

The web part and associated source code can be downloaded from my Skydrive account by clicking below. As usual, this is provided as is, with no warranties or support and use at your own risk etc etc.

Download from SkyDrive

ProjectUID Filter Provider for Reporting Services Viewer

Of course, if you find the web part useful, or wish to suggest changes, please do not hesitate to contact me.

Speaking at SharePoint Saturday Melbourne–22nd October 2011

September 29, 2011 Leave a comment

SharePoint Saturday Melbourne is coming up again, being held on the 22nd October in Melbourne’s CBD. For those of you that don’t know , or haven’t heard about SharePoint Saturday here is a definition from the SharePointSatuday.org site:

Join SharePoint architects, developers, business users and other professionals that work with Microsoft SharePoint Server 2010 for a ‘SharePoint Saturday’ event. SharePoint Saturday is an educational, informative & lively day filled with sessions from respected SharePoint professionals & MVPs, covering a wide variety of SharePoint-orientated topics. SharePoint Saturday is FREE, open to the public and is your local chance to immerse yourself in SharePoint!

The speaker line up is top notch, with at least two SharePoint 2010 MCM’s, several MVP’s and a number of Microsoft speakers all chomping at the bit to spread the SharePoint word Smile

This year I am pleased to have been given the opportunity to spread the Project Server Love once again, presenting a session entitled ‘Leveraging Project Server 2010 for SharePoint Governance and Lifecycle Management’. The session will showcase the SharePoint Lifecycle Management solution recently released by Microsoft and provide a glimpse of how this can be leveraged to improve governance and lifecycle management in your organisation.

Tickets for SharePoint Saturday Melbourne are available from http://spsmel11.eventbrite.com/

Follow

Get every new post delivered to your Inbox.

Join 271 other followers