WorkFront / AtTask API查询辅助对象

时间:2017-07-31 14:11:46

标签: api attask workfront-api

我正在使用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查询中查看它们,但似乎无法过滤。

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

2 个答案:

答案 0 :(得分:1)

此功能在Workfront中不可用,既不通过API也不通过内置工具(如Reports)。这是由于数据库方面的约束。在看到这个问题后,我与Workfront的企业支持团队进行了交谈,并从DBA收到了对此的确认。

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

答案 1 :(得分:0)

我能想到的最佳解决方案是:

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

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

  3. 拉出有问题的任务列表
    • /TASK/search/?...
  4. 从步骤2中删除没有项目ID的任务
  5. 这样,它只有2个查询,项目查询在大小和条目数方面应该具有最小的影响。