CheckIn, CheckOut проект для конкретного пользователя, использующего PSI? - PullRequest
0 голосов
/ 13 сентября 2011

У меня был бизнес-кейс, который мне пришлось проверить, проверить проект PSI в рабочем процессе, но когда я проверить проект, я не могу продолжить этапы рабочего процесса, PWA пишет, что я проверяю проект в другом сеансе, и мне нужно продолжить рабочий процесс из PWA? любая помощь или предложение

1 Ответ

1 голос
/ 20 апреля 2012

Сбрасываете ли вы свой sessionId? Вы должны хранить его в течение всего процесса. Вот краткий пример:

//set guids for session and job
Guid sessionId = Guid.NewGuid();
Guid jobId = Guid.NewGuid();

//checkout in the current session
projectSvc.CheckOutProject(ProjectId, sessionId, "custom field update checkout");

//do something (for example, update a project) with the same sessionId!
bool validateOnly = false;
projectSvc.QueueUpdateProject(jobId, sessionId, project, validateOnly);

//simply wait, if you don't use queuing services
System.Threading.Thread.Sleep(4000);

//create a new job ID for the checkin, sessionId stays the same as before!
jobId = Guid.NewGuid();

//checkin the project
bool force = false;
string sessionDescription = "updated custom fields";
projectSvc.QueueCheckInProject(jobId, ProjectId, force, sessionId, sessionDescription);

//wait again (very ugly)
System.Threading.Thread.Sleep(4000);

Проверьте мой ответ здесь: Настройка пользовательских полей с помощью PSI - Microsoft Project Server

...