Установка сроков выполнения для задачи из бизнес-процеса

Добрый день!
Есть бизнес-процесс, который стартует в разделе "Проекты" по кнопке "Запустить процесс" следующим образом:

var Dataset = dlData.Dataset;
var ParamNames = new Array();
ParamNames[0] = 'OpportunityID';
var ParamValues = new Array();
ParamValues[0] = Dataset.Values('ID');
WFStartByID("{96A6BC55-B2F9-499C-A2E0-66FD2DF13B32}", ParamNames, ParamValues);

Запускается задача ( 1 шаг бизнес-процесса). Необходимо, чтобы в эту задачу ( только в эту) в качестве даты начала и даты завершения брались значения из специальных полей в проекте.
Подскажите, пожалуйста как можно это сделать ( пробовали передавать эти значения аналогично ParamNames[0] = 'OpportunityID' - не получилось)
Версия Террасофта 3.0.4.118 Х25

Нравится

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

Дарья, попробуйте передавать эти значения в параметры, как и OpportunityID (например, с названиями StartDate и DueDate), а при обработке события OnExecute элемента wa_TaskAction проверять название элемента и в зависимости от него устанавливать даты начала и завершения задач:

function wa_TaskActionOnExecute(WorkflowAction, ActionItem, ItemDataset,
		IsComplete, ResultLinkCodes) {
	.........
	var DefaultValues = GetNewDictionary();
	DefaultValues.Add('Title', ActionItem.Caption);
	DefaultValues.Add('WorkflowItemID', ItemID);
	if (ActionItem.Name == '<Название задачи - первого элемента БП>') {
		var Diagram = GetDiagramByItem(ActionItem);
		var ExecuteDate = WFGetParamValue(Diagram, 'StartDate');
		var DueDate = WFGetParamValue(Diagram, 'DueDate');
		DefaultValues.Add('StartDate', ExecuteDate);
		DefaultValues.Add('DueDate', DueDate);
	} else {
		var ExecuteDate = ItemDataset.ValAsDateTime('ExecuteDate');
		var ExecuteAfterTimeTypeID = 
			WFGetParamsMapItemValue(ActionItem, 'ExecuteAfterTimeTypeID');
		var ExecuteAfterTimeValue = 
			parseInt(WFGetParamsMapItemValue(ActionItem, 'ExecuteAfterTimeValue'));
		ExecuteDate = WFCalcExecuteTime(ExecuteDate, ExecuteAfterTimeTypeID, 
			ExecuteAfterTimeValue);
		ExecuteDate = ExecuteDate.getVarDate();
		DefaultValues.Add('StartDate', ExecuteDate);
		var ExecuteTimeTypeID = 
			WFGetParamsMapItemValue(ActionItem, 'ExecuteTimeTypeID');
		var ExecuteTimeValue = 
			parseInt(WFGetParamsMapItemValue(ActionItem, 'ExecuteTimeValue'));
		var DueDate = WFCalcExecuteTime(ExecuteDate, ExecuteTimeTypeID, 
			ExecuteTimeValue);
		DefaultValues.Add('DueDate', DueDate.getVarDate());
	}
	..........
}

Спасибо.
Скажите, пожалуйста, надо ли подключать дополнительные скрипты?
Сейчас возникает ошибка
на строчке var Diagram = GetDiagramByItem(ActionItem);
"Предполагается наличие объекта"

Должен быть подключен скрипт scr_WorkflowUtils.

Возможно, в версии 3.0.4 ещё не было этой функции. В этом случае Вы можете её добавить самостоятельно в скрипт scr_WorkflowUtils. Её текст такой:

function GetDiagramByItem(DiagramItem) {
	return DiagramItem.ParentItems.ParentDiagram;
}

Либо вместо вызова var Diagram = GetDiagramByItem(ActionItem); вставьте такую строчку:

var Diagram = ActionItem.ParentItems.ParentDiagram;
Показать все комментарии