1

我正在编写一个脚本来恢复存储在我们沙箱中的已删除自定义表单数据。我已经想出了如何使用 API 迁移数据本身,但是如果我尝试在没有附加自定义表单的项目上放置一个自定义字段,它会失败。

我需要一种将项目与特定自定义表单相关联的方法。我认为只需 PUT 新表单的 GUID 会很容易,但是当我查询项目时,似乎自定义表单是嵌套的。表单本身是对象代码中的一个类别。当我查询一个项目以查看其自定义表单时,我将得到如下响应:

{"data":
{"ID":"57461cac0034cad00d494767d4cc2dec",
 "name":"<redacted name>",
 "objCode":"PROJ",
 "objectCategories":
   [{"ID":"57461d790035302a611356a45f8db397",
     "objCode":"OBJCAT","category":
      {"ID":"573c78320153aad411b5730f300d1e5d"
       "name":"Portfolio Planning | Evaluate Project",
       "objCode":"CTGY"
       }
     }]
}
}

我要附加的自定义表单的名称是“投资组合规划|评估项目”,我已经映射了该 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 类型,但我怀疑这是我的问题中最少的一个。

4

1 回答 1

3

嗨,您的语法有点错误,对象类别是一个集合。发送这个的正确方法是

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
于 2016-08-24T21:01:16.580 回答