【问题标题】:Cross-project time-record filtering using Active Collab 5 API使用 Active Collab 5 API 的跨项目时间记录过滤
【发布时间】:2015-11-18 20:51:07
【问题描述】:

对于观看此标签的 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); 

带有一个可能的传递参数,表示(全部、活动、已编译)项目状态。

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

谢谢

【问题讨论】:

    标签: api activecollab


    【解决方案1】:

    您需要的不是一个一个一个地遍历所有项目的请求,而是一个为跨项目报告量身定制的请求。 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 的类别中的项目),
    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

    要仅列出时间记录,请将type_filter 设置为time(如果您只想列出费用,则设置为expenses)。

    【讨论】:

    • 谢谢,我会试一试,我会告诉你的。顺便说一句:好产品!
    • 我在玩,我在你原来的系统中查看你在打什么电话,结果我需要用 'include_all_projects' => true 打电话,其余的工作正常
    • 我已经向您发送了确切的命令。参数名称确实很重要(不要更改它们)。值的大小写确实很重要(不要改变它)。 include_all_projectsTrackingFilter 中不需要,但它可能在AssignmentsFilter 中(如果您希望过滤器遍历所有项目,而不仅仅是分配给您的项目)。
    • 这些报告返回的数据保持原样。你不能强迫他们加载更多。相反,请执行额外的 API 请求(以获取项目及其任务),然后在代码中映射您需要的额外详细信息。
    • 我添加了关于 tracked_by_filter (#4) 的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多