2016-11-16 2 views
2

私は、基本的にActive Collabからデータを取り込み、データからレポート/グラフを作成するアプリケーションを作成しています。 API自体は、リクエストごとに適切なデータを取得するには不十分であるため、より効率的にクエリできる個別のデータセットにデータをプルダウンすることに頼っていました。アクティブなCollab 5 Webhooks /メトリックデータの維持

API全体を常に問い合せる必要性を避けるため、関連するデータへの変換を行い、データを再同期する必要性を減らすためにwebhooksを利用することにしました。

しかし、すべてのイベントが送信されるわけではありません。

TaskListUpdated 
MemberUpdated 
TimeRecordUpdated 
ProjectUpdated 

あり、よりおそらくですが、これらは私がこれまでに気づいた主なものは、

時間レポートは、おそらく最も重要であり、実際にそれはウェブフックから欠落ほぼすべてのアプリケーションには良いチャンスがあることを意味時間レコードデータが必要な場合は間違ったデータです。それはかなり時間の記録でタイプミスをして、それを後で調整するのが普通です。

ここには何もありませんか?これらのイベントを確実に確認する方法はありますか?

編集:私はここにバルクを入れていますIlijaに長いコメントを避けるために

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とwebhookの組み合わせを使用して最新の状態に保つシンクシステムをセットアップしました。

"サブアイテム"(プロジェクト/タスク/タスクリスト/タイムレコード)を持たないすべての側面で、Cronジョブがうまく機能します。ですから、Webhookに依存する必要があるのは、リアルタイムで最新の状態に保つには時間がかかります。

私が気づいたウェブフックについては、上記のことは実行されません。時間の記録私はそれのまわりで私の答えに列挙された方法を考え出し、メンバーはcronを通して行うことができます。しかし、タスクリストとプロジェクトの更新は、いくつかの懸念の唯一の2つです。予算が変更され、レポートで使用されるため、プロジェクトはかなり重要です。タスクリストには開始/終了日もあります。変更があるかどうかを常に確認するためにプロジェクト/タスクのすべてのリストを確認しているので、私はそれらの更新を確実に表示する方法を探しています。

私はこのシステムを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

これは総合的な回答ではなく、ウェブフックを経由しないでTimeRecordUpdatedの問題を解決する方法です。

/whats-newの別のAPIエンドポイントがあります。このエンドポイントは最終日の変更を記述し、TrackingObjectUpdatedActivityLogというカテゴリがあり、これは更新されたタイムレコードを参照しています。

私はこれをかなり一貫してチェックし、手動でTimeRecordUpdatedイベントを私のシステムにプッシュして一貫性を保つように設定しました。

MemberUpdatedの場合、更新されているメンバーのデータはあまり影響を及ぼしていない可能性があるため、毎日のユーザーチェック用のcronを使用すると十分だと思われます。

ProjectUpdatedは技術的に同じと見なすことができますが、TaskListUpdatedがないと、データを同期させるためにはるかに多くのAPIコールが発生します。私はまだこのための解決策を見つけていない。

関連する問題