Active Collab 5 Webhooks /维护“指标”数据

时间:2016-11-16 18:00:37

标签: activecollab

我有一个我正在处理的应用程序,它基本上从Active Collab获取数据并从数据中创建报告/图形。 API本身不足以在每个请求的基础上获取正确的数据,因此我将数据下拉到一个可以更有效地查询的单独数据集中。

因此,为了避免需要不断查询整个API,我决定使用webhooks来对相关数据进行转换,并降低重新同步数据的需要。

但是我注意到并未发送所有事件,特别是以下内容。

TaskListUpdated
MemberUpdated
TimeRecordUpdated
ProjectUpdated

可能还有更多,但这些是我到目前为止注意到的主要内容,

时间报告可能是最重要的,实际上它从webhooks中丢失意味着如果需要时间记录数据,几乎任何应用程序都有很大的错误数据。在时间记录中输入拼写错误然后稍后调整它是相当常见的。

我在这里错过了什么吗?有没有办法可靠地看到这些事件?

修改 为了避免对Ilija发表长篇评论,我将大量放在这里。

  

Webhooks分开,您需要提取哪些信息?强大的API   时间跟踪报告可以做各种跨项目过滤,所以   你保留一个单独的数据库的方法可能有点过分。

基本上我们正在做一个多变量分层时间报告。它可以通过您可能想要查看的任何可想到的方法进行排序/分组。

http://www.appsmagnet.com/product/time-reports-plus/

这是我们最接近我们要做的事情,当我们使用Active Collab 4时,这就完成了工作,但即便如此,我们还是必须在我们自己的电子表格中进行整合。

因此,我们的想法是将我们的Active Collab数据更好地集成到我们自己的工作流程中。

因此,我们在这种情况下寻找的主要数据是

Job Types
Projects
Task Lists
Tasks
Time Records
Categories
Members / Clients
Companies

这些项目不仅可以提供我们的报告,还可以提供我们公司的许多其他方面。对我们来说,Active Collab是真实的,因此我们希望数据可以快速访问并且完全可查询。

所以我设置了一个同步系统,该系统最初从Active Collab获取所有数据,然后使用cron和webhook的混合来保持最新。

Cron作业适用于没有“子项目”(项目/任务/任务列表/时间记录)的所有方面。因此,我需要依赖webhook,因为同步它们需要花费很多时间才能实时保持最新状态。

对于webhook,我注意到上面没有进行。时间记录我在答案中列出了一个解决方法,成员可以通过cron完成。但是,任务列表和项目更新是一些令人担忧的问题。项目非常重要,因为预算可以更改,并且可以在报告中使用,任务列表也包含可以使用的开始/结束日期。由于经常浏览每个项目/任务列表,看看是否有变化,这真的不是一个好主意,我正在寻找一种方法来可靠地查看它们的更新。

我已将此系统基于https://developers.activecollab.com/api-documentation/,但我知道至少有一些未列出的端点。

Cross-project time-record filtering using Active Collab 5 API

此问题实际上来自同一系统上的其他开发人员(并且还显示了未在文档中列出的TrackingFilter报告)。由于维护一组准确数据的问题,我们不得不对其进行调整。我实际上注意到你(Ilija)是回复的人,并建议我们转移到这种风格的系统。

1 个答案:

答案 0 :(得分:0)

这不是一个完整的答案,而是一种解决TimeRecordUpdated不通过webhook的问题的方法。

/whats-new还有另一个API端点此端点描述了最后一天的更改,并且它有一个名为TrackingObjectUpdatedActivityLog的类别,这是指更新的时间记录。

所以我设置了一个cron作业来相当一致地检查它,并通过我的系统手动推送TimeRecordUpdated事件以保持一致。

对于MemberUpdated,因为正在更新的成员的数据不太可能影响太大,所以每天使用cron来检查用户似乎已经足够了。

从技术上讲,

ProjectUpdated可以被认为是相同的,但由于缺少TaskListUpdated,导致远程到许多api调用同步数据。不幸的是,我还没有找到解决方案。