我有许多要通过API更新的项目字段,这些字段在工作前端UI中不可见。我通过执行项目ID的GET
来获取这些属性。我需要更新的名称很少的字段是 - previousStatus,categoryID,resourcePoolID,scheduleID,eac等。请注意我的extRefID为空。
我试过这个 -
https://abc.attasksandbox.com/attask/api/project/57--b8477f7?DE:project={previousStatus:EST}&apiKey=759--ux&method=put
和这个
https://xyz.attasksandbox.com/attask/api/project/57d6--f7?DE=previousStatus:EST&apiKey=759--xu&method=put
和这个
https://xyz.attasksandbox.com/attask/api/project/57--f7?updates={"previousStatus":"EST"}&apiKey=7--xuk&method=put
和JSON编辑如下
https://xyz.attasksandbox.com/attask/api/project/57--f7&apiKey=7--xuk&method=put
身体为
{
Project: [
{
previousStatus: "EST"
}
]
}
但似乎没有任何效果。我得到第3次调用的响应代码200,但previousStatus仍未更新。 对于我得到的其他电话:
“具有主键值的参数\”previousStatus \“not found”
如果可以实现,任何人都可以建议正确的方法吗?提前谢谢!
答案 0 :(得分:1)
大多数这些字段可以并且应该使用API进行设置,但其中一些仍然是计算的,因此无法直接设置。以前的状态正如它所说的那样,它通过改变项目的状态来自动设置。如果项目是CUR并更改为CPL,则previousStatus将为CUR,因为它之前处于CUR状态。这用于报告或审核,以确保流程合规性。
EAC也是根据任务和项目属性自动计算的。
应该注意的是,categoryID是传统术语,因此它们在UI中被重新标记为表单。所以你会去安装程序并从那里获取ID。您必须在项目中至少有一个表单才能设置后续自定义表单值。通过使用API的v5并设置categoryIDs集合,您可能有多个。
CompanyID,ScheduleID,ResourcePoolID等都可以设置而没有问题。
如果您无法在用户界面中进行设置,则可能无法在API中进行设置。一个例外是extRefID,它在UI中不容易设置,但是要在API中设置。