时间表的 MS 项目服务器更新资源

MS project server update resources for timesheets

由于在 Project Server 2016 中删除了一些 SOAP 操作, 我们正在尝试用 REST API 调用 /Draft/Assignments('assignmentid') 替换过时的 SOAP Statusing/UpdateStatus API 调用,以便分配资源并设置 'actualWork' 属性。 MSDN 文档说我们可以向 URL 发送 MERGE 或 PUT 请求,但它没有提到请求负载应该是什么样子。

你能告诉我这个调用的 JSON 负载应该是什么吗?

MERGE _api/ProjectServer/Projects('projectid')/Draft/Assignments('assignmentid')

API 文档:https://msdn.microsoft.com/en-us/library/office/jj668054.aspx

用适合您数据的值替换 < > 中的内容

1) 签出项目

POST <pwaUrl>/_api/projectserver/projects('<projectId>')/checkout

2) 将企业资源添加到项目团队

POST <pwaUrl>/_api/projectserver/projects('<projectId>')/draft/projectresources/addenterpriseresourcebyid('<enterpriseResourceId>')

3) 创建现有任务的分配

POST <pwaUrl>/_api/projectserver/projects('<projectId>')/draft/assignments/add()
{ "parameters":{
    "ResourceId":"<enterpriseResourceId>",
    "TaskId":"<taskId>"
   }
}

4) 编辑 1 个或多个分配属性

PATCH <pwaUrl>/_api/projectserver/projects('<projectId>')/draft/assignments('<draftAssigmentId>')
{ "ActualWorkTimeSpan":"PT24H" }

5a) 发布和签到:

POST <pwaUrl>/_api/projectserver/projects('<projectId>')/draft/publish(true)

5b) 或者只是签到(如果你不想发布):

POST <pwaUrl>/_api/projectserver/projects('<projectId>')/draft/checkin(false)