A
Adrian B.
Hi,
I've built a tool called Multiple Workspace Templates. Basically it’s a
Project Server Event Handler that blocks the standard Project Server feature
of creating a workspace and creates it’s own based on a Site template defined
in a mapping list.
So I have a SharePoint list with a custom field that displays a drop of Site
templates to choose from, and another custom field that displays values from
a Project Server Lookup Table (ie a mapping of Custom Field value to Site
Template).
This tool works great! if you have the “Windows SharePoint Web Services Web
Application†service running on the same server that you have the “Project
Application Service†running on ie (The Project Server App Server must also
be a SharePoint WFE).
Note** The "Project Application Service " is a SharePoint service that
bascially just runs the two windows Services "Microsoft Office Project
Server Events Service" and "Microsoft Office Project Server Queue Service".
But if you have a dedicated Application Server running the “Project Server
Application Service†and it’s not a WFE (it could be doing other App stuff,
ie indexing etc) then I can no longer reference my SharePoint Custom Fields.
I end up getting this error in the event log.
Field type ProjectServerLookupField is not installed properly. Go to the
list settings page to delete this field.
at Microsoft.SharePoint.SPFieldCollection.CreateSPField(Int32 index)
at Microsoft.SharePoint.SPFieldCollection.EnsureSPField(Int32 index)
at Microsoft.SharePoint.SPFieldCollection.get_Item(Int32 iIndex)
at Microsoft.SharePoint.SPFieldCollection.GetFieldByDisplayName(String
strDisplayName, Boolean bThrowException)
at Microsoft.SharePoint.SPFieldCollection.GetField(String strName,
Boolean bThrowException)
at Microsoft.SharePoint.SPFieldCollection.GetField(String strName)
at Ipmo.WebControls.SharePoint.WPUtility.GetFieldUID(SPList vobjList,
String vstrFieldDisplayName)
at Ipmo.WebControls.SharePoint.WPUtility.GetListFieldValue(SPWeb vobjWeb,
String vstrListName, String vstrFieldDisplayName, Object vobjDefaultValue)
at
Ipmo.ProjectServer2007.EventHandlers.CreateWorkspaceSite.GetListFieldValue(Guid vuidSiteUID, String vstrFieldDisplayName)
at
Ipmo.ProjectServer2007.EventHandlers.CreateWorkspaceSite.OnPublished(PSContextInfo contextInfo, ProjectPostPublishEventArgs e)
I’ve trailed through Google and lots of people get this issue, but they are
trying to refer to a Field Display name from a CAML query, or referring to a
Lookup field that has lost its Lookup list.
My field (ProjectServerLookupField) is indeed a lookup field (of my own
devising) but the code is crashing at the point where I try to get the Field
GUID from the Fields Display Name, I’m not even trying to access the field
data at all at this point.
As I mentioned this works fine in most scenarios, but if the Event Handler
is called from a server that is not a WFE (just an APP server but still part
of the Farm) it fails.
Also the Project Server Events Service runs under the context of the SSP
account, this account is already configured as a Project Server
Administrator, Site Collection Administrator and Farm Administrator.
Does anyone have any ideas?
Adrian
I've built a tool called Multiple Workspace Templates. Basically it’s a
Project Server Event Handler that blocks the standard Project Server feature
of creating a workspace and creates it’s own based on a Site template defined
in a mapping list.
So I have a SharePoint list with a custom field that displays a drop of Site
templates to choose from, and another custom field that displays values from
a Project Server Lookup Table (ie a mapping of Custom Field value to Site
Template).
This tool works great! if you have the “Windows SharePoint Web Services Web
Application†service running on the same server that you have the “Project
Application Service†running on ie (The Project Server App Server must also
be a SharePoint WFE).
Note** The "Project Application Service " is a SharePoint service that
bascially just runs the two windows Services "Microsoft Office Project
Server Events Service" and "Microsoft Office Project Server Queue Service".
But if you have a dedicated Application Server running the “Project Server
Application Service†and it’s not a WFE (it could be doing other App stuff,
ie indexing etc) then I can no longer reference my SharePoint Custom Fields.
I end up getting this error in the event log.
Field type ProjectServerLookupField is not installed properly. Go to the
list settings page to delete this field.
at Microsoft.SharePoint.SPFieldCollection.CreateSPField(Int32 index)
at Microsoft.SharePoint.SPFieldCollection.EnsureSPField(Int32 index)
at Microsoft.SharePoint.SPFieldCollection.get_Item(Int32 iIndex)
at Microsoft.SharePoint.SPFieldCollection.GetFieldByDisplayName(String
strDisplayName, Boolean bThrowException)
at Microsoft.SharePoint.SPFieldCollection.GetField(String strName,
Boolean bThrowException)
at Microsoft.SharePoint.SPFieldCollection.GetField(String strName)
at Ipmo.WebControls.SharePoint.WPUtility.GetFieldUID(SPList vobjList,
String vstrFieldDisplayName)
at Ipmo.WebControls.SharePoint.WPUtility.GetListFieldValue(SPWeb vobjWeb,
String vstrListName, String vstrFieldDisplayName, Object vobjDefaultValue)
at
Ipmo.ProjectServer2007.EventHandlers.CreateWorkspaceSite.GetListFieldValue(Guid vuidSiteUID, String vstrFieldDisplayName)
at
Ipmo.ProjectServer2007.EventHandlers.CreateWorkspaceSite.OnPublished(PSContextInfo contextInfo, ProjectPostPublishEventArgs e)
I’ve trailed through Google and lots of people get this issue, but they are
trying to refer to a Field Display name from a CAML query, or referring to a
Lookup field that has lost its Lookup list.
My field (ProjectServerLookupField) is indeed a lookup field (of my own
devising) but the code is crashing at the point where I try to get the Field
GUID from the Fields Display Name, I’m not even trying to access the field
data at all at this point.
As I mentioned this works fine in most scenarios, but if the Event Handler
is called from a server that is not a WFE (just an APP server but still part
of the Farm) it fails.
Also the Project Server Events Service runs under the context of the SSP
account, this account is already configured as a Project Server
Administrator, Site Collection Administrator and Farm Administrator.
Does anyone have any ideas?
Adrian