0

我正在使用 WorkFront / AtTask API,在查找任务时,我想将它们过滤到包含特定角色的项目中。

使用/TASK/search/?fields=project:roles它将向我显示角色,但我不确定如何过滤这些角色。

  • 直接访问第三对象(失败)

我试过/TASK/search/?project:roles:ID=aaaaaaa了,但 API 返回 (422) Unprocessable Entity。

  • 从父对象访问(作品)

任务 -> 项目 ->/PROJ/search/?roles:ID=aaaaaaa有效,但涉及对 API 的子查询,成本高且速度慢。

  • 从次要对象的 ID 字段访问(作品)

/TASK/search/?project:ownerID=bbbbbbb因为它引用了辅助对象的字段,而不是另一个对象。但是我只能使用单实例引用来完成这项工作,并且不知道如何在不将它们作为对象引用的情况下访问集合的 ID 字段。


那么如何过滤或访问辅助对象的集合呢?我可以在单个 API 查询中查看它们,但似乎无法过滤。

任务 > 这是项目 > 按角色过滤

4

2 回答 2

1

此功能在 Workfront 中不可用,无论是通过 API 还是通过报表等内置工具。这是由于数据库方面的限制。看到这个问题后,我与 Workfront 的企业支持团队进行了交谈,并收到了 DBA 的确认。

您提供的解决方案是您能做的最好的解决方案 - 将此查询拆分为参数的前半部分和后半部分,并在代码中过滤结果。

于 2017-07-31T15:50:46.513 回答
0

到目前为止,我能想到的最佳解决方案是:

  1. 根据角色拉取可接受项目的列表。

    • /PROJ/search/?roles:ID=aaaaaa&...
  2. 将项目列表保存在内存中

  3. 拉出有问题的任务列表
    • /TASK/search/?...
  4. 从步骤 2 中删除没有项目 ID 的任务

这样,它只有 2 个查询,项目查询对条目的大小和数量的影响应该很小。

于 2017-07-31T14:29:39.393 回答