2016-11-16 105 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調用來同步數據。我還沒有找到解決方案,但不幸的是。