Динамическая установка задержки при выполнении БП

Здравствуйте!

1м шагом БП является выбор контрагента, для которого он запускается. Затем отправляется письмо. У каждого контрагента добавлено поле, где указывается некое значение задержки в днях, которое есть у контрагента чтобы ответить на это письмо.

Вопрос: как установить элементу задержки нужное значение задержки (из БД оно получено и записано в var DelayTime, т.е. как обратится к эл-ту?). Возможно ли это вообще? Допустим, эл-т задержки имеет имя DelayBlock, но вариант типа DelayBlock.Value = DelayTime; не работает...

Нравится

2 комментария

Юрий, необходимо подключить к скрипту БП скрипт scr_WorkflowUtils. Далее для получения элемента задержки и установить ему нужные значения, необходимо создать обработчик события OnAfterExecute для элемента, который выполняется непосредственно перед задержкой (я так понимаю, это отправка письма). В обработчик вставляем такой текст:

function wda_SendEmailOnAfterExecute(ActionItem, IsComplete) {
	if (IsComplete) {
		var Diagram = GetDiagramByItem(ActionItem);
		var DelayItem = Diagram.Items.ItemsByName('DelayBlock');
		DelayItem.DelayType = 2;
		DelayItem.Value = 5;
	}
}

Соответствие значений типа задержки (DelayType) и времени:

0 - секунда;
1 - минута;
2 - час;
3 - день;
4 - неделя;
5 - месяц;
6 - квартал;
7 - год;
8 - пользовательский (вычисляется при обработке события OnGetCustomDelay).

Большое спасибо!

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