AssignmentBookingID in ProjectWebApp SQL DB not change after using QueueUpdateProjectTeam PSI method.
After using QueueUpdateProjectTeam PSI method in Project Server 2013 SP1 + CU OKT 2015 resource booking type changed to commited, but not in ProjectWebApp SQL DB.
In Project 2013 Professional client resource booking type is commited (after using PSI).
The code for changing booking type to commited:
Private Sub ChgResBookingTypeInProject(ByVal PrjName As String, ByVal resName As String)
Dim fl_find_res = False
Dim i As Integer = 0
Dim prjUid As Guid = Guid.Empty
Dim fl_find_prj As Boolean = False
projectClient = New SvcProject.ProjectClient("basicHttp_Project")
queuesystemClient = New SvcQueueSystem.QueueSystemClient("basicHttp_QueueSystem")
Dim PrjTypeList As New List(Of PSLibrary.Project.ProjectType)
PrjTypeList.Add(PSLibrary.Project.ProjectType.Project)
PrjTypeList.Add(PSLibrary.Project.ProjectType.InsertedProject)
PrjTypeList.Add(PSLibrary.Project.ProjectType.MasterProject)
Try
For Each PrjTypeListElement As String In PrjTypeList
Dim tempProjDs As SvcProject.ProjectDataSet = projectClient.ReadProjectStatus(Guid.Empty, SvcProject.DataStoreEnum.PublishedStore, String.Empty, PrjTypeListElement)
If tempProjDs.Project(0).PROJ_UID <> New Guid("00000000-0000-0000-0000-000000000000") Then
For i = 0 To tempProjDs.Project.Count - 1
prjUid = tempProjDs.Project(i).PROJ_UID
If tempProjDs.Project(i).PROJ_NAME.ToString() = PrjName Then
Dim dsProject As SvcProject.ProjectDataSet = projectClient.ReadProject(prjUid, SvcProject.DataStoreEnum.PublishedStore)
Dim dsProjectTeam As SvcProject.ProjectTeamDataSet = projectClient.ReadProjectTeam(prjUid)
For Each resourceTeamRow As SvcProject.ProjectTeamDataSet.ProjectTeamRow In dsProjectTeam.ProjectTeam
If Strings.LCase(resourceTeamRow.RES_NAME) = Strings.LCase(resName) And
resourceTeamRow.RES_BOOKING_TYPE = 1 Then
resourceTeamRow.RES_BOOKING_TYPE = 0
fl_find_res = True
End If
Next
If fl_find_res Then
Dim sessionId As Guid = Guid.NewGuid
Dim jobId As Guid = Guid.NewGuid
Dim sessionDescription As String = "TEST"
Dim fl_prj_sav As Boolean = False
Dim fl_prj_pub As Boolean = False
Dim fl_prj_ret As Boolean = False
Try
projectClient.CheckOutProject(prjUid, sessionId,
sessionDescription)
Catch ex As Exception
dbg("PROJ:" & PrjName & ",
RES:" & resName & ", CHKOUT ERR: " & ex.Message.ToString)
End Try
Try
projectClient.QueueUpdateProjectTeam(jobId, sessionId,
prjUid, dsProjectTeam)
Catch ex As Exception
dbg("PROJ:" & PrjName & ",
RES:" & resName & ", QUEUPDTEAM ERR: " & ex.Message.ToString)
End Try
If WaitForQueue(jobId) = SvcQueueSystem.JobState.Success Then
fl_prj_sav = True
End If
jobId = Guid.NewGuid
projectClient.QueuePublish(jobId, prjUid, True, String.Empty)
If WaitForQueue(jobId) = SvcQueueSystem.JobState.Success Then
fl_prj_pub = True
End If
Dim force As Boolean = False
jobId = Guid.NewGuid
projectClient.QueueCheckInProject(jobId, prjUid, force, sessionId, sessionDescription)
If WaitForQueue(jobId) = SvcQueueSystem.JobState.Success Then
fl_prj_ret = True
End If
If fl_prj_sav And fl_prj_pub And fl_prj_ret Then
'good job
Else
'error
End If
End If
End If
If fl_find_prj Then
Exit For
End If
Next i
End If
If fl_find_prj Then
Exit For
End If
Next
Catch ex As Exception
'Error
End Try
End Sub
The T-SQL code getting booking type for test resource assignment:
SELECT [AssignmentUID]
,[ProjectUID]
,[ResourceUID]
,[TaskUID]
,[AssignmentBookingID]
FROM [ProjectWebApp].[dbo].[MSP_EpmAssignment]
WHERE [ProjectUID] = 'DC15588B-064A-E411-8434-B4B52FABA1A3'
The result is AssignmentBookingID=1 (not 0 as for commited)
I have only one assignment in this test project.
BUT IF I CHANGE BOOKING TYPE FROM PROPOSED TO COMMITED IN PROJECT 2013 PROFESSIONAL SP1 + CU OKT 2015 THE RESULT IS AssignmentBookingID=0!!!