Перевод в Fixed или Won't Fix невозможен без In Progress
Ребят, привет ещё раз! :)
Снова я, ваш террорист по workflow =P
Need Help!)
Пишу правило, которое запрещает Перевод в Fixed или Won't Fix из Open или Submitted без состояния In Progress всем кроме группы "Management".
Накидал такое:
Понимаю, что не правильно (да и работает не правильно), так как получается что всё связано в и/или как одно целое...
Помогите разделить, пожалуйста.
Снова я, ваш террорист по workflow =P
Need Help!)
Пишу правило, которое запрещает Перевод в Fixed или Won't Fix из Open или Submitted без состояния In Progress всем кроме группы "Management".
Накидал такое:
rule can't to move to Fixed without In progress State
when State.oldValue == {Open} || State.oldValue == {Submitted} && !(loggedInUser.isInGroup("Management")) && State.becomes({Fixed}) || State.becomes({Verified}) {
assert false: "Нельзя переводить в Fixed или Verified если статус не In Progress";
}
Понимаю, что не правильно (да и работает не правильно), так как получается что всё связано в и/или как одно целое...
Помогите разделить, пожалуйста.
Please sign in to leave a comment.
для такого случая есть специальный тип правила - state machine. Подробнее можно почитать тут - http://confluence.jetbrains.com/display/YTD5/Workflow+Rules#WorkflowRules-StatemachineRule
А пример есть тут - http://confluence.jetbrains.com/display/YTD5/Workflow+Language+Quick+Reference
Да, Дим, но assert нужен... Основной вопрос как раз именно в том, чтобы не использовать как schedule и выводить assert, чтобы пользователь видел такой алерт, и не пользовался бы этим в дальнейшем...
Что-то я совсем запутался в вашей яве))))
Если все же хочется показывать предупреждающее сообщение, то воркфлоу из поста похож на правильный, только надо верно скобки расставить в условии - либо перед тем как набирать выражение просто написать "()" и внутри уже писать выражение, либо выделить уже написанное выражение, использую Ctrl+W или Ctrl+Up, и далее Ctrl+Alt+T > (expression).
when (State.oldValue == {Open} || State.oldValue == {Submitted}) && !(loggedInUser.isInGroup("Management")) && (State.becomes({Fixed}) || State.becomes({Verified})) { }