我正在编写一个脚本来恢复存储在沙盒中的已删除的自定义表单数据。我已经想出了如何使用API迁移数据本身,但是如果我尝试并将PUT中的一个自定义字段放在没有附加自定义表单的项目上,则会失败。
我需要一种方法将项目与特定的自定义表单相关联。我认为将新表单的GUID设为PUT会很容易,但是当我查询项目时,似乎自定义表单是嵌套的。表单本身是目标代码中的一个类别。当我查询项目以查看其自定义表单时,我会得到这样的响应:
{"data":
{"ID":"57461cac0034cad00d494767d4cc2dec",
"name":"<redacted name>",
"objCode":"PROJ",
"objectCategories":
[{"ID":"57461d790035302a611356a45f8db397",
"objCode":"OBJCAT","category":
{"ID":"573c78320153aad411b5730f300d1e5d"
"name":"Portfolio Planning | Evaluate Project",
"objCode":"CTGY"
}
}]
}
}
我要附加的自定义表单的名称是“Portfolio Planning | Evaluate Project”,我已经映射了GUID和更高级别的那个(虽然我不知道它是什么)。但是,我不知道如何将这些值传递给Workfront并实际告诉它将objectCategories属性设置为指定的数组。
我正在尝试以下内容:
https://<url>/attask/api-internal/project/57bb2d9f02592b41b2c4921c178527e3?apiKey=<key>&objectCategories=[{"ID":"57bc5c8601bbcdaafda4bf11defa4605","objCode":"OBJCAT","category":{"ID":"57bc5b2901ba50a110ca11ee230ac7b5","name":"Portfolio Planning | Evaluate Project","objCode":"CTGY"}}]&method=put"
但是,它无法运行。我实际上收到一个错误,'put'不是一个有效的HTTP类型,但我怀疑这是我最小的问题。
答案 0 :(得分:2)
您的sytax有点错误,对象类别是一个集合。 发送它的方法是
https://<url>/attask/api-internal/project/57bb2d9f02592b41b2c4921c178527e3?apiKey=<key>&updates={"objectCategories":[{"categoryID":"5605787500193fbee202ba3b6d8c12b4","categoryOrder":0,"objCode":"CTGY"}]}&method=put
如果您想添加2个表单,则可以执行此操作
https://<url>/attask/api-internal/project/57bb2d9f02592b41b2c4921c178527e3?apiKey=<key>&updates={"objectCategories":[{"categoryID":"5605787500193fbee202ba3b6d8c12b4","categoryOrder":0,"objCode":"CTGY"},"categoryID":"XXXXXX","categoryOrder":1,"objCode":"CTGY"}]}&method=put