Email : info@epmstrategy.com | Call Us Now : 479-321-3977
:: Home :: Sitemap ::
Follow Us

Project Online – EPT’s, PDP’s, Templates, Cost Resources and Errors

By: Collin Quiring

We were working with Project Online and went to Project Center, selected New Project and then used one of our customized Enterprise Project Types to create a new project. The Project Information text appeared as expected and when we clicked on Finish to create the new project we got the message we expected – Create a New Project, Hold on, creating the project….
CostRes1

 

And, we waited.  We went for coffee.  We waited.  We took a nap.  We waited.  Nothing.  It just stayed on this screen.  So, being the clever lads that we are, we decided that something was wrong.  And, that is where this gets interesting.

We couldn’t find that the project existed in Project Center.  We couldn’t find that the project existed when using Professional.  But, we went to the “Delete Enterprise Projects” and it did appear in the list of available projects to delete.  Therefore, at least the system thought that it had started to do something.  When we checked the queue we got our first clue as to what the problem might be with this project.

The queue shows that the Project Create job started and then failed.

CostRes2

Clicking on the error details revealed what appeared to be some scary things – DatabaseUndefinedError or AssignmentInvalidOwner.

CostRes3

 

 

For those that can’t see that image, I have placed the text at the bottom of this article.

We tested different scenarios and we were able to create a new schedule through the default “Enterprise Project” under the New Project options.  And, that helped us decide that it was our custom Enterprise Project Type or our customized Project Detail Page.  We worked on those for a while and decided that the setup and configuration of those were not really the issue.

However, in researching the PDP and EPT we started looking at the Project Template that each of our custom EPT’s were using.  Nothing jumped out at us about the templates themselves.  But, as we dug deeper into the template we went back to the idea that it was something to do with the Assignment Owner (that is what the error message said) of the Resources in the Template.  We worked on the Assignment Owners for the Resources in the Resource Center.  All looked well.  We went directly to the Template and added the Assignment Owner column and it appeared fine.

Unfortunately, this is where we encountered another little “bug” of sorts.  When we looked at the Template in Project Professional, we could see that every Resource had an Assignment Owner.  But, after we would close Professional and then go back to the Template, not every Resource had an Assignment Owner after all. So, it was giving us a false positive.

The Resources that did not have an Assignment Owner were the Cost Resources.  Which, is actually correct and by design.  By definition, a Cost Resource doesn’t have an Assignment Owner.  When we removed the Cost Resource from the Template and went back to Project Online and started a New Project with our custom EPT that used that Template, it worked fine.

The end result is that in Project Online, at least of this writing, you can’t create a Project from a Template that uses a Cost Resource.

After doing some more research, we discovered that Brian Smith had a blog entry that talks about the 2010 version and issues with Cost Resources (http://blogs.msdn.com/b/brismith/archive/2010/09/10/project-server-2010-scheduling-on-the-web-the-psi-and-project-professional.aspx?wa=wsignin1.0) and we would state that these issues have not been resolved in the Project Online version as of 2015.

 

For those that couldn’t see the error image, here is what the error message states:

semantic models:•Projectsemantic model?Table Assignment?Row: ASSN_UID=’b7cdbdbc-95c7-e411-bf0e-00155da8b811′

PROJ_UID=’97cdbdbc-95c7-e411-bf0e-00155da8b811′

?Error AssignmentInvalidOwner (139) – column RES_UID_OWNER

?Row: ASSN_UID=’bfcdbdbc-95c7-e411-bf0e-00155da8b811′

PROJ_UID=’97cdbdbc-95c7-e411-bf0e-00155da8b811′

?Error AssignmentInvalidOwner (139) – column RES_UID_OWNER

General•DatabaseUndefinedError:?DatabaseUndefinedError (50000). Details: id=’50000′

name=’DatabaseUndefinedError’

uid=’f6b0ccbe-95c7-e411-bf0e-00155da8b811′

.

GeneralQueueException:?GeneralQueueException (9131). Details: id=’9131′

name=’GeneralQueueException’

uid=’f7b0ccbe-95c7-e411-bf0e-00155da8b811′

messageID=’1′

exception=’System.Data.SqlClient.SqlException (0x80131904): Invalid object name ‘pjdraft.MSP_TVF_PROJECTS_#UPDLOCK’. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.Office.Project.Server.Data.SqlSession.ExecuteNonQuery(SqlCommand command, SqlInfoMessageEventHandler handler) at Microsoft.Office.Project.Server.Data.SqlSession.ExecuteNonQuery(SqlCommand command

Comments

 

Leave a Reply

You must be logged in to post a comment.