Cascade Skyline - with Microsoft Logo and Project Support header - author Brian Smith

May, 2008

  • Brian Smith's Microsoft Project Support Blog

    How to ensure your accepted updates get published in Project Server 2007


    In Project Server 2003 updates needed to be made with Project Professional , and then when Project was closed an auto publish would happen – if you wanted it to or not.  Some people wanted it, some didn’t.  In 2007 as we don’t need to use Project Professional and this can happen purely on the server then we leave the choice of when to publish up to you. 

    One way you can simulate the 2003 behavior is to use a server-side event handler to act on the Statusing.OnApplied method, and carry out a publish of the project via the PSI.  This would then ensure that all accepted updates were reflected in PWA.  The following code samples is based on the SDK TestEventHandler, and apart from the code, would also require web references to the Project and LoginWindows web services.  I am also not using impersonation, so my SSP Administrator (the account that would be running the Event services) does need to be a user in PWA with the right permissions to publish the projects.  You could use the same techniques as I recently published for impersonation if you did not want to give any PWA permissions to this account.  If multiple publish events hit the queue at one time then most will get skipped for optimization – but if you are processing a great deal of updates you should consider the load this extra publish work will put on your server.  I use the “post” rather than the “pre” event so that even if the event handler fails it will not block or cancel the event.  Obviously my writing to the event log is optional too – just helped me to see it was working.

    As usual with MSDN blog postings the code is supplied “as-is”, with no warranties or support and could probably do with some better exception handling – but hopefully for any customers wanting to get auto publishing this will be a help.  You will need to replace servername and pwa with your own servername and pwa instance names.

    using System;
    using System.Net;
    using System.Diagnostics;
    using Microsoft.Office.Project.Server.Events;
    using Microsoft.Office.Project.Server.Library;
    namespace TestEventHandler
        public class MyPublishingEventHandler : StatusingEventReceiver 
            const string LOGINWINDOWS = "_vti_bin/PSI/LoginWindows.asmx";
            const string PROJECT = "_vti_bin/PSI/Project.asmx";
            private static WebSvcLoginWindows.LoginWindows 
                loginWindows = new 
            private static WebSvcProject.Project project =
                new WebSvcProject.Project();
            private string baseUrl = "http://servername/pwa/";
            public override void  OnApplied(PSContextInfo contextInfo, 
                StatusingPostApplyEventArgs e)
                 base.OnApplied(contextInfo, e);
                loginWindows.Url = baseUrl + LOGINWINDOWS;
                loginWindows.Credentials = 
                project.Url = baseUrl + PROJECT;
                project.Credentials = 
                // I don't do a full publish 
                // You could change the third parameter to true if you wanted to
                Guid jobUid = Guid.NewGuid();
                project.QueuePublish(jobUid, e.ProjectID, false, "");
                // Create an EventLog instance and assign its source.
                EventLog myLog = new EventLog();
                myLog.Source = "Auto Publish Event Handler";
                // Get information from the event arguments, and 
                // write an entry to the Application event log. 
                string userName = contextInfo.UserName.ToString();
                string projectGuid = e.ProjectID.ToString();
                int eventId = 3945;
                string logEntry;
                logEntry = "User: " + userName + "\nProject UID: "
                    + projectGuid + " has been queued for publish.";
                    EventLogEntryType.Information, eventId);

    The SDK description of the Event Handlers, and links to the SDK samples can be found here.

  • Brian Smith's Microsoft Project Support Blog

    New Project Server content posted over the last couple of months


    Thanks to our great UA team we have had a lot of new content posted over the last couple of months, including some great videos “how-to’s”, and some articles describing the Project Resource Kits tools.  Grouped into the different content types they are:

    Office Online content:

    The PWA Role Guides

    These role guides present broad overviews of Office Project Web Access functionality from the perspective of the different roles your organization might have.

    Available fields

    This article lists all the fields available to users of Microsoft Office Project 2007.

    Set working times, vacations, and holidays for your project

    Creating resource and task calendars article now includes two videos to help with project scheduling.

    Project Demo videos:

    Watch this: Use lag and lead time

    This demo shows how to use lag and lead time to create gaps and overlaps between tasks in a project.

    Watch this: Create a project

    This demo shows how to create a project, set project properties, and set file properties.

    Watch this: Set up a recurring task

    This demo shows how to create a task that repeats on a set schedule throughout a project.

    Watch this: Split a task

    This demo shows how to interrupt a task, creating a gap between two portions of the task. It also shows how to move the entire split task, adjust the length of the gap created by the split, and rejoin the split portions of the task to remove the gap.

    Watch this: Insert a task

    This demo shows how to insert a new task between two existing tasks in a project.

    Watch this: Group tasks or resources

    This demo shows how to group tasks, remove the grouping, and create a new resource group using multiple criteria.

    Watch this: Create a cross-project link

    This demo shows how to create task dependencies across separate Project 2007 files.

    Watch this: Link tasks in your project

    This demo shows how to create task dependencies within a single project, and how to adjust the link type for the dependency.

    TechNet content

    Install Project Server 2007 in Windows Server 2008 (single-server installation)

    This article discusses the requirements and steps for installing Microsoft Office Project Server 2007 in a stand-alone Windows Server 2008 environment.

    Manage Active Directory synchronization in Project Server 2007

    These articles describe how to configure and manage Active Directory synchronization of the Enterprise Resource Pool and Project Server security groups in Office Project Server 2007.

    Back up Project Server 2007 by using SQL Server tools

    Use this procedure to back up the databases associated with Office Project Server 2007.

    Migrate Project Server 2007 by using SQL Server tools

    Use this procedure to migrate the databases associated with Office Project Server 2007 from one computer to another.

    Restore Project Server 2007 by using SQL Server tools

    Use this procedure to restore the databases associated with Office Project Server 2007.

    Back up Project Server 2007 by using the Stsadm command-line tool

    Use these procedures to back up a server farm, Web application, database, site collection, site, or subsite by using the Stsadm command-line tool.

    Restore Project Server 2007 by using the Stsadm command-line tool

    Use these procedures to restore a server farm, Web application, database, site collection, site, or subsite by using the Stsadm command-line tool.

    Portfolio Analyzer Views Migration tool

    This article describes how to use the Portfolio Analyzer Views Migration tool. This tool allows Project Server administrators to bulk edit the Microsoft SQL Server Analysis Services settings in Data Analysis views.

    Project Server Data Populator tool

    This article describes how to use the Project Server Data Populator tool. This tool allows Project Server administrators to generate custom field, resource, project, task, and assignment data in bulk using the Project Server interface. Customers planning new or expanding existing Enterprise Project Management (EPM) implementations can use this tool to validate performance and storage-related metrics and determine hardware/architectural requirements.

    Project Workspace Site Relinker tool

    This article describes how to use the Project Workspace Site Relinker tool. This tool can be used to relink Project Workspace Sites that have become disconnected from Project Server 2007. These sites can become disconnected when a Project Server database is restored.

    Server Settings Backup/Restore tool

    This article describes how to use the Server Settings Backup/Restore tool. This tool allows Project Server administrators to back up server settings from a selected Project Server instance to an XML file. The tool can be run against another Project Server instance to which you can restore the server settings.

    View Effective Rights tool

    This article describes how to use the View Effective Rights tool. This tool can be used by Project Server administrators to troubleshoot issues regarding security settings and access control.

    Technorati Tags: ,
  • Brian Smith's Microsoft Project Support Blog

    Sorry – another non-Project post – but take a look at Popfly Game Creator!


    Going Live in Alpha today is the new Game Creator stuff on Popfly.  Seriously cool!   There is a Video demo up at Soapbox too.

    More information follows…

    The Popfly family just got a little bigger

    Popfly Game Creator | May 2nd 2008 | 12:01PM | 7lbs, 4oz | 20 inches | Proud Parents- The Popfly Team

    Starting today, game creation is now officially accessible to everyone.  You don’t have to be a physics major or hard-core coder to create your own personalized game using the Popfly Game Creator.  In fact, you can create your first game in three easy steps through Popfly’s intuitive interface.

    1. Select your actors:  Choose from nearly 400 pre-built actors in categories like people, vehicles, power-ups, and more.  Can’t find what you’re looking for? Import and create your own.


    2. Set the scene:  Pick a background, select some sounds, and position your actors through a visual designer.


    3. Bring your game to life:  This is where the magic happens.  Using Popfly, you can specify behaviors on your actors and scenes that define how they should interact. Use Popfly’s intuitive user interface to define events, set properties, and specify actions without writing a single line of code!  If you want more control, define a custom behavior in JavaScript.


    Creating Games has never been easier.

    To learn more and build your first game head over to

  • Brian Smith's Microsoft Project Support Blog

    Project Server 2003 and Multilingual User Interface Packs


    A rare Project Server 2003 posting from me to clarify some issue we see with customers applying the MUIs to Project Server 2003.

    Firstly if you are interested in using MUIs then 2007 language packs address some of the issues that 2003 suffers from.  2007 is unicode and you can mix and match languages without the restrictions in 2003.  But if you must still use 2003…

    Unlike the language packs for Project Server 2007 the MUI itself does not contain a Project Workspace template for the MUI language.  In KB articles we do say how this can be added by running WSSWIZ for the appropriate language – but then don’t give any details of where you might find this!  Add to this the fact that for any language the file has the same name it is not surprising customers get confused!

    The WSSWIZ you need to run can be found on the native language CD of Project Server 2003 for the language you want to add.  The next problem is therefore that you are unlikely to have this CD.  For instance, if you are loading French MUI on the US English version you will have the US CD and the downloaded MUI – but you will not have the French CD!  I will let someone else jump in if the following appears to be a licensing issue – but from reading the public material my take on this is we intend people with MUI to also be able to use foreign language workspaces – but didn’t think through distribution of the WSSWIZ.  If you have an account manager then I would liaise with them to obtain the right media.  You could also find this on MSDN media – and I am not talking about using the full install – but just using the WSSWIZ stuff from the \support\wsswiz directory.  You may also find this on your volume licensing media – but I have seen one issue with the French CD where onet.xml file was empty – so if you use MSVL and don’t appear to get the French template then check if you are hitting this issue.

    On a very related issue another file used during MUI installation is INSDEFLP.sql which adds the language strings to the database.  Since SP2a we do actually install this file correctly – but you still need to be sure you are running the version for the right language.

    From where this issue is fixed… 

    You cannot update databases when you install Microsoft Multilingual User Interface Pack (MUI) on Project Server 2003
    When you install Microsoft Multilingual User Interface Pack (MUI) on Project Server 2003, you receive a warning message that states that only the default database will be updated if the server contains more than one database. The message also states that the Insdeflp.sql file will have to be run against the other databases. However, the message does not indicate the location of the Insdeflp.sql file. The Insdeflp.sql file is never installed to the system. Therefore, you cannot run the script against the other Project Server databases.

    You need to look in the directory with the appropriate LCID – such as C:\Program Files\Microsoft Office Project Server 2003\SCRIPTS.SQL\1036 for French.  Also remember that MUI has service packs to match the base product service packs.

    Technorati Tags: ,
  • Brian Smith's Microsoft Project Support Blog

    Which master pages can you edit in Project Server 2007?


    A recent support incident showed that some of our documentation didn’t make it clear just what you can and can’t do with master pages.  There are two different types of sites in Project – PWA (the Project Web Access sites) and PWS (the project workspace sites).  For the PWA sites you are limited to making use of the default.master we already supply to give any extra pages the same look and feel, but you are not able to edit these default.master pages.  We also block SharePoint Designer from opening these sites – so you cannot use this tool against a PWA site.  You can however use SharePoint Designer against the PWA workspace sites – and edit the default.master.

    The reason for this difference is that it would be easy to break our application by editing our pages – and this would not make life good for a support engineer (and indeed for the customers who manage to break things!).  Also remember that even though the workspaces can be modified you shouldn’t add extra instances lists of the specific project type lists of issues, risks, dependencies and documents.  Details from these default lists feed through to the reporting database – if there are duplicates then this will break the workspace reporting feature.

    This topic is covered at and this highlights another great way you can add to the sum of human knowledge on MSDN.  BruceVB added some community content based on his experience – and our own Jim Corbin has added a further comment.  Although I wouldn’t necessarily agree that our original document is incorrect – it is certainly not complete in telling you what you can and cannot do.  But even being able to use our default.master on new pages does make it easier to build custom Project Web Access solutions – even if you cannot edit the default.master.

    If you do try and update the PWA default.master through Site Actions, Site Settings then you may see the error message "The enablesessionstate attribute on the page directive is not allowed in this page." 

    You would need to reset to the site definition to get the site working again. 

    Please do use the community content features on MSDN – it certainly does help us to understand how we can improve our content – and thanks again BruceVB for bringing this particular problem to our attention.

Page 2 of 2 (10 items) 12