MS Project Server 2016 обновляет настраиваемые поля задач

Для Project Server 2013 мы использовали QueueUpdateProjectRequest API-интерфейса SOAP для достижения этой цели, но в 2016 году мы даже не можем оформить проект, используя SOAP.

Мы пытаемся отправить POST в /PWA/_vti_bin/psi/Project.asmx:

<?xml version='1.0' encoding='UTF-8' ?><ns2:Envelope xmlns:ns3="http://schemas.microsoft.com/office/project/server/webservices/Project/" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/"><ns2:Header></ns2:Header><ns2:Body><ns3:CheckOutProject><ns3:projectUid>7475f3ef-226e-e611-80d3-0050568a983b</ns3:projectUid><ns3:sessionUid>c430ce2b-057e-4990-b5b6-9c6f28415739</ns3:sessionUid><ns3:sessionDescription></ns3:sessionDescription></ns3:CheckOutProject></ns2:Body></ns2:Envelope>

и получить:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://Microsoft.Office.Project.Server">a:ProjectServerFaultCode</faultcode><faultstring>Unhandled Communication Fault occurred</faultstring><detail><string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Incorrect inproc routing.  No inproc host is available for Project.</string></detail></s:Fault></s:Body></s:Envelope>

Мы также попытались записать значения настраиваемых полей с использованием внутренних имен настраиваемых полей при публикации слиянием в /ProjectServer/Projects('{#project}')/Draft/Tasks('{#Id}'. Сервер, похоже, игнорирует настраиваемые значения полей при правильном обновлении значений системных полей.

Существует документация по обновлению пользовательских полей в Project, но не в Task: https://github.com/OfficeDev/Project-REST-Basic-Operations/blob/master/updateprojectcustomfieldvalues.ps1

Как правильно обновить настраиваемые поля в задачах в Project Server 2016?

1 ответ

Согласно Microsoft, в PSI больше нет класса Project:
https://technet.microsoft.com/en-us/library/mt422816(v=office.16).aspx

Project Server Interface (PSI) Класс проекта удален
Класс Project в PSI не поддерживается в Project Server 2016. Для всех новых разработок используйте клиентскую объектную модель Project (CSOM).

Я получаю ту же ошибку при вызове функций PSI из класса Project.
Я не уверен на 100%, но я предполагаю, что на самом сервере операции REST/SOAP все еще используют PSI, поэтому вы получаете ту же ошибку.

Не знаю, сможете ли вы достичь того, что вам нужно, с помощью REST/SOAP. Решением будет использование CSOM (как предложено Microsoft), но я не знаю, подходит ли оно вашему приложению.

Другие вопросы по тегам