プロセス管理における最終処理時点の判別

OKAと申します。

プロセス管理を使用するアプリにおいて、フォームには作業者というユーザー選択フィールドがあり、未着手→作業中→完了というプロセスがあるとします。

指定されたすべての作業者が完了にしなければ、完了にならないとした場合に、最終完了した時点の日時を取得することは可能でしょうか。

ユーザー個別に完了した際の日時は、”app.record.detail.process.proceed”イベント内で取得することが可能ですが、全員が完了した時点を判断する方法はありますでしょうか。

ご存じの方いらっしゃいましたら、ご教授よろしくお願い致します。

OKAさん、こんにちは。

app.record.detail.process.proceed の event オブジェクトから nextStatus を取得し、最終ステータスかどうか判断できないでしょうか?

全員が完了しなければ最終ステータスに進まないのであれば、「nextStatus が最終ステータスの時=全員が完了したとき」と言えます。

Asamiさん

こんにちは。ご返信いただきありがとうございます。

app.record.detail.process.proceed内でnextStatusを取得してみたのですが、全員が完了していない場合であっても次のステータスが取得されます。

作業者にA,B,Cの3名が指定されているとして、最初にAが完了処理をした場合もnextStatusは”完了”が取得されます。

B,Cは作業中なので、レコードのステータスは”作業中”のままなのですが、nextStatusはステータスが変化しない場合でも次のステータスを取得するようです。

失礼しました。そのようですね。

イベント発生時の作業者数を見てみてはどうでしょうか?

event.record["作業者"].value.length

実行済ユーザーは作業者から抜けるようなので、最終作業者のときは length が1となります。

「nextStatusが最終ステータス かつ 作業者が1人のとき」と条件を組み合わせればできそうです。

ご教示の通り、event.record[“作業者”].value.length==1 && nStatus=='完了’で条件を組んで実装できました。

勉強になりました。ありがとうございました。