Сохранение значения в параметр диаграммы БП

Добрый день
Есть потребность указывать специфический номер счета в одном конкретном БП. один из элементов номера - количество ранее созданных по БП счетов.
В БП сначала запускается задача, после нее выполняется ряд задач и открывается новый счет, чтобы передать в номер счета нужные данные в событии задачи указал следующий код

function Action1OnAfterExecute(ActionItem, IsComplete) {
        var SelectQuery = GetSingleItemByCode('sq_CountOfSeminarTask');
        var Dataset = SelectQuery.Open();
        var TaskCount = Dataset.Values('TaskCount');
        Dataset.Close();

//      var ParentDiagram = GetDiagramByItem(ActionItem);      
        WFSetParamValue(ActionItem.ParentItems.ParentDiagram,'TaskCount',TaskCount);
}

TaskCount - параметр диаграммы, который привязан к номеру открываемого счета, но в счет подставляется заранее заданное в параметре значение, хотя в скрипте значение TaskCount получается корректно, но в в параметр диаграммы не записывается
Как бы его туда все таки записать?

Нравится

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

Запись в параметры строчкой
WFSetParamValue(ActionItem.ParentItems.ParentDiagram,'TaskCount',TaskCount);
у Вас правильная.
Для проверки того, что изменения в параметре действительно произошли, поставьте после этого элемента, в обработчике которого пропишите код
var TaskCount = WFGetParamValue(ScriptItem.ParentItems.ParentDiagram, 'TaskCount');
MessageBox(TaskCount);
Если нужно изменить номер определенного счета, ID которого хранится у Вас в параметре, то лучше использовать элемент диаграммы "Чтение/изменение данных" с вариантом "запись значений параметров в БД"

Этот определенный счет создается после задачи в скрипте которой прописан приведенный код. то есть при старте БП открывается задача, в которой предполагается занесение значения в параметр БП, после задачи стартуют 2 отправки e-mail, после которых создается счет. соответственно id счета заранее не известен, хотелось подставлять в открываемое окно.
но можно попробовать делать изменение после сохранения счета. будем пробовать

прописал предложенный код - ничего туда не пишется
подключал скрипты scr_WorkflowUtils и на всякий случай scr_DB
значение в параметр не заносится

Попробуйте записать в параметр так:

  ActionItem.ParentItems.ParentDiagram.Parameters('TaskCount').Value = TaskCount;

Проверьте также, чтобы в переменной TaskCount действительно было значение на момент записи в параметр процесса, например выводя его перед присвоениес в сообщении или же поставив debugger.

"Валерий Андрусик" написал:ActionItem.ParentItems.ParentDiagram.Parameters('TaskCount').Value = TaskCount;

эффект тот же

"Стоян Виталий" написал:Проверьте также, чтобы в переменной TaskCount действительно было значение на момент записи в параметр процесса

проверял выводя в окне, значение корректное

Элемент Action1 - это уже открытие счета? Просто в примере обработчик Action1OnAfterExecute, а в таком случае надо делать в событии OnBeforeExecute
Для надежности можно вообще отдельный ScriptItem поставить в диаграмме до открытия счета, и в нем заполнять параметр диаграммы.

"Валерий Андрусик" написал:Элемент Action1 - это уже открытие счета? Просто в примере обработчик Action1OnAfterExecute, а в таком случае надо делать в событии OnBeforeExecute

это задача, с которой стартует процесс - номер счета это количество задач трех человек, поэтому и рассчитывается в самом начале БП
а про скрипт - будем пробовать
но вопрос не теряет актуальности - почему из скрипта процесса значение не пишет до сих пор не понятно

Проблема решена - при старте процесса сначала запускается срипт, который заносит данные в нужный параметр
код скрипта полностью скопирован с кода в задаче, только ActionItem заменен на ScriptItem

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

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