私は最新のAcitiviti 5.22.0エンジンを使用しています(具体的にはAlfresco Process Services 1.6.3を使用しています)、JSON表現を生成するために10分ごとに実行されるSpring Beanを実装しましたすべての自分のプロセス(プロセス名、開始日、終了日、現在のタスク名と担当者)を監査サーバーに送信します。問題は、最後に実行してから変更されたすべてのプロセスを送信するだけで済むということです。Activiti BPMNエンジン:データベースにカスタムプロパティを格納
プロセスが変更されるとすぐにJSONを送信するのではなく、監査システムのバッチ更新を10分ごとに実行したいと考えています。
これを達成するために、私はさまざまなアプローチを試みました。私の最新の1:
- 、
- ...イベントがトリガされるたびに、すべてのPROCESS_STARTED、PROCESS_COMPLETED、PROCESS_CANCELLED、TASK_COMPLETED、に耳を傾けイベントリスナBeanを作成したプロセス変数「_dirty」を記憶し、それを設定しますtrue to
- 「_dirty」変数がtrueに設定されているすべてのプロセスに対して、10分ごとにクエリが実行されます。
- JSONを監査システムに送信した後、すべての "_dirty"プロセス変数を偽です。
このアプローチの問題:プロセスが終了した後、 "_dirty"変数を更新できません。少なくとも私は方法を知らない。
私の2番目のアプローチは、すべてのイベントにprocessInstanceIdを「グローバル」プロパティに格納することですが、サーバーが再起動した場合にこの「グローバル」プロパティをデータベースに格納する方法はわかりません。余分なテーブルやDAOなどを作成せずに、プロパティやエンティティをDBに保持する方法はありますか?
どのようにこのタスクを解決するためのアイデアですか?すべてのヒントは非常に高く評価されています!