Бизнес-процессы
Разработка

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

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

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

Нравится

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

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

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

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

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

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

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

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

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

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

[code]
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);
}
}
[/code]

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

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

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