1 回答
- 321
Behavious でもできると思いますが、Behavious だとREST APIや課題を更新するアドオンなどからはバリデーションが動作しませんので…
課題作成時のバリデーションであれば、Create のトランジションの検証(Validator)に
Script Validator を設定して、Groovyスクリプトで制御するほうがシンプルではあると思います。
参考QA
- 篠原
Kengo Ohsakiさん ご回答ありがとうございます!
課題作成時でもcreateトランジションにcostom validator追加で実現できました。
ただ、課題複製時にもバリデータに引っかかってしまうことに気づいたので(複製時にはバリデータを発生しないようにしたい)実装はしないことになりそうです。
- Kengo Ohsaki
篠原-san
ご連絡ありがとうございます。
ただ、課題複製時にもバリデータに引っかかってしまうことに気づいたので(複製時にはバリデータを発生しないようにしたい)実装はしないことになりそうです。
確かにそうですね。
Create のトランジションの検証(Validator)で課題複製での課題作成か確認する方法がないですね。
一応技術的な方法として考えられるのが課題複製の場合
複製元のフィールド情報(解決状況を除く)とかも引っ張ってくるので
その挙動をうまく利用して
通常の課題作成・編集・表示画面には設定していない隠しフィールドに
Create のトランジションの事後処理で値を入れるようにしておいて
※(課題複製フラグ:true)みたいな
課題複製フラグフィールドに値が設定されていたら、課題複製操作なはずなのでチェックしないとかするとかですかね。
実際にできるか検証してないですが。
ご参考までに。
- 篠原
教えていただいた通り、隠しフィールドを仕込んで事後操作でフラグいれることで複製課題か非複製課題かの判別ができました!隠しフィールドはScriptRunnerに入っているHideable Free Text Fieldで作成し、BehavioursでHideにして非表示化しました。
これだと複製の複製をしても大丈夫そうです。
教えてくださりありがとうございます。
コメントを追加...
2つの日付フィールドをチェックする方法はありますか?
こちらの質問をみると課題編集時にバリデーションチェックしていますが、課題作成ボタンを押すときにバリデーションをかけるのは可能でしょうか?
追記
JSUの機能を使えば、課題作成時の日付バリデーションチェックはできそうでした。
https://confluence-apps.beecom.ch/display/JSU/Workflow+Validators
それとは別にBehaviousでバリデーションを作成し、課題作成時にスクリプトを走らせたりはできないでしょうか…