Как получить уникальный идентификатор задачи из Project Web App через REST?
Я довольно опытный разработчик SharePoint, но совершенно новый для MS Project и Project Server / PWA.
В MS Project Pro есть столбец с именем "Уникальный идентификатор", который, кажется, работает как поле "Идентификатор" встроенного элемента списка SharePoint - автоматически увеличивающееся целое число (на основе 1).
Как найти "Уникальный идентификатор" задачи в проекте, который был сохранен и опубликован в Project Web App через API REST Project Server?
Единственный "идентификатор" объекта Task, полученный через
https://servername/pwa/_api/projectserver/projects('project-id')/tasks('task-id')
GUID, похоже, что нет никакого свойства, связанного с целочисленным идентификатором.
Я нашел этот другой вопрос и ответ на сайте помощи MSDN. Речь идет о Project Server 2010 и о том, как отобразить поле "Уникальный идентификатор" в отчете. Но ответ говорит (акцент мой):
В MSP_EpmTask_UserView есть три поля идентификатора; TaskUID, TaskIndex и TaskClientUniqueId. TaskUID - это GUID, TaskIndex соответствует позиционному идентификатору задачи, а TaskClientUniqueId соответствует полю уникального идентификатора в Project Professional.
Получается, что эта информация хранится где-то в Project Server, но... как мне получить ее через REST?
2 ответа
{PWA Site URL}/_api/ProjectData/Projects(guid'{project guid}')/Tasks()?$Select=TaskName,TaskId,TaskIndex,TaskClientUniqueId
Что ж, хотя другой ответ здесь правильный, может потребоваться некоторое объяснение.
Project Server имеет две разные конечные точки REST, и они не возвращают одни и те же данные.
Есть
<PWA site URL>/_api/ProjectServer/
а также
<PWA site URL>/_api/ProjectData/
Возвращаемые ими данные во многом совпадают, но есть некоторые поля, которые можно получить только через
ProjectServer
конечная точка, и есть некоторые поля, которые можно получить только через
ProjectData
конечная точка.
Как выясняется из,
TaskClientUniqueId
можно получить только из
/_api/ProjectData/
конечная точка.