Brooks White, Sr. PFE for Project Server

I am a Microsoft Premier Field Engineer supporting Project Server.

Brooks White, Sr. PFE for Project Server

  • Where to find Project Server documentation online...

    While I do receive a lot of requests for specific information and links from customers, I thought it worthwhile to point out some sites that are wonderful jumping off points to references online.  Enjoy!

     

    Update center for Office, Office servers, and related products http://technet.microsoft.com/en-us/office/ee748587.aspx

    This is the landing page for the latest CUs available.  From here, you can click the latest KB article link and pull the downloads.  The best part is, this site is updated so you can save this to your favorites and you can check it for the latest CU without having to go other places.

       

    Project Server for IT pros (Home) http://technet.microsoft.com/en-us/projectserver/default.aspx

    Project Server 2010 for IT pros http://technet.microsoft.com/en-us/projectserver/ee263909.aspx#tab=1

    Project Server 2013 for IT pros http://technet.microsoft.com/en-us/projectserver/fp123546

     

    Finding Project Server 2010 documentation http://blogs.msdn.com/b/project/archive/2010/09/15/finding-project-server-2010-documentation.aspx

    Documentation for Project Server 2010 is spread across three websites: TechNet, Office.com, and MSDN. Each of these sites addresses a different audience. TechNet focuses on the IT Pro, Office.com focuses on the end user, and MSDN focuses on the developer audience. In addition to these three sites, blogs are also a great source of information.

     

    Project Server 2010 IT-Professional TechNet Webcasts (On demand web casts) https://msevents.microsoft.com/cui/SearchDisplay.aspx?culture=en-us#culture=en-us;kwdAny=project%20server%202010;eventType=3;searchcontrol=yes;s=1

                    This is canned URL for searching MS Events for online on-demand web casts.

     

    Project Developer Center http://msdn.microsoft.com/project

    Project Developer Center for Project Server 2010 http://msdn.microsoft.com/en-US/office/ee695847

    Project 2013 for developers http://msdn.microsoft.com/en-US/office/fp161502

     

    Project Blog for the Product Group http://blogs.office.com/b/project/

    Microsoft Project Support Blog http://blogs.technet.com/b/projectsupport/

     

    More blogs:

    1.       Ben Howard (MVP)'s Blog Real life tales of Project Server

    2.       Brian Kennemer (MVP)'s Blog brian kennemer endlessly obsessing about Project Server so that you don't have to

    3.       Project Programmability blog This blog focuses on customizations and programming for Project Web App, Project Server, Project Professional and Project Standard

    4.       Christophe Fiessinger's Blog  No longer Project, but still very useful

    5.       Advisicon Blog Microsoft Project and Project Server

    6.       Jan Kalis's blog - dedicated to Microsoft Project Partners and Microsoft Project News, updates and top-of-mind for Microsoft Project Partners and Microsoft Project.

    7.       All about Enterprise Project Management (EPM)  Khurram Jamshed's blog

    8.       MSProjectExperts (MVPs) blog Project Server Help Blog

    9.       Office Sustained Engineering Blog Microsoft Office Updates - The official blog of the Office Sustained Engineering and Release team.

    10.    PJ Mistry's Blog Microsoft Enterprise Project Management (EPM) and SharePoint - Blog by PJ Mistry (EPMGuy.com)

    11.    Rolly Perreaux (MVP)'s Blog Microroft Project Server, SharePoint, Security and other cool things...

    12.    Treb Gatte's Blog About MS Project - Life after the Installation

    13.    Sam Huffman (MVP)'s Project Blog MS Project and Project Server Blogspot - the WinProj Blog!

    14.    Andrew Lavinsky (MVP)'s Blog Project Epistemology - Enterprise Project Management with a Microsoft Focus

    15.    Alex Burton (MVP)'s Blog A site covering all things Microsoft Enterprise Project Management.

    16.    Jim Aksel (MVP)'s Blog Jim Aksel (MVP)'s Blog

    17.    Jack Dahlgren (MVP)'s Blog Project Management, Software, Training...

    18.    Nenad Trajkovski (MVP)'s Blog

     

  • Project Server 2013 Reporting Database Schema and OLAP Reference

    I learned today that there is a Project Server 2013 reporting database schema tool that can be downloaded.  Here's the link to more information and the download itself:  http://blogs.msdn.com/b/project_programmability/archive/2013/01/28/project-server-2013-reporting-database-rdb-schema-reference.aspx.  There are differences in reporting of on-premises vs. Project Online.  For Project Online, you can use REST queries of the ProjectData OData service. See the links for info.

    The Project Server 2013 reporting schema includes three new tables, 27 new views, and a total of 33 tables and views that include new fields.

    For those invested in reporting, this is your field day! 

  • Dec 2012 CUs

    As part of my role as a dedicated support engineer, I proactively perform upgrade tests on customer databases that I bring in-house to my testing servers.  After I restore the databases on a server with the customer's current CU level, I perform functionality validation testing prior to the upgrade to ensure everything works as it should.  I use this URL for the test steps: http://technet.microsoft.com/en-us/library/gg502592(v=office.14).aspx. 

    I am getting ready to begin a round of testing and pulled the latest CU, which is the Dec 2012 CU.  In downloading the CUs and investigating any "goings-on" with the patches, I came across an article by Brian Smith on the new Microsoft Project Support Blog.  In short the KB article for the SharePoint Server 2010 package claims to include the Project Server package, but it does not (this is being corrected). 

     

    Please go to this link for the detailed information: http://blogs.technet.com/b/projectsupport/archive/2013/01/03/project-server-2010-december-cumulative-update-clarification.aspx

     

    Also, please bookmark http://blogs.technet.com/b/projectsupport/ for future reference!

  • How to have resources self assign tasks assigned to a team assignment pool resource.

    I have a customer who wanted to be able to assign project plan tasks to a team resource, then have the actual users self assign those tasks from My Tasks in PWA.  What she was asking for is called team assignment pooling.

    You can use teams to pool assignments under a single resource where they can be later reassigned to other resources. For example, you could create a team resource named "Development" to which you assign software development tasks. By assigning this resource to the Development team and selecting the Team Assignment Pool check box, you enable other users on the Development team to see any tasks assigned to the Development resource and to accept the assignments in PWA. You could also select Team Assignment Pool for a team lead and have all assignments go through that person for distribution to team members.

    Here's how you go about setting this up...

    Setup the lookup table and custom field.
    1. As an administrator, go to PWA > Server Settings > Enterprise Custom Fields. 
    2. Create a custom lookup table called Team Name and populate it with the team names that you want to use.  In this example, I used “Team 1 DEV”.  You might use DEV Team 1, DEV Team 2, etc.  Try to avoid using managers' names in the team names because they will change every so often.
    3. Edit the Team Name custom field to use the new Team Name lookup table.  You will be asked if you want to make the association permanent; you do.

    Configure users.
    4. As an administrator, go to PWA > Server Settings > Manager Users.
    5. Edit user account.
    6. In Team Details section, check the Team Assignment Pool box and select "Team 1 DEV". 
    7. Repeat for any other users on Team 1 DEV.  Additionally, you can make these edits from Resource Center by multi-selecting and choosing to Edit Resource or clicking Open in the Editing group of the Resources ribbon.

    Create team assignment pool resource.
    8. While in Manage Users, create a Work resource called "Team 1 DEV Resource" and set its Team Details field to Team 1 DEV in the same manner.

    Create project plan
    9. Create project plan in Project Pro.
    10. Build Team from Enterprise and add Team 1 DEV and the resource who are part of Team 1 DEV.
    11. Assign appropriate tasks to Team 1 DEV Resource user.
    12. Save and publish.

    User Actions
    13. Log into PWA as a regular user.
    14. Go to Tasks.
    15. From the Tasks ribbon, click Insert Team Tasks.
    16. Select the checkbox for the task you will assign yourself to.
    17. Click Assign to Me from the Tasks group on the Tasks ribbon.
    18. Click Tasks in Quick Launch.
    19. The new task is self assigned to the user.

    Reference:

    http://office.microsoft.com/en-us/project-server-help/add-a-user-account-in-project-server-2010-HA101827971.aspx,
    Team Details section.

  • Disk Cleanup in Windows 2008 R2

    Today, I learned that if you want to run Disk Clean up in Windows 2008 R2, you have to actually install the feature called Desktop Experience.  Launch Server Manager, click on Add Feature, and check Desktop Experience.  Disk Cleanup is not installed by default.  Who knew?

    After a restart, you can access Disk Cleanup via Start > All Programs > Accessories > System Tools.

  • The New Microsoft Project reaches RTM!

    Very exciting new!  http://blogs.office.com/b/project/archive/2012/10/11/the-new-microsoft-project-reaches-rtm.aspx

     

    I already have two test servers configured with the new Project Server!

  • When your Project Server queue slows down.

    I have a customer who has been fighting with slow/stopped queue processing every time they ran AD Sync, which is on a monthly basis.  Running rebuild indexes on Draft and Published allowed the queue to start processing again, but this article from Brian Smith shows where real problem may be: http://blogs.msdn.com/b/brismith/archive/2012/09/19/when-your-project-server-queue-slows-down.aspx

    This is showing promise in the customer test environment and I wanted to share because it's been a thorn in their side.

  • Moving Customized Project Workspace Templates Between Instances

    Until recently, because I had never actually tried it, I thought that moving customized project workspace templates from Project Server 2007 to Project Server 2010 was simply a matter of saving a customized project workspace site as a template, then importing that template into Project Server 2010.  I decided to actually work through the steps and found I was missing a key piece of information - the template files have different extensions when you save them.  In 2007, you get a .stp file and in 2010, you get a .wsp file.  So for a customer who is moving from Project Server 2007 to Project Server 2010, how do you get your project workspace templates into your new system, especially if you AREN'T migrating/upgrading your data? 

    The trick to this situation is that you have to upgrade your Project Server 2007 databases, preferably in a test environment in order to preserve your 2007 production environment, using the Database-attach full upgrade to Project Server 2010 instructions found here: http://technet.microsoft.com/en-us/library/ee662500.aspx.

    Once you have a Project Server 2010 version of your databases, you can proceed with the steps below...  

    ­From the PWA home page, go to Site Actions > Server Settings.

    In the Galleries section, click Solutions.

    In the Solution Gallery, click the name of the template you want to move to the production instance of Project Server 2010.

    You will be prompted to save the file.

    Save the file to the hard drive or network share, or copy it to your Central Admin server on the target environment.

    On the Central Admin server of the target environment, open the SharePoint 2010 Management Shell and type this command where –LiteralPath is the path to your .wsp file.  In my testing, I used wt20.wsp, but you will want to use a filename that’s more easily identifiable, especially if you use different templates for different enterprise project types.

    Add-SPSolution -LiteralPath c:\temp\wt20.wsp

    Next, use the instructions below which I copied from the "Deploy a solution package" article on TechNet to deploy the solution to your target instance of PWA.  (http://technet.microsoft.com/en-us/library/cc262995.aspx)

    To deploy a solution by using Central Administration

      1. On the Central Administration Home page, click System Settings.

      1. In the Farm Management section, click Manage farm solutions.

      1. On the Solution Management page, click the solution that you want to deploy.

      1. On the Solution Properties page, click Deploy Solution.

      1. On the Deploy Solution page, in the Deploy When section, select one of the following:

        • Now

        • At a specified time. If you select this option, specify a time by using the date and time boxes. We recommend that you select a time when the load on the destination servers is low.

      1. In the Deploy To? section, in the A specific web application list, click either All web applications or select a specific Web application.  (Note: In my test server, the option to deploy to a specific web application did not exist; I could only deploy globally.)

      1. Click OK.

    If you want to use the SharePoint 2010 Management Shell, the syntax is below:

    Install-SPSolution -Identity <SolutionName> -WebApplication <URLname>
     

    Back in PWA’s home page, go to Server Settings > Project Site Provisioning Settings.

    In the Default Site Properties section, select the dropdown for the Default Project Site Template and click the workspace template you would like to use every time a project workspace is created.

    Lastly, and this step is key, go to Server Settings > Enterprise Project Type.

    Click on the EPT that shows Yes in the Default column.

    Scroll to the bottom and change the Project Site template to your customized template.

    Create a new project plan and when you publish, the new template will be used. 

  • Configuring Excel Service Application for Business Intelligence Center in PWA

    My teammate went on vacation and asked me to demonstrate reporting using the Excel Service Application in Project Server 2010 for reporting to his customer.  He thanked me profusely for stepping in to cover him and then hightailed it out of the office.  Huh.  Now, I have to figure out how to set this up and get it working.  I already know I'm not skilled at building/manipulating reports, but I figure I can configure the Excel Services Application that's part of SharePoint Server 2010 and use PWA to access Excel spreadsheets where the report data resides.  The customer will have to provide the skilled labor to develop the reports, but I should be able to get him to that point successfully.

    Naturally, I started off with search terms, specifically Project Server 2010 Excel Services TechnetSearch parameters: http://www.bing.com/search?q=project+server+2010+excel+services+technet&src=IE-SearchBox&FORM=IE8SRC.  This easy search rewarded me with this link: Configure reporting for Project Server 2010: http://technet.microsoft.com/en-us/library/ee662106.aspx

    I decided to use the /PWAdemo instance on my web front end/app server \\brwhitewfe2010 and database server \\brwhitedb2010. My test domain, white.com, has been up and running for a long time now and all my test servers and workstations are part of that domain. 

    Following the Configure reporting for Project Server 2010 link above, I started working my way through the steps.  As always for customers, I recommend setting this up in a test environment so you can become familiar with the steps and how to deal with any issues that arise in a non-production environment so that when you roll out your changes in production, it's a non-event and there are no surprises.  The story below is the description of what I did to get this all working.  It was surprisingly easy.  I recommend you open the link and use it in conjunction with my notes below.

    1. Created groups and accounts
      1. Report Authors group = Report Authors
      2. Report Viewers group = Report Viewers
      3. External Report Viewers group = Report Viewers – External
      4. Application Pool account = white\ excelapppoolaccount
      5. Secure Store Target Application account = white\securestoretargetappaccount
    2. Added a login for the report authors group to SQL Server.
    3. Installed AMO on my single application/wfe server.  SQL Server 2008 Analysis Management Objects (http://go.microsoft.com/fwlink/p/?LinkId=130655)
    4. Had to launch IE using “Run as administrator” in order to see the Manage services on server link and restart the Project Application Service.
    5. Start Excel Services – this was already running.
    6. Configure Excel Services settings
      1. Created a site collection to hold two sites prior to running these instructions.  I'm not sure this was stictly necessary because the Business Intelligence Center has these two folders.
      2. Site Collection: Project Business Intelligence Center at http://brwhitewfe2010/sites/PBIC.
      3. Project Business Intelligence Center – Templates at http://brwhitewfe2010/sites/PBIC/Templates
      4. Project Business Intelligence Center – Sample Reports at http://brwhitewfe2010/sites/PBIC/Sample Reports  
    7. Determined the URL for the data connection library
      1. http://brwhitewfe2010/PWAdemo/ProjectBICenter/Data%20Connections%20for%20PerformancePoint/English%20(United%20States)
    8. Start the Secure Store Service – was already running.
      1. Had to generate a new key.  Used “Tonight, we make soap.” as the passphrase.
      2. At that point, I could click New on the Edit tab.
      3. I clicked Next on the above screen and the instructions from Technet said to click Next on the screen after that, as well, so I did.
      4. I used the white\farmadmin and the white\sqlserver service accounts in the Target Application Administrators box for good measure.
      5. At this point, I added white\securestoretargetappaccount to the white\Report Authors AD group and verified that group had db_datareader rights to the ProjectServer_Reporting DB in SQL Server. 
      6. While I was at it, I added my Farm Admin account and the SQL Server service account because I frequently log in as those users.  I also added white\test1 and white\test2 user accounts to the white\Report Viewers AD group while I was in AD Users and Computers. I never ended up using those accounts because I used my farmadmin account to upload Excel spreadsheets, but customers will want to add whatever AD groups are appropriate to the group
    9. Populate the Report Authors and Report Viewers Active Directory groups
      1. Added white\Report Authors group to white\Report Viewers group in AD.
    10. Configure Business Intelligence Center access
      1. I didn’t need to do anything here because all the accounts I’m using are already user accounts in my PWAdemo instance.
    11. I attempted to access PWA and got an HTTP Error 503. The service is unavailable. error. I'm not certain why, exactly, but several application pools had stopped so PWA and SharePoint Central Admin were not available.  I ended up having to restart several of the pools in IIS Admin and PWA was available again.

     

    So now that that's all be configured, I can start with the Excel report creation...

    1. I ran a cube build in PWA by accessing Server Settings > OLAP Database Management.  Instructions on creating a cube in Project Server 2010 can be found here: http://technet.microsoft.com/en-us/library/ff465341
    2. I used the links below to learn about BI in SharePoint.
      1. Business intelligence in SharePoint Server 2010 - http://technet.microsoft.com/en-US/sharepoint/ee692578.aspx
      2. Module 2 “Creating Reports in the Excel Client” leads to http://technet.microsoft.com/en-us/sharepoint/hh126809 (scroll down to see the video).  4:45min – describes how to create a data connection.
    3. I installed Office 2010 and using Excel, I created a file called KV_Cube.xls and used Data tab > From Other Sources > From Analysis Services to create the ODC file necessary to access the cube.  Here's what I used to create the ODC file in my test environment so the spreadsheet could connect to the OLAP cube.
      1. Use brwhitedb2010
      2. KV database in Analysis Services
      3. Use MSP_Project_SharePoint
      4. Chose to create PivotTable report.
    4. Uploaded KV_Cube.xlsx to the Dashboards area (http://brwhitewfe2010/PWAdemo/ProjectBICenter/Dashboards/Forms/AllItems.aspx) as Web Part Page.
    5. I was able to access the file by launching PWA and going to Business Intelligence in the Quick Launch bar, then I clicked on Dashboards.
    6. The file was there and by clicking the Name, I could view the report in the browser. 
    7. I should note that you can store the ODC file in SharePoint.  In fact, there's a a Data Connections library you can use to store ODC files.  You can resuse these ODC files for different reports and not have to keep creating new ones.
  • TFS Server Integration with Project Server 2010

    Useful links

    Microsoft Team Foundation Server 2010 and Microsoft Project Server Integration Feature Pack = http://msdn.microsoft.com/en-us/library/gg455680.  This link has all the links you need.  I strongly recommend you read through all of the sub-articles prior to beginning installs and configuration.  It will save you some headache.

    Managing Project Server Integration with TFSAdmin ProjectServer - I wish I had come across this link sooner than I did.  It's practically a step by step on how to use the TFSAdmin ProjectServer command line tool to set up synching between TFS and Project Server (http://msdn.microsoft.com/en-us/library/gg412656).  The help on TFSAdmin ProjectServer is really good, so all you need to do is enter that at a command line to get the information you need on how to successfully execute commands.

    I should say right off the top that I am not a developer, have never used Visual Studio 2010 in any meaningful way, and don’t even pretend to have scripting skills.  I have a little skill with SQL queries that I picked up on the job supporting Project Server 2007 and 2010.  I guess what I’m saying is, if I can do this, you can too, and you can certainly learn from my mistakes.

    A brief description of the WHITE domain user accounts
    1. White\farmadmin: This is my farm admin account for SharePoint and is the service account for Project sErver.
    2. White\sqlserver: This is the service account for SQL Server.
    3. White\test1: This is a domain user that I will assign tasks to in TFS and synchronize with the enterprise project plan.

    A brief description of architecture:

    1. Project Server 2010 application tier and web front end tier both reside on \\brwhitewfe2010.   This server also hosts SharePoint 2010.  Project Professional is installed on this same server.
    2. The Team Foundation Server runs on \\tfs2010. My developer workstation is also \\tfs2010.
    3. The database server is \\brwhitedb2010 and is running SQL Server 2008 R2.

    Because I’m only using one server for TFS and developer work, I copied all the install files for Visual Studio 2010, Visual Studio 2010 SP1, and Visual Studio 2010 Feature Pack 2 to the local TFS server (\\tfs2010) for quicker installs.  The Visual Studio 2010 install can be time consuming (understatement) so I wanted to get every advantage I could. 

    I installed Visual Studio 2010, SP1, and Feature Pack 2 successfully on \\tfs2010.

    I installed Team Foundation Server on \\tfs2010 with a web access URL of http://tfs2010:8080/tfs/web.

    I plan to use an existing PWA instance on \\brwhitewfe2010 called PWAoob, which is my out of the box PWA instance for testing.  The URL is http://brwhitewfe2010/PWAoob.

    I configured a TFS collection called TFS Team Project Collection because I lack imagination.  A customer would probably name this something meaningful (I hope) because they will likely have more than one such team project collection.  It’s likely every development project would have its own team project collection.

    Using http://msdn.microsoft.com/en-us/library/ms181477(VS.100).aspx, I created a new team project called “American Project X”.  The new team project site on SharePoint is on my Project Server at http://brwhitewfe2010/sites/tfs/TFS Team Project Collection/American Project X. As part of the new team project creation wizard, I created an empty control folder (as this is a new project) and the creation completed successfully.

    The project dashboard for this team project collection is located on my SharePoint 2010 server which is also my Project Server 2010 at: http://brwhitewfe2010/sites/TFS/TFS%20Team%20Project%20Collection/American%20Project%20X/Dashboards/ProjectDashboard.aspx.

     

    TFSAdmin ProjectServer switches
    Here is a summary of the switches I listed for myself for use in the TFSAdmin ProjectServer command line tool.  You may consider creating a similar list for yourself if you are setting up a test environment for TFS integration with Project Server 2010.
    • /pwa:http://brwhitewfe2010/PWAoob
    • /tfs:http://tfs2010:8080/tfs
    • /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection
    • /enterpriseProject:"Code Development Plan II"
    • /teamProject:”American Project X” 

    Setting up the integration

    Per http://msdn.microsoft.com/en-us/library/gg412647, I went to Drive:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE and ran the command below:

    Usage: TfsAdmin ProjectServer /RegisterPWA /pwa:pwaUrl /tfs:tfsUrl

    Actual command: TfsAdmin Project Server /RegisterPWA /pwa:http://brwhitewfe2010/PWAoob /tfs:http://tfs2010:8080/tfs/web

    I added c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE> to the PATH variable and ran the command below with the result:

    TfsAdmin Project Server /RegisterPWA /pwa:http://brwhitewfe2010/PWAoob /tfs:http://tfs2010:8080/tfs/web

    Registering PWA http://brwhitewfe2010/PWAoob

    .................................................TF244060: Cannot access Team Foundation Server: http://tfs2010:8080/tfs/web. The error is: "Team Foundation services are not available from server http://tfs2010:8080/tfs/web. Technical information (for administrator):  HTTP code 404: Not Found".

    I tried that a second time around with no "web" on /tfs:http://tfs2010:8080/tfs and this is what happened:

    TfsAdmin ProjectServer /RegisterPWA /pwa:http://brwhitewfe2010/PWAoob /tfs:http://tfs2010:8080/tfs

    Registering PWA http://brwhitewfe2010/PWAoob

    .........................................................................TF244087: The Feature Pack for Team Foundation Server 2010 and Project Server Integration must be installed on those machines that host Project Server. The download page for the feature pack can be found here: http://go.microsoft.com/fwlink/?LinkId=201922.

    Okay, so I’ve got the correct URL for the TFS server, but I’m missing the feature pack.

    What I needed is "Feature Pack for Visual Studio Team Foundation Server and Project Server Integration".  This is what I get for not reading the system and setup requirements at http://msdn.microsoft.com/en-us/library/gg412650.aspx.  Get the link to download in the "Installation Requirements” section.  You must have a Visual Studio Ultimate subscription on MSDN in order to grab this download.  Once on MSDN’s website, I had to search by using "Team Foundation Server 2010" in order to find the download when I went looking.

    I downloaded and installed "Feature Pack for Visual Studio Team Foundation Server and Project Server Integration" on brwhitewfe2010.

    I reran the RegisterPWA command and got an error:

    TfsAdmin ProjectServer /RegisterPWA /pwa:http://brwhitewfe2010/PWAoob /tfs:http://tfs2010:8080/tfs

    Registering PWA http://brwhitewfe2010/PWAoob

    ..............................................................................There is an error in XML document (1, 1905).

    I started to research the error and then, because I'm an optimist, I reran the command without changing anything at all and it worked.  Ghost in the machine?  You decide.  Maybe I could star on “Ghost Adventures”.
    TfsAdmin ProjectServer /RegisterPWA /pwa:http://brwhitewfe2010/PWAoob /tfs:http://tfs2010:8080/tfs

    Registering PWA http://brwhitewfe2010/PWAoob

    ...........................................................................................................................................
    You have successfully registered PWA http://brwhitewfe2010/PWAoob.

    Wait a few minutes before running another provisioning command while background processes complete.

    I ran the command below per http://msdn.microsoft.com/en-us/library/gg412651#GetMappedPWAs to get the mapped collection.

    TfsAdmin ProjectServer /GetMappedCollections /tfs:http://tfs2010:8080/tfs

    The result was a "No team project collections are mapped" as expected because I have not mapped any collections yet.

    Next, I tried to upload default mappings using this command per http://msdn.microsoft.com/en-us/library/gg412658.aspx#UploadDefaults:

    TfsAdmin ProjectServer /UploadFieldMappings /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /usedefaultfieldmappings

    Uploading field mappings to team project collection http://tfs2010:8080/tfs/tfs%20team%20project%20collection.

    ......................................................TF294021: The following team project collection is not mapped to a PWA instance: TFS Team Project Collection. Check the mapping for the team project collection.

    But…
    It looks like I need to set up my mapping first between the team project collection on my TFS server to the PWAoob instance running on my web front end called \\brwhitewfe2010.  I mistakenly thought this is what the RegisterPWA command did.

    To that end, I ran this command from http://msdn.microsoft.com/en-us/library/gg412651.aspx#MapPlanToProject:

    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /enterpriseProject:"Code Development Plan II" /teamProject:”American Project X”  /workItemTypes:Task /nofixedwork

    The command above includes this note in the online document:

    Replace tpcUrl with the URL of the team project collection, EnterpriseProjectName with the name of the enterprise project plan, and TeamProjectName with the name of the team project. Replace ListOfWorkItemTypes with the names of the types of work items that you want to participate in data synchronization. Specify /noFixedWork if you want to prevent fixed-task-type assignments. You can also specify the /projectFieldForWorkItemType argument and the name of a field in Project to store the type of work item.

    So, I had to find out what to include for the "/workItemTypes:ListOfWorkItemTypes /nofixedwork /projectFieldForWorkItemType:ProjectFieldName" portion of the command.  Based on the note above, I can drop the /projectFieldForWorkItemType and I will just to see what happens.  For this, I went to "Specifying the Work Item Types That Can Be Synchronized" at http://msdn.microsoft.com/en-us/library/gg412661...

    To list types of work items that are mapped for a team project:

    TfsAdmin ProjectServer /GetMappedWorkItemTypes /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /teamProject:”American Project X” 

    ................................................................................................................................................................
    There are no types of work items configured for synchronization for the following team project collection and team project: http://tfs2010:8080/tfs/tfs%20team%20project%20collection, American Project X.

    Okay.  Next, I went back and ran the command to map the enterprise project plan in Project Server to the team project in TFS:
    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /enterpriseProject:"Code Development Plan II" /teamProject:”American Project X”  /workItemTypes:Task /nofixedwork              
    which resulted in a message saying "TF294021: The following team project collection is not mapped to a PWA instance: TFS Team Project Collection. Check the mapping for the team project collection."

    So, I ran the TfsAdmin Project Server /MapPWAtoCollection command:
    TfsAdmin ProjectServer /MapPWAtoCollection /pwa:http://brwhitewfe2010/pwaoob /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection

    Mapping team project collection http://tfs2010:8080/tfs/tfs%20team%20project%20collection to PWA http://brwhitewfe2010/pwaoob.

    ......................................................................................................................................................
    You have successfully mapped team project collection http://tfs2010:8080/tfs/tfs%20team%20project%20collection to PWA http://brwhitewfe2010/pwaoob.

    I reran the MapPlanToTeamProject:
    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /enterpriseProject:"Code Development Plan II" /teamProject:”American Project X”  /workItemTypes:Task /nofixedwork

    Mapping enterprise project Code Development Plan II to team project American Project X.

    .........TF294016: You do not currently have any fields mapped. You must first upload the field mapping file before you can map projects.

    So now, I know I need to first upload the field mapping file before I can map projects.  I feel like I’m getting somewhere, even if I’m sort of fumbling with command lines.

    From http://msdn.microsoft.com/en-us/library/gg412657, I find the /UploadField command:
    TfsAdmin ProjectServer /UploadFieldMappings /useDefaultFieldMappings - I had to alter this command line based on the help returned by entering just that command in bold above.

    I ended up with a Usage statement that looked like this:
    TfsAdmin ProjectServer /UploadFieldMappings /collection:<tpcUrl> [/filePath:<filePath>] [/encoding:<encoding>] [/validateOnly] [/useDefaultFieldMappings] [/force]

    Or, with my parameters
    TfsAdmin ProjectServer /UploadFieldMappings /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /filePath:"C:\Program Files\Microsoft Team Foundation Server 2010\Mapping.xml" /useDefaultFieldMappings
    and I almost ran this command before considering the Mapping.xml files does not exist and that may be required.  And again, because I’m an optimist, I ran the command anyway and received an error that I can specify a .xml file OR I can use the /useDefaultFieldMappings, but not both.  So it looks like the TFS programmers were watching out for people just like me.

    Because of that restriction, the above command becomes this, which I ran:
    TfsAdmin ProjectServer /UploadFieldMappings /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /useDefaultFieldMappings

    Now, I should be able to rerun my /MapPlanToTeamProject command, but without /workItemTypes:Task /nofixedwork because they are not required:
    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /enterpriseProject:"Code Development Plan II" /teamProject:”American Project X” 

    Mapping enterprise project Code Development Plan II to team project American Project X.

    ...........................
    You have successfully mapped enterprise project Code Development Plan II to team project American Project X.

    Excellent link alert: Managing Project Server Integration with TFSAdmin ProjectServer - I wish I had come across this link sooner than I did.  It's practically a step by step on how to use the TFSAdmin ProjectServer command line tool to set up synching between TFS and Project Server.  Here’s the URL http://msdn.microsoft.com/en-us/library/gg412656

    Double checking my progress
    Using the Managing Project Server Integration with TFSAdmin ProjectServer link, I went back to double check everything and found a hole.  See the commands I ran below.  Just a quick note, I used my Project Server FarmAdmin domain account to do all this work because I'm lazy and didn't want to bother with setting up proper accounts.  I’m explaining this because I wanted to include the entire command line so you could see where the command lines begin and end easily:
    C:\Users\farmadmin>TfsAdmin ProjectServer /getregisteredpwa /tfs:http://tfs2010:8080/tfs

    The following PWA instances are registered:

    http://brwhitewfe2010/PWAoob

    C:\Users\farmadmin>TfsAdmin ProjectServer /getmappedcollections /tfs:http://tfs2010:8080/tfs

    The following collections are mapped:
    Collection http://tfs2010:8080/tfs/tfs team project collection is mapped to PWA http://brwhitewfe2010/PWAoob.

    C:\Users\farmadmin>TfsAdmin ProjectServer /getmappedprojects /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection
    ...
    The following projects are mapped:

    Enterprise project Code Development Plan II is mapped to team project American Project X.

    C:\Users\farmadmin>TfsAdmin ProjectServer /getmappedworkitemtypes /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /teamProject:"American Project X"

    There are no types of work items configured for synchronization for the following team project collection and team project: http://tfs2010:8080/tfs/tfs%20team%20project%20collection, American Project X.

    So, there's still a problem when I go to get my mapped work item types, I get a message saying there are no types of work items configured for synchronization for the team project collection  (http://tfs2010:8080/tfs/tfs%20team%20project%20collection) and team project (American Project X).

    Like always, I ran to the help file by running an incomplete command, which generated this:
    TfsAdmin ProjectServer
    Team Foundation Server Administration Tool
    Copyright (c) Microsoft Corporation. All rights reserved.

    Commands to administer and provision the synchronization of Project Server and Team Foundation Server

    The following is the list of commands that are available.  Type 'tfsadmin ProjectServer [command] /?' or 'tfsadmin help ProjectServer [command]' and
    press Enter to view help for a specific command.

    /DownloadFieldMappings        Retrieves the field mappings defined for a team project collection.
    /GetMappedCollections         Retrieves the set of team project collections for a Team Foundation Server that have been mapped to a PWA.
    /GetMappedProjects            Retrieves the set of enterprise projects that are mapped to team projects defined for a team project collection.
    /GetMappedWorkItemTypes       Retrieves the types of work items that are configured for synchronization for a team project.
    /GetRegisteredPWA             Retrieves the PWA instances that are registered to Team Foundation Server.
    /GetSyncMessages              Retrieves recent error messages that occurred during synchronization of Team Foundation Server and Project Server. For each enterprise project that is synchronized with a team project, only the first error per synchronization attempt is output.
    /MapPlanToTeamProject         Maps an enterprise project defined on Project Server to a team project defined on Team Foundation Server.
    /MapPWAToCollection           Maps a team project collection to a PWA instance. The PWA instance must be registered before mapping the collection to it.
    /MapWorkItemTypes             Configures the types of work items to participate in synchronization of data in a team project and an enterprise project plan.
    /RegisterPWA                  Registers an instance of PWA to an instance of Team Foundation Server and configures each instance to support data synchronization.
    /UnmapPlanFromTeamProject     Unmaps an enterprise project defined on Project Server from a team project defined on Team Foundation Server.
    /UnmapPWAFromCollection       Unmaps a team project collection from a PWA instance.
    /UnmapWorkItemTypes           Removes types of work items from participating in synchronization of data for a team project and an enterprise project plan.
    /UnregisterPWA                Unregisters a PWA instance from a Team Foundation Server.
    /UploadFieldMappings          Uploads the field mapping file for integration of Team Foundation Server and Project Server.

    Of interest to me was the /MapWorkItemTypes command, so I ran TfsAdmin ProjectServer /mapworkitemtypes to generate the help for the specific command.

    TfsAdmin ProjectServer /mapworkitemtypes
    Team Foundation Server Administration Tool
    Copyright (c) Microsoft Corporation. All rights reserved.

    Configures the types of work items to participate in synchronization of data in a team project and an enterprise project plan.

    Usage: TfsAdmin ProjectServer /MapWorkItemTypes /collection:<tpcUrl> /teamProject:<tfsProject> /workItemTypes:<workItemTypes> [/skipUIChanges]

     /collection       Specifies the URL for a team project collection on your Team Foundation Server. Use a fully specified URL such as  http://servername:8080/tfs/Collection0.
     /teamProject      Specifies the name of a team project defined on Team Foundation Server.
     /workItemTypes    Specifies the work item types in Team Foundation that you want to synchronize with tasks on Project Server. These should be specified in a comma-delimited form, such as /workItemTypes:"Task,User Story".
     /skipUIChanges    Specifies to make no changes to the form for the work item type.

    Now, we are getting somewhere with that Usage statement...
    TfsAdmin ProjectServer /MapWorkItemTypes /collection:<tpcUrl> /teamProject:<tfsProject> /workItemTypes:<workItemTypes> [/skipUIChanges]

    I'm going to try this and I might add that because I’m not a developer, I have no idea how User Story figures into Agile which is the type of project management I selected when I created the team project collection, but I recognize Task as something I would probably want to synch with my Project Server project.

    TfsAdmin ProjectServer /MapWorkItemTypes /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /teamProject:”American Project X”  /workItemTypes:"Task,User Story"

    Configuring synchronization for the following work item types for team project American Project X: Task, User Story.

    ...........
    You have successfully configured the following work item types for team project American Project X: Task, User Story.

    If I run the command to get the mapped work item types again, I should get a result now.
    TfsAdmin ProjectServer /getmappedworkitemtypes /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /teamProject:”American Project X”

    The following types of work items are configured for synchronization:

    Task
    User Story

    So this is all good now!

    Associate an Enterprise Project Plan with my Team Project
    NOW, I can associate an Enterprise Project Plan in Project Server 2010 with my Team Project in TFS.  Oh, this is getting good.  And yes, I am geeking out a little. 

    I went to http://msdn.microsoft.com/en-us/library/gg412651#MapPlanToProject with an eye toward using the “To map an enterprise project plan to a team project” section, which includes the command:
    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:tpcUrl /enterpriseProject:EnterpriseProjectName /teamProject:TeamProjectName /workItemTypes:ListOfWorkItemTypes /nofixedwork /projectFieldForWorkItemType:ProjectFieldName

    With my parameters, this turns into:
    TfsAdmin ProjectServer /MapPlanToTeamProject /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection /enterpriseProject:"Code Development Plan II" /teamProject:”American Project X” /workItemTypes:"Task,User Story"

    Mapping enterprise project Code Development Plan II to team project American Project X.

    ....
    You have successfully mapped enterprise project Code Development Plan II to team project American Project X.

    I know my FarmAdmin user is assigned to tasks in the published enterprise project plan Code Development Plan II, so I’m wondering when and where I will see those tasks show up in TFS.

    This thinking leads me to http://msdn.microsoft.com/en-us/library/hh190735, which covers Verifying the Synchronization Process for Team Foundation Server and Project Server Integration.

    Because I haven’t done a good job of reading the documentation before I started, my interest is peaked by http://msdn.microsoft.com/en-us/library/gg412653#configpermissions.  I reviewed the permissions required and found that because I’m running has FarmAdmin on my TFS server I’m in good shape with that account, but I don’t have any developer accounts on the TFS server – so if a developer called white\Test1 has an assignment in my enterprise project plan in Project Server, he needs to be able to see it from TFS.  I am assuming here, of course, that synchronization runs both ways between TFS and Project Server which may not be the case.  My ignorance is showing here.

    The article says “You must grant Contributor permissions to team members for the team project” for access to TFS.  I had to dig around in the TFS Admin Console to find where this was, so I’ll spare you the search and blind alley description.  I launch Team Foundation Server Administration Console on my TFS server and select my Team Project Collection called “TFS Team Project Collection”.

    On the General Tab at the bottom of the screen, I click Group Membership. 
    Then I click on [TFS Team Project Collection]\Project Collection Valid Users and click Properties. 

    On the Properties page, I see an [American Project X]\Contributors group, so I click Properties for that group.

    I select the Windows User or Group radio button and then Add.

    Again, because I’m lazy and this is a test server, I can choose Domain Users as the AD group to add.  The group only has about ten users in it. 

    I added Domain Users to the Builders group (again, probably not what a customer would do) and made sure that FarmAdmin was in the Project Administrators group.  (Setting this up, it’s easy to see how a developer might be given access to one project but not another within the same team project collection.)

    To test my new permissions configuration, I logged into the TFS web portal at http://tfs2010:8080/tfs as user white\test1.  I received an error stating “Access Denied: WHITE\test1 needs the following permission(s) to perform this action: View collection-level information”.  So, I went back to my TFS Admin Console and went to Group Membership again on [TFS Team Project Collection]\Project Collection Valid Users.  Once there, I clicked Properties.  I added Domain Users to the Readers group and clicked OK.

    Then, I went back to IE and attempted to log into http://tfs2010:8080/tfs as white\test1.  I got this error for my trouble: TF201072: A user or group could not be found. Verify that the users and groups used in your work item type definition have been added to Team Foundation Server. At least this is different than not being allowed to log on at all, right?  Online research indicated that this may be because the Visual Studio Team Foundation Background Job Agent wasn’t running on the TFS server.  Mine was, but I restarted it and I verified I was logging in with the right account name for white\test1 based on the user domain account in Active Directory.  I tried to log in again, but no luck; same error.

    Back to Group Membership I go - [TFS Team Project Collection]\Project Collection Valid Users, Properties.  I can still see my Domain Users in the Readers group.  In the [American Project X]\Contributors group, I added white\test1, specifically.  And THAT allowed me to log into http://tfs2010:8080/tfs.  Whew.  This leaves me to wonder if I haven’t configured something correctly in TFS in order to make groups in AD receive the permissions I want them to in TFS.  I’m so happy I can log in now that I leave that for another day.

    Where are my task assignments from the enterprise project plan in Project Server?

    Now, where are my task assignments for white\test1 from the Code Development Plan II project plan in Project Server and where do I see them in TFS?  Should I even be able to see them?  I just don’t know at this point.

    I go to verify the synchronization is working by using http://msdn.microsoft.com/en-us/library/hh190735. The first suggestion is to TFSAdmin ProjectServer /GetSyncMessages.
    C:\Users\farmadmin>TFSAdmin ProjectServer /GetSyncMessages
    Team Foundation Server Administration Tool
    Copyright (c) Microsoft Corporation. All rights reserved.

    Retrieves recent error messages that occurred during synchronization of Team Foundation Server and Project Server. For each enterprise project that is synchronized with a team project, only the first error per synchronization attempt is output.
    Usage: TfsAdmin ProjectServer /GetSyncMessages /collection:<tpcUrl>
     /collection    Specifies the URL for a team project collection on your Team Foundation Server. Use a fully specified URL such as http://servername:8080/tfs/Collection0.

    C:\Users\farmadmin>TFSAdmin ProjectServer /GetSyncMessages /collection:http://tfs2010:8080/tfs/tfs%20team%20project%20collection
    Date    Team Project Collection Name\Team Project Name  Enterprise Project Name Message

    Based on the description, “For each enterprise project that is synchronized with a team project, only the first error per synchronization attempt is output.”, I think this is good.
    In the TFS web interface and logged on as white\test1, I see this under New:

    I select Task and fill out the form as you see in this screenshot.  I was particularly happy to see the Project Server tab and how when I changed the Submit to Project Server to Yes, the Enterprise Project changed to Code Development Plan II.  This is very encouraging and again, I had a little geek moment.  I may have even done a little happy dance.


     
    After clicking Save & Close, I clicked Refresh for My Work Items on my TFS home page and I can now see the new task listed there as 1 Task.  After I clicked on the 1, reviewed the task, and came back to the home page, I saw Recently Accessed Work Items became available, as below.


     
    I logged onto my Project Server and launched Project Professional 2010 (customers shouldn’t have Project Pro installed on their WFE/App servers), connected to my PWAoob instance and then opened Code Development Plan II.  The first thing that happened was a pop up stating that “Team member have submitted 1 new update to the plan.  Would you like to review these updates and apply them to the plan?”  I clicked yes.  PWAoob opened in IE and I clicked on Approval Center.  I saw the task I had created in TFS! 


     
    I accepted the task and, darn it, got an error saying “A timesheet job is failed and blocking correlation in the queue.  The approval item no longer exists or has already been approved. The host server is unreachable.” 
    I went back to Project Pro and attempted to open the plan again and saw a pop up stating that 1 new update had been accepted and 1 more update needs to be reviewed.  Hmm.  I didn’t submit a second update in TFS.  I check the queue and see my Status Update job is “Waiting to be processed”, but I don’t see any failed jobs.  Back in Project Pro, I click Yes to review the update.  I accept the update and now I have two jobs in the queue waiting to be processed when no other incomplete jobs are present. 

    I cancel both and check the error detail of the queue job.  All the error detail says is “Root element is missing”.  I attempted to open the project again in Project Pro and got a message stating “2 updates have been accepted for this project.  Would you like to close this project and apply these updates?”  I clicked Yes aaaaaand, nothing appears to happen.  I try again and click No. I noticed the status bar saying “Verifying if enterprise project is mapped to a team project”, which, while useless at this point, means my enterprise project plan is linked to TFS.  I use File > Approvals to accept updates.

    I see Internal (Timer Message) and Project Save from Project Professional in the queue.  The project just doesn’t seem to be updating, so now it’s time to check the ULS logs.  Using ULSViewer (http://archive.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308), I don’t see anything in the log for this project’s name or UID.  I got the UID by running this command in SQL:
    select PROJ_NAME, PROJ_UID from MSP_PROJECTS where proj_name like '%code development%'

    At the suggestion of a coworker, I updated the Project Pro client with SP1 and restarted the Project Server (so I don’t know if the SP1 or the restart fixed my problem) and I can now publish again.

    Adding tasks while logged into TFS web interface as white\test1 sends updates to the PM in Project Server and, as the PM, I can accept those updates in PWA and publish the plan now.  Insert another happy dance here!

    Further investigation and play time with TFS.

    I noticed that in TFS, I can’t seem to find a start date and finish date for a task created in TFS.  When I edit a task that has been synchronized, the Details tab has a History section on the right hand half.  When I scroll down, I can see this when I expand the selection:


     
    It appears that I have a Project Server Start Date and Finish, but I can’t see where that date is reflected anyplace else in TFS.

    Logged into TFS as white\test1, I created a new task called “Create workforce management code section 1” and assigned it to white\test2. I noticed that on the Project Server tab, I have to manually change Submit to Project Server from No to Yes.  This seems to be how I can control which tasks get synched to Project Server.  Because I had to specifically name white\test1 as a user on this team collection, I expected to have to do the same for white\test2.  I chose Sign in as a different user and logged into http://tfs2010:8080/tfs as white\test2 expecting an error, but was greeted with a home page and the task created as test1.

    The “Create workforce management code section 1” task was synched to Project Server and I accepted the update, then published it using PWA.  I opened the plan in Project Pro and clicked Yes to apply the update to the plan. 

    This opens the PWA home page and I clicked on Approval Center, checked the task, and clicked Accept.  I had to go back to Project Pro and open the plan again, but it opened successfully and I can see the new task assigned to test2.

    In What's New in Tracking Work Items, http://msdn.microsoft.com/en-us/library/dd286632, I found this description:  Maintain predecessor and successor relationships of tasks that you create in Office Project. If you create tasks in Office Project and publish them to Team Foundation, they are automatically defined with predecessor and successor links that you defined in Office Project.

    And would you look at this?  There’s a field in Project Pro now called Publish to Team Project!  So, let’s change that value to Yes (I have to publish, of course) and see if I can log in as Test1 and FarmAdmin to see the assignments.


     
    When I publish, I get this popup message.  It’s asking me to specify the Work Item Type in the Choose Values dropdown. 


     
    When I look back at the screenshot showing the Publish to Team Project column, I see the Work Item Type column right next to it.  I should note that I did not add those columns to this view which defaulted when I opened the project plan in Project Pro to the Team Foundation Gantt (Project Server) view.  I specify Task as the value for this column and publish again.

    This time, I receive another Validation Resolution popup with this comment: To publish a task to a team project, you must specify one owner who is a valid team project contributor. Select one of the following enterprise resources as the owner.  Note: Project will remove all local resources  from the task whose Completed Work is 0.  Does this mean I can only assign one resource to task I want to synch with a project in TFS?  I select FarmAdmin and click Save and Publish.

    On TFS, I log into the web interface as FarmAdmin and I can see the task I created in Project Pro synched to TFS and assigned to FarmAdmin.  Based on this, it appears TFS doesn’t handle more than one resource assigned to a task as well as Project Pro does.

    Look what I see when I double click the task in Project Pro.  There’s an extra tab now called Custom Fields with TFS related items:


     
    Curious to see if this tab was available in a project NOT synched with TFS, I opened another plan and found that while this tab was available, the Team Foundation Gantt (Project Server) view was not.

    Because I don’t know what a User Story is in Agile, I changed the Work Item Type for a task called “Task in Project Svr with Work Item Type User Story” in Project Pro to User Story and assigned it to Test2.  I published.  A few minutes later, Test2 saw this in the web interface for TFS:


     
    When I open the User Story work item, not much appears to be different.  I do notice the Details tab includes this text in the field - “As a <type of user> I want <some goal> so that <some reason>” and instead of Priority under Planning and Original Estimate, Remaining, and Complete under Effort (Hours) for a Task, we have Story Points and Risk added to Planning.

  • Microsoft Project Server and Sharepoint Server 2007 and 2010 June 2012 CU Announcement

    Links to the Project Admin Blog and Brian Smith's blog concerning the release of the June 2012 CU.

    If you haven't already, please develop test procedures to use before and after testing the upgrade in a TEST environment.  Use the same procedures in PROD when you install there. This will ensure that you notice anything broken before or after the installation.

    I have attached documentation I wrote for Project Server 2007 functionality validation testing that includes data validation testing instructions.  I appreciate any feedback you may have on these!  You will need to download a free copy of 7Zip to unzip the file.

    Below are links to online functionality testing for Project Server 2010:

    Perform initial testing using the “Initial use setup”.  

    After you complete the initial use checks, proceed to the following series of tests (does not include data validation). 

    1. Test security settings in Project Server 2010
    2. Test enterprise data settings in Project Server 2010
    3. Test database administration settings in Project Server 2010
    4. Test look and feel settings in Project Server 2010
    5. Test time and task management settings in Project Server 2010
    6. Test queue settings in Project Server 2010
    7. Test operational policy settings in Project Server 2010
    8. Test workflow and project detail pages in Project Server 2010
  • "How Toy Story 2 Nearly Vanished" or "TEST your backups, people!"

    Here's a link to a video short created by Pixar on how they lost almost all of Toy Story 2 and didn't have a good backup.

    I always recommend customers test their changes and plans for changes on a TEST environment before implementing anything in production (this is especially true for ANY change in permissions).  Most of us rest comfortably at night knowing that somewhere, there is a team of reliable people responsible for database backups and that they can be called upon to restore your data should you need it restored. 

    TRUST BUT VERIFY

    But, have you ever tried to actually have that team restore last night's database backup as a test?  Can they actually restore the data to a location of your choosing where you can walk through your documented recovery steps?  Oh, wait!  You do have documented recovery steps, right?  You have tested and understood those, too, right?  When I was responsible for production data on a Project Server, I tested data restores from the backup media itself once every three weeks.  I restored the data to a test server and provisioned PWA against that server with those databases.  Because of this, I could reassure managment (and keep my job) that if the worst did happen, I could restore the data with a high degree of confidence.  I know I slept better because of that.

    Please work with your backup team closely so you know how often the backups take place, where they go, and that they can be recovered.  Once you know the data can be recovered, please test restoring it to a test environment to make sure you know how to do it and please document those steps.  The documentation is critical because you may be on vacation the next time there's a hard drive failure that wipes out your data and the poor guy or gal who has to do the recovery may have no idea how to proceed.

     

  • What has been fixed in a CU?

    A user contacted me via email the other day with a simple question - "Where can I get all the KB articles for Project Server 2010 and Project 2010 client fixes from June 2011 to February 2012?"  The user said that, ideally, a spreadsheet including all fixes in those CUs would be the most useful.

    CUs for Project Server are cumulative, so the latest CU includes all the fixes from all the CUs prior.  For example, take the April 2012 CU announcement on the Project Admin Blog.  If you go to the link for the April 2012 Project Server 2010 CU, there is a section titled "Issues that this hotfix package fixes".  Each CU will have this section and that section will detail what has been corrected with each CU.  There is no spreadsheet I am aware of that lists all CUs fixes since a certain service pack, so you have to read each CU's KB article to determine what's fixed.  Then, you can plan out your testing to hit those issues if you have been affected by them or want to increase your confidence level that the CU actually fixes what it says it fixes.

    Because the CU releases are all announced on the Project Admin Blog, you can search that blog for "CU Announcement".

    Doing so resulted in links to

    August 2011      http://blogs.technet.com/b/projectadministration/archive/2011/09/01/microsoft-project-server-and-sharepoint-2007-and-2010-august-cu-2011-announcement.aspx

    October 2011     http://blogs.technet.com/b/projectadministration/archive/2011/11/02/microsoft-project-server-and-sharepoint-2007-and-2010-october-cu-2011-announcement.aspx

    December 2011 http://blogs.technet.com/b/projectadministration/archive/2011/12/14/microsoft-project-server-and-sharepoint-server-2007-and-2010-december-2011-cu-announcement.aspx

    February 2012   http://blogs.technet.com/b/projectadministration/archive/2012/02/29/microsoft-project-server-and-sharepoint-server-2007-and-2010-february-2012-cu-announcement.aspx

    April 2012          http://blogs.technet.com/b/projectadministration/archive/2012/04/27/microsoft-project-server-and-sharepoint-server-2007-and-2010-april-2012-cu-announcement.aspx

     

    If you are interested in post upgrade validation testing for Project Server 2010, use the links below to test functionality in your test environment (you do have a test environment, right?) after an upgrade on a Project Server with a copy of production data on it.

    You can perform initial testing using the “Initial use setup”.  Consider using an automated testing tool if human resources are hard to come by to reduce the validation testing window. After you complete the above checks, proceed to the following series of tests.  Document the results. 

    Full Functionality Validation Testing Links are here:

    1. Test security settings in Project Server 2010
    2. Test enterprise data settings in Project Server 2010
    3. Test database administration settings in Project Server 2010
    4. Test look and feel settings in Project Server 2010
    5. Test time and task management settings in Project Server 2010
    6. Test queue settings in Project Server 2010
    7. Test operational policy settings in Project Server 2010
    8. Test workflow and project detail pages in Project Server 2010
  • April 2012 Cumulative Updates Released

    Wow, am I behind the times! 

    Here's the link.

  • Options for maintaining archival/historical Project Server 2007 data

    I have a customer who will be installing and configuring Project Server 2010 this summer.  The upgrade plan is to configure Project Server 2010 as a fresh, new install with no data migration from Project Server 2007.  This being the case, the question came up about how to preserve the Project Server 2007 data.  I suggested the following options, assuming the production Project Server 2007 environment will be decommissioned and the servers recycled for some other use.

    1. Back up production DBs and store on a shared drive.
      1. DBs can be restored to a test server to pull specific project plans, then the test server can be recycled.
      2. This is a method commonly used for restoring plans that have been completely removed from production databases including ProjectServer_Archive_DB, but still exist in old backups of the database.
    2. Move plans you want to keep to the Project Server 2010 production system.
      1. Open plans from the 2007 server that will be needed on the 2010 server, save as .mpp files, import plans into the 2010 server, save and publish, allow the archive process to run at night, then delete the copy of the plan from the draft and published databases leaving a copy in the archive database. This copy can be made available at any time by using Server Settings > Administrative Restore.
      2. This option runs the risk of having someone request a plan in the future that was not saved to the new server. You would have to fall back on the first option to recover that plan.
      3. This option is the most manual labor intensive and the least attractive, in my opinion.
    3. Recommended Option: Move production DBs to a standalone test server.
      1. This is a single server running the SQL Server, Project Server application server, and Project Server web front end.
      2. Production servers can be decommissioned, ensuring no one accesses the 2007 PWA URL, while maintaining an historical/archival snapshot of the production 2007 environment and projects in a test environment.
      3. The standalone server can be virtual and generally have lower specifications than production servers and even other test servers.
      4. Projects are always available at any time and can be referenced or pulled from the standalone server whenever you need them.
      5. I would turn off the any AD syncs that run, the cube build after it runs once.
      6. The initial labor involved isn’t terribly large and once it’s set up and configured, you always have access to it, the URL will only be circulated amongst those administrators who need it and they can retrieve plans for PMs who request them.
  • Project Server and Client February CUs have been released!

    The February 2012 CUs have been released and you can see the announcement here on the Project Administration Blog:

    Here are the KB article numbers for Project and Project Server versions:

    Project Client 2010 = KB 2597942
    Project Server 2010 = KB 2597932

    Project Client 2007 = KB 2597955
    Project Server 2007 = KB 2597960

     

    Here are the links:

    Description of the Windows SharePoint Services 3.0 Cumulative Update Server Hotfix Package (WSS server-package): February 28, 2012
    http://support.microsoft.com/kb/2597959

    Description of the SharePoint Server 2007 Cumulative Update Server Hotfix Package (MOSS server-package): February 28, 2012
    http://support.microsoft.com/kb/2597958

    Description of the Project Server 2007 hotfix package (Pjsrvapp-x-none.msp, Pjsrvwfe-x-none.msp): February 28, 2012
    http://support.microsoft.com/kb/2597960

    Description of the Project 2007 hotfix package (Project-x-none.msp): February 28, 2012
    http://support.microsoft.com/kb/2597955

     

    Description of the SharePoint Server 2010 and Project Server 2010 Cumulative Update Server Hotfix Package (MOSS server-package, Project server-package): March 2011
    http://support.microsoft.com/kb/2597152

    Description of the Project Server 2010 hotfix package (Pjsrvwfe-x-none.msp): February 28, 2012 [Only required if you do not install the Server Rollup.]
    http://support.microsoft.com/kb/2597138

    Description of the Project 2010 hotfix package (project-x-none.msp): February 28, 2012
    http://support.microsoft.com/kb/2597942

  • How to Use a Default Counter Template to Capture perfmon Data

    How to Use a Default Counter Template to Capture perfmon Data.

     

    Go to Start > Run and type perfmon, then hit Enter.

    Expand Performance Logs and Alerts.

    Click Counter Logs.

    Right click in the space on the right and select New log settings from…

    Path out the location of the .htm files from the attached .rar file (just about any file compression tool should be able to unzip this file).

    Select Server Capture Template.htm and click Open.

    Specify a capture log name and click OK.

    Change the Interval to X minutes and set the Run As user to a service or user account with password.

    Click OK.

    Right click the new counter log and choose Start.

  • Register for the Feb 2011 CU Webcast for Project Server!

     

    TechNet
    Webcast: Information about Microsoft Project and Project Server February 2012
    Software Update (Level 200)

    Tuesday,
    March 13, 2012 - 8:00 AM - 9:15 AM Pacific Time

    Adrian
    Jenkins, Escalation Engineer, Microsoft Corporation

    Brian
    Smith, Senior Support Escalation Engineer, Microsoft Corporation

    https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032493966&Culture=en-US

  • How to filter a resource assignment view in PWA based on a Project level custom field in Project Pro

    How to Filter Resource Assignments in PWA by a Project Level Enterprise Custom Field Value in Project Pro 2007

    Problem Statement

    Resources are assigned to many plans in Project Server going back several years.  This has a tendency to make Resource Assignment views overwhelming due to the number of tasks in old plans that have been Cancelled, On Hold, or Completed.

    Customer wants to be able to filter Resource Assignment views so that only tasks where the projects’ Project Status is Active appear in the Resource Assignment views under “View Availability” in PWA’s Resource Center.  In shorthand, if Project Status is Active then Task is Active and should be presented in Resource Assignment views filtered on whether or not the Project Status is Active.

    Solution

    Project Level ECF

    Create project level enterprise custom field based on Lookup Table called Project Status

    Lookup table contains text values of Active, Cancelled, On Hold, or Complete.  Your values can be different.

    Open each project plan and set the Project Status value under Project > Information.  Note: You only really need to do this for plans that are Active, but for consistency, you should set the value for all projects.

    Task Level ECF

    Create a task level enterprise custom field called Project Status at Task Level or some other suitable name.  The Entity is Task and the Type is Text. Use a formula as described below where you only enter the name of the Project level custom field.  In this case [Project Status].

     

    PWA Views Filter

    Create resource views in Server Settings > Manage Views > Resource Assignments to include the Project Status at Task Level custom field.  Filter the view so that Project Status at Task Level Contains Active as in the screenshot below.

    Forcing Calculation of Task Level ECF

    Recalculate the active plans to fill the task level custom field by opening each plan in Project Pro, pressing F9 to force a manual calculation and then saving and publishing the plans.

    You can add the Project Status at Task Level column to each plan view in Project Pro to confirm the value appears as expected.

    Save and publish each plan.

    Verify the Resource Assignment Views

    Use Resource Center to select several resources, then click View Availability.  Change the view to one which includes the filter on Project Status at Task Level custom field.  You will only see tasks from Active project plans.

     

  • Case studies of using Project, Portfolio, Team Foundation Server, and Project Server at Microsoft.

    Interesting case studies of using Project, Portfolio, Team Foundation Server, and Project Server at Microsoft.  Enjoy!

    Microsoft Information Technology Group (MSIT) using Team Foundation Server with Project Server.

    Microsoft Human Resources  using Project Portfolio in Project Server 2010.

    Microsoft Information Technology Group (MSIT) using Project Server 2010.

    Microsoft Project Development Group using Project 2010.

     

  • Auto Accept of Task Updates by Status Manager with Rule

    A customer called me complaining that the Status Manager on several tasks in a project was not receiving task updates sent by resources (Project Server 2007).  The Status Manager had a rule in PWA > Task Updates under Actions > Manage Rules that automatically approved all task updates, so the update approval should have been a foregone conclusion.  As it was, the task updates appeared to be disappearing into the network ether.  Below is a screenshot of the rule.

    I originally thought there might be a problem with the rule and because the task updates were NOT appearing as "approved" in the plan, we turned off this rule.  We then discovered the updates were still not making it to the Status Manager when we resubmitted them while logged in as the resource.  This is an indication the person who SHOULD be the Status Manager ISN'T.

    We doublechecked the Status Manager field by opening the plan and using a right click on the column headers to select Insert Column... and choosing Status Manager.

    Pow! The person assigned as Status Manager had left the company so the updates weren't being applied to the plan.

    To change the Status Manager to the correct person, we simply had that project manager open the plan, insert the Status Manager column, and select her own name from the dropdown.  It's not possible for someone else, such as the farm admin, so select a Status Manager for a task unless that person is already a Status Manager on another task. 

    Once we corrected the Status Manager and verified task updates were arriving for approval to her, we turned the rule back to "Automatically run this rule" and task updates have flowed to the correct person ever since.

    The same Manage Rules feature is available in Project Server 2010.  Go to PWA > Approval Center and look for Manage Rules in the Navigate group on the ribbon as in the screenshot below. 

    Link to Approve or reject task updates for more information about managing rules.

  • Link to "How to become a PFE at Microsoft"

    I am periodically asked how I became a PFE at Microsoft.  The process is rigorous and you do need to have technical know how, but you will also need to demonstrate people skills.  I found a great description from another PFE and wanted to share it:

    Here is the link.

  • Remember: December 2011 CU information webcast on Jan. 10th, 2012.

     
  • Changing the Days to Weeks for Entering Actuals in My Tasks

    A Project Server 2007 customer called me this morning to ask how to change the My Tasks view to show Days for entering Actual Work rather than Weeks.

    I’ve done this before and I though immediately of editing the web part to change that, but it turns out that wasn’t the right choice.  It took me about five minutes of digging after getting off the call to figure out where to make the change and I wanted to share this with everyone.

    Here is what the customer saw:

     

     

    And here is what she wanted to see:

     

    The way to change this is to log into PWA as an administrator and go to Server Settings > Task Settings and Display.

    Next, change the Reporting Display value from “Resources should report their total hours worked for a week” to the other option.

    Save your changes and the views in My Tasks will be updated so users can enter Actual Work by Day rather than by Week.  This same change can be done in Project Server 2010's PWA.

  • How to Access All Available Commands in Project 2010

    Every now and then, I find myself hunting for a command in Project 2010.  Because of the Ribbon, things aren’t where they used to be in Project 2007 and a menu driven guy like me becomes easily confused.  I’ve found a simple way to get access to all the commands at once and I’m going to let you in on my secret.

    The Quick Access Toolbar.  That’s it.  That’s where everything is “hiding”. 

    Today, I wanted to import a project plan to the enterprise for a test.  All I had to do in order to find the “Import Project Plan to Enterprise” command was this…

    Select the dropdown for the Quick Access Toolbar and choose “More Commands”.  (You can also go directly to File tab, Options, and select Customize Ribbon, then add the command you want to a tab on the Ribbon.)

    Next, I clicked the down arrow to get access to the dropdown list and I chose “All Commands”.

    Finally, I selected “Import Project to Enterprise…” and clicked Add>>.

    Now, my Quick Access Toolbar has my Import Project command.

    So what can I do to make this command easily available in the Ribbon itself?  That’s easy.

    Go to File > Options. 

    Click on Customize Ribbon.

    Select the “Choose commands from” dropdown you want. And add the command to the right once you have set up a new group, if desired, in the appropriate Ribbon tab.  In this example, I’m adding Import Project to Enterprise on a new Group called "Import" created in the Project tab.

    The final effect looks like this and even then, I can move the group I just created to the left, I wanted by using the Up and Down buttons on the Customize Ribbon window.