Archive for July, 2007
Description of the Project 2007 hotfix package: June 24, 2007
29 July 2007
Popularity: 1% [?]
Waiting for Resources? - What happens when you provision a new Project Web Access site
29 July 2007One problem I have seen a few times is the Project Web Access site provisioning running into issues. If it fails completely then the error messages are pretty good - and you can generally resolve the issue and re-try and everything will be good. However, what do you do when it just sits on “Waiting for Resources” and nothing happens? The quick answer is that this relies on the SharePoint Timer Service and a couple of Shared Service Provider services that can be viewed through Timer Job Definitions (Shared Services Timer Job and Project Server Synchronizing Job for ‘SharedServices1′ - or whatever yours is called). If these are not running then you will be “Waiting for resources” for a very long time! Also there could be multiple versions of the timer jobs if you have multiple SSPs so it can get confusing, particularly as the first one does not differentiate by name. (Clue - the JobId in the URL for the job is the Id of the timer job row in the Objects table in SharePoint_Config database, and the Properties column from this row will lead you to the Guid of the TargetSharedResourceProvider - which will be the Id of the Shared Services Provider also in the same table.)
So to dig a little deeper so you can understand where it might be stuck I’ll explain what is going on in the background which hopefully will help you find what is stopping it from working.
So, step 1 - you have been on the Create a Project Web Access Site page (CreatePWA.aspx) and entered all the details, and it goes back to the Manage Project Web Access Sites (ManagePWA.aspx) page and just sits there. At that point a row has been added to the MIPScheduledJob table in the SharedService1_DB (your database name may vary - this is the default). This is a pre-synchronizing job for the site, and is added to the database by the account running the Shared Services Provider application pool.
Step 2. The Shared Service Timer Job picks up the row from this database table and adds a row to the SharePoint_Config database Objects table. In the properties field of this table is some XML describing the site to be built, database names etc. This timer job will run as the account of the farm administrator (i.e. the account running the OWSTIMER service)
Step 3. The Project Server Synchronizing Job for ‘SharedServices1′ sees this row and actions it by creating the site, creating the database and then configuring the instance of PWA. If everything is working you see the status change on the ManagePWA page as these different stages are processed, and finally it will say Provisioned! Again, this timer service runs as the farm administrator.
Waiting for resources will be seen until the early stages of step 3.
So check all your services are running and your timer jobs are present and enabled and all should be good. One other workaround that generally gets things moving again is to create a new Shared Services Provider - which will then create new timer jobs and overcome any underlying issues. The web applications can then be associated with the new SSP, the new SSP can be made the default if you are not using the old one for anything else, and the old one could be deleted.
I mention the databases here on the condition that you can look - but don’t touch!
Technorati Tags: Project Server 2007
Popularity: 5% [?]
how to refinance my house loan when house price dropped
29 July 2007
It seems like the eventualities I was discussing a couple years back (see housing bubble stories here) have finally come to pass. A reader arrived here today wondering “How to finance my house loan when house price dropped”. It is a difficult question. At a certain point when the money you owe is more than the house is worth no one is going to be happy about lending you money unless you have a good income stream or some other assets as collateral.
Many of the companies which were in the business of extending loans for the full value of the property with no income verification have imploded and lending standards are tightening. The entire “sub-prime” lending world has disappeared. This is happening at the same time as some of the teaser rate loans are undergoing their metamorphosis into instruments with a fairly high rate and correspondingly high monthly payments.
So the simple answer is talk to your lender. If it looks like you are going to go bankrupt or default on the loan they have some motivation to work things out with you. If they aren’t willing to talk to you it is unlikely anybody else will be.
Popularity: 1% [?]
Project Professional 2007 File Lockout bug
29 July 2007
Just a friendly warning that using the red X in the upper right corner to close a project professional plan which is on Project Server may lock you out of the project altogether. This bug was present in Project Professional 2003 but was fixed in a service release. Looks like it is back with this version. For now, be sure to use “File / Close” to close a project.
I usually don’t post much about bugs, but since this one can be avoided it is worth noting.
Popularity: 1% [?]
Checked Out Resources
29 July 2007Phil Smail has this great code snippet for providing better error handling with regards to checked out resources:
While working with the PSI I wanted to check out a number of resources. Obviously the situation can arise where some of those resources are already checked out and I wanted to report that information to the client.
Unfortunately the PSClientError object only gives you information that there were resources already checked out but not which ones were checked out. The data is contained with the XML for the Exception so I wrote a helper function to extract this information out
The output from the code looks like the following:
The code is as follows:
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Web.Services.Protocols; using System.Xml; namespace GetError { class Program { private const string RESOURCESWEBSERVICE = “/_vti_bin/PSI/Resource.asmx“; static GetError.ResourceWsc.Resource Resource = new GetError.ResourceWsc.Resource(); static void Main(string[] args) { String PWAURL = args[0]; Resource.Url = PWAURL + RESOURCESWEBSERVICE; Resource.Credentials = CredentialCache.DefaultCredentials; Guid[] restypeGuids = new Guid[2]; //Change these GUIDS to res Guids in your system restypeGuids[0] = new Guid(”{f461c3f7-e0c9-414f-ae1a-41abe862f709}“); restypeGuids[1] = new Guid(”{4e5d7702-7748-4a18-bc5d-7beef7004188}“); Console.WriteLine(”Trying to check out resources“); try { Resource.CheckOutResources(restypeGuids); } catch (SoapException ex) { String tempxml = ex.Detail.InnerXml; ExtractError(tempxml); } Console.ReadLine(); } static void ExtractError(String xmlstr) { XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlstr); foreach (XmlNode node in doc.DocumentElement.FirstChild.ChildNodes) { String ErrString = ““; if(node.Name.Equals(”item“)) { //We know its one error XmlNode n = node.Attributes.GetNamedItem(”value“); ErrString = “Error: Resource - ” + n.Value; XmlNode childn = node.FirstChild; if (childn.Name.Equals(”error“)) { XmlNode no = childn.Attributes.GetNamedItem(”name“); switch (no.Value) { case “CICOAlreadyCheckedOutToYou“: ErrString += “ Resource already checked out to you“; break; case “CICOCheckedOutInOtherSession“: ErrString += “ Resource checked out in another session“; break; case “CICOCheckedOutToOtherUser“: ErrString += “ Resource already checked out to another user“; break; } } } Console.WriteLine(ErrString); } } } }
Popularity: 2% [?]
You cannot connect to a document library in Windows SharePoint Services 3.0 or Windows SharePoint Services 2.0 by using Windows shell commands or by using Explorer View
26 July 2007http://support.microsoft.com/kb/841215


Popularity: 1% [?]
Managing Enterprise Projects Using Microsoft Office Project Server 2007
26 July 2007
Popularity: 1% [?]
All your models are belong to us
26 July 2007
I was writing a note to someone about the use of PERT and Monte Carlo simulation in Microsoft Project and it made me think about how willing people are to accept simple models.
As Box and Draper said “All models are wrong; the practical question is how wrong do they have to be to not be useful*” (frequently paraphrased as “All models are wrong. Some models are useful”). The margin of error in almost any schedule is going to be in the range of several percent. Building a probabilistic model of the schedule will help give an idea of the range, but even that sort of model has a margin of error.
My point here is to not get carried away with increased precision in the model beyond the point where it exceeds the limit of accuracy**. Schedules are probably only accurate to 2 significant figures so there is no need for five digits beyond the decimal point for % complete.
The biggest holes in the schedule are not going to be from rounding, but rather from things which were not considered or hand-offs which were not properly made. Modeling those events is difficult if not impossible, the answer is to avoid them in execution through proper planning and keeping track of dependencies.
* Ref: George Box and Norman Draper, Empirical Model Building and Response Surfaces, John Wiley, 1987, pg. 74
**Accuracy refers to how close a measurement is to the “true” value. Precision is how finely we can discern differences between values. You can have a highly precise measuring device which is always inaccurate. In a pinch always choose accuracy over precision.
Popularity: 2% [?]
MS Project Reporting: Schedule Status Indicator
24 July 2007This post is the fourth in a series of posts describing several methods of generating reports using MS Project on the desktop. Last time we looked at how to use filters to narrow down the data which is displayed in MS Project reports. The technique shown below displays a column of Graphical Indicators in your MS Project schedule which provides a quick "at-a-glance" view of how the tasks are tracking against the Baseline. The technique utilizes MS Project’s ability to use Custom Fields, Formulas, and Graphical Indicators (optional).
The Schedule Status Indicator Explained
MS Project views can be configured to display graphical status indicators which provide a quick view of certain data. This can allow Executives, Project Managers, and Team Members to easily manage projects on an exception basis, rather than unnecessarily spending large amounts of time analyzing detailed project data.
Schedule Status graphical indicators specify the status of each task in a project schedule with respect to the current timeline.
When the Schedule Status is evaluated for each task, the item is tested based on a set of criteria:
- Is the task complete?
- Is the task overdue?
- Has the task been baselined?
- Are we forecasting the task to finish early or late in the future?
Is the task complete?
If a task has been completed, then we no longer have the ability to leverage that item to make future schedule improvements.
A completed task is indicated with the following graphical indicator:
|
(Complete) |
Is the task overdue?
If we’ve passed the scheduled finish date for a task and it is still incomplete, then the task is overdue.
An overdue task is indicated with the following graphical indicator:
|
(Overdue) |
Has the task been baselined?
In order to forecast whether or not tasks will finish on time, the Project Manager should set a baseline when the project plan is initially created and accepted; this baseline is used throughout the duration of the project for comparison. Without a baseline, we cannot accurately and automatically measure variances in the scheduling of tasks.
A task which does not have a saved baseline is indicated with the following graphical indicator:
|
(No Baseline) |
Are we forecasting the task to finish early or late in the future?
As tasks are executed, schedule variances often occur (items finish earlier or later than originally planned) which affect the finish dates of tasks in the future. If the Project Manager has set a baseline, we can then use this baseline to forecast whether tasks will finish early or late.
A task which is forecasted to finish on-time or early is indicated with the following graphical indicator:
|
(Green) |
A task which is forecasted to finish less than 10% late (based on the overall duration of the project) is indicated with the following graphical indicator:
|
(Yellow) |
A task which is forecasted to finish more than 10% late (based on the overall duration of the project) is indicated with the following graphical indicator:
|
(Red) |
The Schedule Status Indicator Formula
The formula, as shown below, is the basis for calculating which of the graphical indicators will be displayed in the project schedule. It is intended to be used with a custom text field, and it tests for these six conditions:
span style=”font-family:Tahoma”>The task is complete
Here is the formula:
Switch(
[% Complete]=100,"Complete",
(([% Complete]<100) And ([Finish]<Date())),"Overdue",
(([Baseline Start]=ProjDateValue("NA")) Or ([Baseline Finish]=ProjDateValue("NA"))),"No BL",
[Finish Variance]<=0,"Green",
[Finish Variance]<=(ProjDateDiff([Project Start],[Project Finish])*0.1),"Yellow",
[Finish Variance]>(ProjDateDiff([Project Start],[Project Finish])*0.1),"Red"
)
an style=”font-family:Tahoma”>Creating The Schedule Status Indicator
To configure the custom text field, insert a column into the current view by selecting Insert > Column, then selecting an unused custom text field from the dropdown list (in this example, we’ll use Text1):
After clicking OK, the column should be displayed in the current view; reposition it if necessary by clicking and dragging the column header:
Next, we’ll insert the formula into the custom text field. To modify the text field, select Tools > Customize > Fields…, select the appropriate field (Text1, in this example), then click the Formula… button in the Customize Fields dialog box.
In the Formula dialog box, enter the formula as listed above, then click the OK button:
In the Customize Fields dialog box, for Calculation for task and group summary rows, select Use Formula. You may also wish to rename the text field and give it a name such as "Schedule Status"; simply click on the Rename… button, enter a new name, then click the OK button. Click OK again to accept the changes and close the Customize Fields dialog box.
If you’ve entered the formula correctly, you should see a series of values in the new custom text field as shown below:
When the formula finds one of the six conditions to be true, it displays one of the following results in the custom text field:
- "Complete"
- "Overdue"
- "No BL"
- "Green"
- "Yellow"
- "Red"
You can simply display the text data as shown above, or you can display a graphical indicator for each of the six conditions. To add Graphical Indicators, return to the Customize Fields dialog box, select the new custom text field, and click on the Graphical Indicators… button.
In the Graphical Indicators dialog box, enter each of the six results and select an image for each, as shown below:
After you’ve configured a Graphical Indicator for each of the six conditions, click the OK button to close the Graphical Indicators dialog box, then click the OK button to close the Customize Fields dialog box.
You should now see Graphical Indicators, rather than the data results ("Red", "Green", etc.), in the new custom text field, as shown below:
Popularity: 1% [?]
Quiescing - Introduced
22 July 2007There is a feature in MOSS that enables you to gradually shut down the farm for maintenance. This feature is called "Quiescing." I have to admit, this isn’t a word I use everyday, so I looked it up on Dictionary.com and found the following:
"become quiet or quieter"
"To render quiescent, i.e. temporarily inactive or disabled. For example to quiesce a device (such as a digital modem). It is also a system command in MAX TNT software which is used to temporarily disable a modem or DS0 channel."


Popularity: 1% [?]







