Передача параметров диаграммы из подпроцесса

Добрый день!
TS 3.4.0.180

Пытаюсь передать параметры диаграммы подпроцесса в основной процесс. Но данные не передаются. Как решить эту проблему? Сервисы прилагаю.

Нравится

5 комментариев

Здравствуйте, Андрей!

Необходимо в основной диаграмме настроить связь параметра диаграммы с параметром в подпроцессе:

http://i64.fastpic.ru/big/2014/0625/dd/abab82b4af16e17773f739dbf3a6d2dd.png

А затем получать значение параметра в скрипте диаграммы процесса можно, например, так:

function Item3OnAfterComplete(SubProcessItem, ItemDataset) {
	var mypr = SubProcessItem.ParentItems.ParentDiagram.Parameters.ItemsbyName('mypr').Value;
}

Можно ли связать параметр диаграммы и параметр подпроцесса программно, не обращаясь к дизайнеру?

Здравствуйте, Андрей.

Можно, через ParameterMap.

Пример есть в функции:

function SaveDatasetFields(DiagramItem, Prefix, Dataset) {
	ClearParametersMapByLikeName(DiagramItem, Prefix);
	var Records = Dataset.Attributes('Records');
	for (var i = 0; i < Records.length; i++) {
		var Record = Records[i];
		ParameterMap = DiagramItem.ParametersMap.CreateItem();
		ParameterMap.ItemParameterName = Prefix + '_' + Record.FieldName;
		ParameterMap.Data = Record.FieldName;
		ParameterMap.ItemType = Record.MapType;
 
		if (Record.ParameterName) {
			ParameterMap.DiagramParameterName = Record.ParameterName;
		} else {
			switch (Record.ParamType) {
				case wptString:
				case wptLookup:
				case wptEnum:
					ParameterMap.Value = Record.StringValue;
					break;
				case wptInteger:
					ParameterMap.Value = Record.IntegerValue;
					break;
				case wptFloat:
					ParameterMap.Value = Record.FloatValue;
					break;
				case wptBool:
					ParameterMap.Value = Record.BoolValue;
					break;
				case wptDateTime:
					ParameterMap.Value = Record.DateTimeValue;
					break;
 
			default:
					ParameterMap.Value = Record.Value;
			}
		}
		ParameterMap.IsAdditional = true;
		DiagramItem.ParametersMap.AddItem(ParameterMap);
	}
}

Можно ли для связи параметров использовать эту функцию из scr_workflowutils?

function WFConnectParams

Андрей, да можно.

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