0

好的,这是我的问题。如果有人问过这个问题,请原谅我。我在网站上进行了搜索,但找不到我要找的东西。我对 Workfront 非常、非常、非常陌生,他们的文档对于我想要做的事情似乎相当有限。

我知道如何从我的数据库中获取查询并将其转换为 JSON。

我可以登录 Workfront 并创建自定义表单。我可以添加一个下拉列表。

我需要做的是将 JSON 放入页面的下拉列表中。所以我什至不知道 popt 是否是正确的 API。

我知道我可能需要使用

/attask/api/v7.0/popt?method=post&updates=[{json obj 1}, {json obj 2}]

但我不知道如何将它与正确的下拉菜单关联起来。

如果有人能指出我正确的方向,我将不胜感激。

根据布赖恩的以下要求:

有没有办法“批量添加”?你能解释一下参数吗?$option 是显示在下拉列表中的字符串吗?那标签值呢?如何找到下拉列表的 ID?

编辑添加

感谢@Brian R 的所有帮助。

我想知道下拉列表中的选择数量是否有限制。我的列表将有超过一千个“行”,所以我需要它能够有超过一千个条目。

另外,有没有办法“批量插入”,一次将多个 JSON 元素传递给 api?

看起来我应该使用 PUT 而不是 POST 来保存数据,但是我将如何摆脱数据呢?

4

1 回答 1

1

我很惊讶 popt 是一个标签......

所以要清楚,您不想在下拉列表中创建新选项(它是具有固定内容的有限大小),但您确实想为每个项目分配值,所以如果有人选择选项'bob'作为人类-可读的选择,它将被分配一个您生成的 JSON 对象。那正确吗?

在这种情况下,您需要单独更新每个 popt。因此,您首先需要通过以下调用获取下拉列表中每个选项的列表:

GET https://<url>.my.workfront.com/attask/api/v7.0/PARAM/<ID of the parameter(dropdown list)>?fields=parameterOptions&apiKey=<key>

然后,您将遍历每个 result.parameterOptions 并设置值:

foreach($option in $result.parameterOptions){
{    
  PUT https://<url>.my.workfront.com/attask/api/v7.0/POPT/<$option>?value=<json value>&label=<human readable choice>&apiKey=<key>
}

要解决下面参数为空白的响应(具有空值的下拉列表),您只需自己创建弹出窗口。您首先需要确定如何从 JSON 对象中提取数据,因为每个下拉选项至少有一个且不超过两个条目(一个人类可读的选择,这是强制性的,一个可选的分配给所述选择的值)。

foreach $element in $JSON
{
  $label = <extract label from $element>
  [$value = <optional, extract value from $element>]
  POST https://<url>.my.workfront.com/attask/api/v7.0/POPT?<label=$label>[<&value=$value>]&parameterID=<ID of dropdown list>&apiKey=<key>
}
于 2017-11-10T19:04:59.637 回答