使用Active Collab 5 API进行跨项目时间记录过滤

时间:2015-11-18 20:51:07

标签: api activecollab

对于Active Collab团队观看此标记。

我正在开发一个使用新的Active Collab 5 API的项目,我在尝试运行报告时遇到性能问题。

示例我尝试在日期范围内构建报告,并且目前要实现这一点,我需要首先运行调用以获取所有项目。

跟着这个电话的循环:

API::get('/projects/'.$id.'/time-records/filtered-by-date?' . http_build_query(['from' => $from, 'to' => $to]))

然而,我们有大量项目,除了大量活跃项目外,我们还需要过滤存档项目以获取正确的结算报告。

现在我在AC工作了大约1500个项目。

所以我需要进行1500次API调用才能获得巨大的性能。有没有办法可以建立一些可以沿着这些方向发挥作用的东西。

API::get(/timerecords/filter-by-date); 

带有可能传递的参数,表示(全部,活动,复杂)项目状态。

请让我知道您可以做什么,或者我是否遗漏了您已经执行此操作的文档中的内容。

由于

1 个答案:

答案 0 :(得分:3)

这里您需要的不是逐个浏览所有项目的请求,而是针对跨项目报告而定制的请求。 Active Collab 5具有恰当的API端点 - /reports/run

例如,您可以使用此命令查询今天跟踪的所有活动项目的时间记录和费用:

curl -H "X-Angie-AuthApiToken: YOUR-API-TOKEN" "http://your.activecollab.com/api/v1/reports/run?type=TrackingFilter&project_filter=active&tracked_on_filter=today"

注意路由(/reports/run)和查询参数:

  1. type - 指定报告的类型,在本例中为时间和费用跟踪报告,
  2. project_filter - 指定项目过滤器。除了active之外,此过滤器的其他有用值为completed(对于已完成的项目),selected_1,2,3,4(具有项目ID列表的选定项目),client_1,2,3,4(具有给定ID-s的客户的项目,category_1,2,3,4(具有给定ID-s的类别中的项目),
  3. tracked_on_filter - 按跟踪记录的日期进行过滤。要定位特定日期,请使用selected_date_YYYY-MM-DD并定位日期范围,使用selected_range_YYYY-MM-DD:YYYY-MM-DD
  4. tracked_by_filter - 过滤跟踪时间的人。它可以包含各种值,例如anybodylogged_userselected_1,2,3
  5. 要仅列出时间记录,请将type_filter设置为time(如果您只想列出费用,则设置为expenses