Кубик "Ожидание действия пользователя" - красная ветка.

wtfowned

Client
Регистрация
07.04.2020
Сообщения
40
Благодарностей
11
Баллы
8
Кубик "Ожидание действия пользователя" всегда отрабатывает только по зеленой ветки, вне зависимости от того нажал ли пользователь "Продолжить" или нет. Добавить-бы красную ветку, если пользователь не нажал "продолжить" и/или истек таймаут ожидания действий.
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Так теряется смысл всего, зачем по красной? Он ждет.
 

wtfowned

Client
Регистрация
07.04.2020
Сообщения
40
Благодарностей
11
Баллы
8
Таймаут истекает (действия не сделал юзер), и все равно зелёная ветка, об этом речь.
 

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
Согласен, когда первый раз использовал данный экшен тоже задумался о том, что логичнее бы развести по разным веткам (по крайне мере для логики моего шаблона именно так было необходимо), тоже думал кинуть в предложения, но чутка подумав, набросал себе такое решение:

C#:
int timeout = 120;

DateTime nowTime = DateTime.Now;
instance.WaitForUserAction(timeout, "Ждем действия");
DateTime finishTime = DateTime.Now;

TimeSpan interval = finishTime - nowTime;

if (interval.TotalSeconds < timeout) return true;
throw new Exception("Действие пользователем не выполнено");
Т.е. если кнопка "продолжить" будет нажата пользователем, то тогда пойдет по зеленой ветке, если пользователь не успеет за заданное время на неё нажать, то по красной.
 

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
Согласен, когда первый раз использовал данный экшен тоже задумался о том, что логичнее бы развести по разным веткам (по крайне мере для логики моего шаблона именно так было необходимо), тоже думал кинуть в предложения, но чутка подумав, набросал себе такое решение:

C#:
int timeout = 120;

DateTime nowTime = DateTime.Now;
instance.WaitForUserAction(timeout, "Ждем действия");
DateTime finishTime = DateTime.Now;

TimeSpan interval = finishTime - nowTime;

if (interval.TotalSeconds < timeout) return true;
throw new Exception("Действие пользователем не выполнено");
Т.е. если кнопка "продолжить" будет нажата пользователем, то тогда пойдет по зеленой ветке, если пользователь не успеет за заданное время на неё нажать, то по красной.
Довольно не плохой снипет!) Спасибо, иногда его использую. Есть только еще вопрос такой, можно так сделать чтобы было сразу 2 кнопки "Продолжить" и "Отклонить", что бы он по "Продолжить" как и сейчас по зеленей ветке продолжал, а по "Отклонить" по красной ветке шел?
 

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
Довольно не плохой снипет!) Спасибо, иногда его использую. Есть только еще вопрос такой, можно так сделать чтобы было сразу 2 кнопки "Продолжить" и "Отклонить", что бы он по "Продолжить" как и сейчас по зеленей ветке продолжал, а по "Отклонить" по красной ветке шел?
тоже об этом просил https://zennolab.com/discussion/threads/ozhidanie-dejstvij-polzovatelja-cansel.96687/
 
  • Спасибо
Реакции: serg32

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)