Задание задержки пользователем

Здравствуйте!
Вот я понимаю, как сделать отложенную задачу в бизнес-процессе, но встроенными средствами можно откладывать задачу только на определенное время (я сейчас имею в виду "выполнить в течение"). А можно сделать так, чтобы перед пользователем появлялся вопрос "На сколько отложить задачу "перезвонить"?" (ну или что-то в этом стиле) и пользователь мог сам выбрать количество дней, на которые задача будет отложена? И каким образом это число потом передать в БП?

Нравится

1 комментарий

Если это действие нужно выполнять разово (для одного-двух элементов в одном/нескольких процессах), можно поступить следующим образом:

1) Создать окно, в которое вынести вопрос пользователю и поля для ввода числового значения (задержка) и типа задержки (перечисление enm_ExecuteTimeType - минуты, часы, дни и т.д.).
2) Создать параметры диаграммы для этих значений (например, DelayForTask и DelayForTaskTypeID).
3) В обработчике кнопки "ОК" окна получать диаграмму из соответствующего атрибута окна и передавать её параметрам введённые пользователем значения.
4) При обработке события OnBeforeExecute нужной задачи вызывать это окно в модальном режиме, предварительно передавая в его атрибуты диаграмму.
5) В обработчике OnExecute элемента диаграммы "Задача" (wa_TaskAction) анализировать значение параметра диаграммы DelayForTask и в зависимости от его значения, а также значения DelayForTaskTypeID (если значение DelayForTask ненулевое) изменять значение параметра ExecuteAfterTimeValue. Анализ лучше выполнять непосредственно перед установкой значения параметру ExecuteAfterTimeValue. После установки обязательно обнулить значения DelayForTask и DelayForTaskTypeID.

Если же этот функционал необходимо выполнять для всех задач, все вышеописанные действия остаются без изменений, за исключением того, что окно можно вызывать не в OnBeforeExecute конкретного элемента, а в обработчике OnExecute wa_TaskAction.

Показать все комментарии