如何使用API将自定义表单附加到Workfront项目



我正在编写一个脚本来恢复存储在我们的沙箱中已删除的自定义表单数据。我已经弄清楚了如何使用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"
       }
     }]
}
}

我想要附加的自定义表单的名称是"Portfolio Planning | Evaluate Project",并且我已经映射了该GUID和更高级别的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"

但是,它无法运行。我实际上得到一个错误,'放'不是一个有效的HTTP类型,但我怀疑这是我的问题中最小的。

你好,你的语法有点错误,对象类别是一个集合。正确的发送方式是

https://<url>/attask/api-internal/project/57bb2d9f02592b41b2c4921c178527e3?apiKey=<key>&updates={"objectCategories":[{"categoryID":"5605787500193fbee202ba3b6d8c12b4","categoryOrder":0,"objCode":"CTGY"}]}&method=put

如果你想添加两个表单你可以这样做

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

最新更新