Monday, October 12, 2015

Project Server 2013 and manually entered baselines not saving to database

**Quick publish article.  Further tests follow**
**Update:  Only appears to apply to on-premise installs.  Project Online is unaffected**

Issue:  When manually editing Baseline(0-10) timephased data via task usage in MS Project Client, data is not saved to database.

Tested on:  SEPT 2015 PU (Server and Client)

Prep:
-------------------------------------------------------
Create a project with one task on it.  
add a resource from pool and assign to the task at 100%
Set Baseline (0)
Publish plan

Test:  Query DB and see timephased data populated correctly



Issue 1 Repro
-------------------------------------------------------
Edit Baseline Work values in Task Usage view
Save and Publish

Test:  Query DB and see timephased data is not changed



Issue 2 Repro
-------------------------------------------------------
Add Baseline 10 to task usage view
Manually enter values into timephased cells for Baseline10
Save and Publish

Test:  Query DB and see timephased data is not changed




Issue 3 Repro
-------------------------------------------------------
Close MSP file
Remove from Cache
open file

Test:  See that previously edited values in Baseline 0 and Baseline 10 are missing.  Original Baseline data (set using Set Baseline) is displayed


Summary findings
-------------------------------------------------------
It looks like manually edited baseline values are not moving from Cache to Database on Save and therefore the reporting db isnt being updated.




SQL Script for test:
-------------------------------------------------------

--Baseline 0
SELECT         b.TimeByDay, b.AssignmentBaselineWork
FROM (SELECT * FROM MSP_EpmProject WHERE ProjectName = 't1bltest') P
INNER JOIN MSP_EpmAssignment A 
         on           p.projectuid = a.projectuid
INNER JOIN MSP_EpmAssignmentBaselineByDay B 
         on           a.AssignmentUID = b.AssignmentUID
WHERE          b.BaselineNumber = 0

--Baseline 10:
SELECT         b.TimeByDay, b.AssignmentBaselineWork
FROM (SELECT * FROM MSP_EpmProject WHERE ProjectName = 't1bltest') P
INNER JOIN MSP_EpmAssignment A 
         on           p.projectuid = a.projectuid
INNER JOIN MSP_EpmAssignmentBaselineByDay B 
         on           a.AssignmentUID = b.AssignmentUID
WHERE          b.BaselineNumber = 10