Workfront和popt API

时间:2017-11-10 18:44:55

标签: attask workfront-api popt

好的,这是我的问题。如果有人问过这个问题,请原谅我。我在网站上搜索过,无法找到我要找的东西。我是非常非常非常新的Workfront,他们的文档似乎相对于我想要做的事情而言非常有限。

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

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

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

我知道我需要使用

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

但我不知道如何将其与正确的下拉菜单相关联。

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

Per Brian的请求如下:

有没有办法批量添加"?你能解释一下参数吗? $ option是下拉列表中显示的字符串吗?怎么样和标签值?如何找到下拉列表的ID?

已添加

感谢@Brian R的所有帮助。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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>
}