如何使用 API 将自定义表单附加到 Workfront 项目?
How can I attach a custom form to a Workfront project using the API?
我正在编写一个脚本来恢复存储在我们沙箱中的已删除自定义表单数据。我已经想出如何使用 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 和更高一级的(虽然我不知道它是什么)。但是,我不知道如何将这些值传递给 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 类型的错误,但我怀疑这是我遇到的最少的问题。
您好,您的语法有点错误,对象类别是一个集合。
正确的发送方式是
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
我正在编写一个脚本来恢复存储在我们沙箱中的已删除自定义表单数据。我已经想出如何使用 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 和更高一级的(虽然我不知道它是什么)。但是,我不知道如何将这些值传递给 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 类型的错误,但我怀疑这是我遇到的最少的问题。
您好,您的语法有点错误,对象类别是一个集合。 正确的发送方式是
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