2016-11-16 46 views
2

我有一个应用程序,我正在从基本上采用Active Collab中的数据并创建报告/图表数据。 API本身不足以在每个请求的基础上获得正确的数据,因此我采取了将数据拉入可以更高效地查询的单独数据集。Active Collab 5 Webhooks /维护“度量”数据

所以为了避免需要查询整个API不断我决定利用网络挂接,以使转换到相关数据,并降低了需要重新同步数据。

但是我注意到并非所有的事件都被发送,特别是以下。

TaskListUpdated 
MemberUpdated 
TimeRecordUpdated 
ProjectUpdated 

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

时间报告可能是最重要的,实际上它从网络挂接丢失意味着几乎所有的应用程序有一个很好的机会错误的数据,如果它需要时间记录数据。在时间记录中输入错字并在稍后进行调整时很常见。

所以我在这里想念什么?有没有办法可靠地查看这些事件?

编辑: 为了避免伊利亚·长的评论我把大部分在这里。

Webhooks除外,你需要拉什么信息?支持 时间跟踪报告的API可以进行各种交叉项目筛选,因此您保留单独数据库的方法可能是一种矫枉过正。

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

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

这是最接近我们正在尝试做的,回来的时候,我们所用的活性协同合作4此做了工作,但即使是我们不得不巩固它在我们自己的电子表格。

所以这个想法是为了更好地我们的活动协同合作的数据集成到自己的工作流程。

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

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

这些项目可以养活不仅我们的报道,但我们公司的许多其他方面。对于我们来说,Active Collab是事实点,所以我们希望数据可以快速访问并且完全可以查询。

因此,我建立了一个同步系统,它首先从Active Collab抓取所有数据,然后使用cron和webhooks的混合使其保持最新状态。

Cron作业对于那些没有“分项目”(项目/任务/任务列表/时间记录)各方面的工作。所以我需要依靠webhook来同步它们需要很多时间才能实时更新它。

对于webhook我注意到上述不通过。时间记录我想出了一个解决方案,列在我的答案中,成员可以通过cron完成。然而,任务列表和项目更新是唯一需要关注的两个问题。项目是相当重要的,因为预算可以改变,这将在报告中使用,任务列表也有可以使用的开始/结束日期。由于经常查看每个项目/任务列表以查看是否有变化,所以我正在寻找可靠地查看更新的方法。

我已经在https://developers.activecollab.com/api-documentation/上建立了这个系统,但我知道至少有一些未列出的端点。

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

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

+0

Webhooks分开,你需要拉什么信息? API是权力的时间进行跟踪报道可以做各种跨项目的过滤,所以你的方法,以保持一个单独的数据库可能是矫枉过正。 – Ilija

+0

@Ilija我有一个答案,您的评论更新的问题。由于它是相当长的,我想避免使用它的注释。 –

回答

0

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

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

所以我成立了一个cron作业相当一致检查并手动通过我的系统推TimeRecordUpdated事件保持一致。

对于MemberUpdated因为一个成员的数据更新不太可能影响很大,其用于检查用户每天的cron似乎不够好。

ProjectUpdated在技术上可以被认为是相同的,但是由于缺少TaskListUpdated,导致很多API调用来同步数据。我还没有找到解决方案,但不幸的是。