Quantcast
Channel: Project Customization and Programming forum
Viewing all articles
Browse latest Browse all 5347

AssignmentBookingID in ProjectWebApp SQL DB not change after using QueueUpdateProjectTeam PSI method

$
0
0

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!!!


Viewing all articles
Browse latest Browse all 5347

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>