如何通过 REST 从 Project Web App 获取任务的 "Unique ID"?

How to get a Task's "Unique ID" from a Project Web App via REST?

我是一名相当有经验的 SharePoint 开发人员,但对 MS Project 和 Project Server/PWA 是全新的。

在 MS Project Pro 中,有一个名为 "Unique ID" 的列,其功能类似于 SharePoint 的内置列表项 "ID" 字段 - 一个自动递增的整数(基于 1)。

如何从已通过 Project Server 的 REST API 保存并发布到 Project Web App 的项目中找到任务的 "Unique ID"?

通过

检索到的任务对象上唯一的"ID"
https://servername/pwa/_api/projectserver/projects('project-id')/tasks('task-id')

是一个 GUID,似乎没有任何 属性 与整数 ID 关联。

我在 MSDN 帮助站点上找到了另一个 question and answer。它与 Project Server 2010 以及如何在报表中显示 "Unique ID" 字段有关。但答案是(强调我的):

There are three ID fields in the MSP_EpmTask_UserView; TaskUID, TaskIndex and TaskClientUniqueId. TaskUID is a GUID, TaskIndex corresponds to the Task positional ID and TaskClientUniqueId corresponds to the Unique Id field in Project Professional.

看来此信息 存储在 Project Server 中的某处,但是...如何通过 REST 获取它?

{PWA Site URL}/_api/ProjectData/Projects(guid'{project guid}')/Tasks()?$Select=TaskName,TaskId,TaskIndex,TaskClientUniqueId

好吧,虽然这里的另一个答案是正确的,但可能需要一些解释。

Project Server 有两个不同的 REST 端点,它们没有return相同的数据。

<PWA site URL>/_api/ProjectServer/

<PWA site URL>/_api/ProjectData/

它们 return 的数据有相当多的重叠,但有些字段 只能 通过 ProjectServer 端点检索,并且有些字段 只能 通过 ProjectData 端点检索。

事实证明,TaskClientUniqueId 只能从 /_api/ProjectData/ 端点检索。