Workfront和POPT API(Workfront and the popt API)

2019-10-30 04:32发布

好吧,这里是我的问题。 请原谅我,如果这已经被问的地方。 我没有在网站上搜索,但没有找到我要找的。 我非常,非常,非常新Workfront,他们的文件似乎相当关于什么我希望做限制。

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

我可以登录到Workfront并创建一个自定义窗体。 我可以列表中添加下拉到它。

我需要做的就是在JSON到下拉列表页面上。 所以我甚至不知道,如果是POPT使用权API。

我得到我需要可能使用

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

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

如果有人能请点我在正确的方向,我将不胜感激。

每低于Brian的要求:

有没有一种方法来“批量添加”? 你能解释一下参数? 为$选项,将在下拉列表显示字符串? 怎么样和标签的价值? 我如何才能找到的下拉列表中的ID?

编辑补充

感谢@布赖恩R代表他的所有帮助。

我想知道是否有在下拉列表中选择的数量是有限的 。 我的名单都将有超过一千“行”,所以我需要它能够有超过一千项。

此外,有没有一种方法来“批量插入”,传递多个JSON元素API的所有一次?

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

Answer 1:

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

所以要清楚,你不想创建下拉(这是一个有限的尺寸与固定内容)的新选择,但你希望将值分配给每个项目,因此,如果有人选择选项“鲍勃”作为一个人 - 可读的选择,它会被分配,您已经生成一个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>
}

为了解决下面所述的参数是空白的响应(下拉列表中有空值),你只需要创建自己的popts。 首先,您需要确定您的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>
}


文章来源: Workfront and the popt API