我正在使用WorkFront / AtTask API,在查找任务时,我想将它们过滤到包含特定角色的项目。
使用/TASK/search/?fields=project:roles
它会显示角色,但后来我不确定如何过滤这些角色。
我尝试了/TASK/search/?project:roles:ID=aaaaaaa
,但API返回(422)Unprocessable Entity。
任务 - >项目 - > /PROJ/search/?roles:ID=aaaaaaa
有效,但涉及对API的子查询,这些查询成本高且速度慢。
/TASK/search/?project:ownerID=bbbbbbb
因为它引用了辅助对象的字段而不是另一个对象。但是我只能使用单实例引用来完成这项工作,并且不知道如何访问集合的ID字段而不将它们作为对象引用。
那么我怎样才能过滤或访问次要对象的集合?我可以在单个API查询中查看它们,但似乎无法过滤。
任务>这是项目>按角色过滤
答案 0 :(得分:1)
此功能在Workfront中不可用,既不通过API也不通过内置工具(如Reports)。这是由于数据库方面的约束。在看到这个问题后,我与Workfront的企业支持团队进行了交谈,并从DBA收到了对此的确认。
您提供的解决方案是您可以做的最佳解决方案 - 将此查询拆分为参数的前半部分和后半部分,并在代码中过滤结果。
答案 1 :(得分:0)
我能想到的最佳解决方案是:
根据角色提取可接受项目列表。
/PROJ/search/?roles:ID=aaaaaa&...
将项目列表保存在内存中
/TASK/search/?...
这样,它只有2个查询,项目查询在大小和条目数方面应该具有最小的影响。