Microsoft Project 2010
The official blog of the Microsoft Project product team. Learn how to manage your work effectively

Publishing – Made Simple

Publishing – Made Simple

  • Comments 41

“What happened to my publishing options?” is one of the frequently asked questions from sharp-eyed project managers who have just upgraded from Project Server 2003 to Project Server 2007. The answer is complex enough to deserve this blog entry.

My design needed to deliver in two areas:

- Simplicity, our research showed that very few customers understood the nuances of each publish option, especially when combined with the even more hidden Tools/Customize/Published Fields options

- Scalability, our larger customers were hitting bottlenecks because of the serialized nature of project publish.

Simplicity

To address the simplicity I decided to strip project publish to its bare bones, changing from the two dialogs below:

To the single option, placed next to the Save command:

It doesn’t get much simpler than that - this should make the publish option much less of a dice throw for most of our customers – however “power publishers” will be asking for more functionality, you should read on to the Power Publishing section for more information.

Scalability

History Lesson: Project Server 2003 used a background service called “Views Notification” that was responsible for moving data from the Project client sql tables to the Project Server and Views sql tables in the database. This process was serialized on a single project and the whole process was single threaded, using a single cpu (although later service packs allowed it to be run on multiple servers), as you might expect publishing rapidly became a bottleneck on larger systems. It also had other issues in terms of manageability, capacity planning and availability but more on that in other blog entries.

The new server architecture has radically changed how publishing works. Publish requests are placed on the Project Queue and are handled by a queue processor that:

  • Is multithreaded and multi-server and serializes per project rather than across all projects
  • Pulls data from the Draft database into the Published database through the MSP_*_WORKING_VIEW sql views
  • Invokes the corresponding Report Publish that handles the transformation of the data into a report friendly format into the reporting database
  • Optimizes (“folds”) multiple publish requests against the same project into a single request

Even with all the additional work done by publishing (such as moving all custom fields, and serializing data from our internal binary formats) internal tests have shown sustained publishing rates of around 1,400 projects per hour for non-trivial projects on a farm infrastructure.

And the Project Server 2007 queue infrastructure allows for much improved capacity planning and remote management as it exposes performance counters that the Windows System Monitor (fancy name for perfmon) and MOM can catch and track.

Power Publishing

The Project Server 2003 dialogs reflected the relative underlying complexity of the publishing process - much of that complexity was driven by the need to cope with the shared schema (now split across distinct databases) and the need to avoid the performance hit of a full publish. The server now publishes all changed information each time you request a publish operation.

Changes are tracked using revision counters on our primary entities and their children (for instance Projects own {tasks, assignments, specific custom field values, calendars and local resources} – these counters increment each time the project is saved, deleted rows are tracked in our _SHADOW tables.

The two main operations a power publisher wants to control are:

  • When a team member sees a specific task assignment (aka “Phasing”)
  • Who approves task progress (especially when the primary project manager is on vacation)

Both these actions are now controlled through the task sheet where the settings are now visible and editable (Yay!).

If you add the “Status Manager” and “Publish” fields to the sheet (as seen above) you can control the publishing process. Note that both these fields can be set as a group by filtering then using the mouse to drag the value down to more cells.

Firstly – use the Publish Yes/No flag to control whether a task assignment is placed in the Statusing (“My Work”) system – this flag can be toggled at any time & the project republished to make it active. This empowers you to publish a project a phase at a time, allowing you to avoid bombarding your team members with future assignments.

I made the flag at the task level because statusing is all about gauging progress against the whole task - assignment progressing is best managed in the Timesheet sub-system where work can be approved by resource managers rather than the project manager.

In the reporting database the flag is actually stored on the assignment:

 msp_epmassignments_userview.AssignmentIsPublished

There isn't a sinister reason for this, it just reflects the order in which we did the development work against a changing schema.

Note that if you toggle Yes-->No then the assignment disappears from the Team Members My Work (any approved work doesn't get lost though!) so use this power carefully! Also be aware that if the line is already in a timesheet it won't be pulled back.

Secondly - the Status Manager field has some strange rules (that echo those of project Server 2003) - it can be set to another pre-existing Status Manager on a task in the current project or the current user (ie the person with the project checked out and open) - this allows the value to be set even when the project is off line, and ensures that the Status Manager hhas (at least had) the ability to edit the project so that status data from team members can be applied once approved.

So if you are going on vacation you'd ask your deputy to open the project, filter on an appropriate time window and set themselves as the status manager for the tasks that will be active while you are out. On your return you can easily find those tasks and reset them back.

Phew! If you have any questions about other "mysteries of publishing", then please reply to this posting and I'll do a followup.

 

 

  • Thanks for the much needed post. I have a question:

    In Project 2007 when you assign a resource to a task and  publish the project - by default the resources will get an e-mail alert. Is there a way to modify this behavior? Perhaps globally change the default on the server?

    We are trying to increase the use and acceptance of project server beyond the PM's and since every small modification to the schedule sends a whole new slew of e-mails - it borders SPAM.

    In Project 2003 there was an option of not e-mailing the members with task assignments and in our case the PM's started avoiding placing Resources in order not to bombard them with e-mail.

  • Good follow up Uri, you can change the behavior using the task Publish flag as discussed in the article, until you set it to "yes" (the default) no notifications will be sent. Once you set it a notification will only go out when the task is changed.

  • In 2003 you needed republishing when the owner of the project was changed and you needed to republish the assignment and check the option to become a manager. By what functionality is this replaced in 2007?

  • In 2003 you needed republishing when the owner of the project was changed and you needed to republish the assignment and check the option to become a manager. By what functionality is this replaced in 2007?

  • Our testing with the RTM version has shown that, even though setting Publish to "No" keeps the task of the resource's My Tasks list, the system still sends an e-mail notifying the user of a new task assignment.

  • im getting error when publishing new project..failed to queue the message. any idea?

  • Hello,

    We would like to know if the project manager can by any means set the "status manager" of a task of his project to someone else included in the project team.

    For the moment, only the creator of the project is available in the drop down list of the status field...

    Many thanks in advance for your answer!

  • Hello,

    is there any chance to have task updates available to multiple "Status Managers" at the same time?

    By the way, if I change the Status Manager when there are some pending Task Updates, these are only available for approval by the new Status Manager, but the previous Status Manager sees their count on the PWA homepage...

    Thanks for all the information here.

  • How do I insert queue time from projects?

  • Erin - can you ellaborate on this?  In the project server world, items set in the queue as the server waits to process them - saves, publishes, task updates, etc.  Why would you want to increase this time?

    Zbynek - You can only have 1 status manager per task.  I'll look into the second issue you are seeing.

    Thanks,

    Heather

  • Great posting, thanks for the info.

    I have a question though.

    When a Project Manager publishes its schedules very frequently, team members receive email updates continously. This not only confuses them, but also generates a lot of unnecessary traffic in the email servers.

    Another instance where I found this problem is if I need to delete a corrupt project and republish it, team members receive new notifications. This generates a lot of calls from confused team members, and is not desirable. I know change the settings for outgoing email prior to republishing a project that has been "fixed", but I know this is not appropriate.

    Is there any way I can disable email notification for a project temporarily?

    Thank you.

  • When I try to publish a project it remains in the queue and does not get published. The message in the queue is waiting to publish.

    What can be the possible reasons of the project not getting published.

    I am login as administrator.

  • We want to assign more status managers to diffrent tasks of the project. In 2003 we had the ability to assign different managers for different tasks. Now we can't in 2007. Thats too bad.

    Another very bad thing in 2007 that was okey in 2003 is resources cant see the summary tasks in their "my tasks" page. If they have same named tasks in a big project, which belon to different summary tasks. They confuse which belong to which..For exampla a task named as "Test" can be seen more than once in a project , but under different subtasks.

    Lastly, resources cant see the total time they enterd in a week. After SP1 thay can see the totals per project per day. But not totals per day. Again thay have to manually sum the hours they entered.

    Hope Microsoft engineers are working on these.

    Thanks for your helps&shares.

  • We really need the publishing functionality from 2003 back.  There are many times you want to publish for visibility on the server, but not send e-mail notifications to team members yet.  The spam is very bad and the "Publish" yes/no does not work (removes it from the team member's "My Task" list, but still sends them e-mail notifications which is even more confusing.  We may have to stop using the project server if we don't hear this is coming back in a future release.  Thanks.

  • I second Virgilio Arciniegas' comments and request:

    When a Project Manager publishes its schedules very frequently, team members receive email updates continously. This not only confuses them, but also generates a lot of unnecessary traffic in the email servers.

    Is there any way I can disable email notification for a project temporarily?

    Thanks,

    CAP

Page 1 of 3 (41 items) 123