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=='完了’で条件を組んで実装できました。
勉強になりました。ありがとうございました。