При автоматическом запуске процессов
1
есть вопрос, как получить параметр, по которому мы запустили процесс
К примеру, мы создали условия для автоматического запуска по созданию записей в реестре, и хотим получить ID записи, по которой мы запустили процесс.
Для этого на элементе Start БП определим событие OnStart
2
Создадим параметр диаграммы AutoID
3
В коде

function Item1OnStart(StartItem) {
        var ParentDiagram = GetDiagramByItem(StartItem);
        var RecordID = WFGetParamValue(ParentDiagram, 'AutoID');
}

После чего имеем ID записи в переменной RecordID

Нравится

Поделиться

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

Здравствуйте! Делаю так, как описано, но GetDiagramByItem(StartItem) выдает ошибку, пишет "предполагается наличие объекта".

Решение найдено, нужно было добавить в используемые скрипты scr_WorkflowUtils.

Добавлю маленький комментарий, если есть желание дополнительно записать в параметры значения по ключевому полю RecordID, разумно воспользоваться функцией GetDatasetFieldValueByID с scr_DB

var CustomerID = GetDatasetFieldValueByID('ds_Opportunity',RecordID ,'CustomerID'); //Подключаем scr_DB, 
WFSetParamValue(StartItem,'AccountID',CustomerID);

Подскажите каким образом можно реализовать передачу ID продукта, по которому автоматически запускается БП, в параметр диаграммы?

Здравствуйте, Василий.

Сделайте точно также как описано в этой теме. Т.е. создайте параметр диаграммы типа строка с именем, к примеру, StartedProductID.

Далее, определите событие OnStart для элемента Start. И в коде считайте значение этого параметра (в нем и будет хранится ID продукта, по которому запущен БП):

function Item1OnStart(StartItem) {
        var ParentDiagram = GetDiagramByItem(StartItem);
        var RecordID = WFGetParamValue(ParentDiagram, 'StartedProductID');
}

А если не получится так сделать как говорит Дмитрий, назовите параметр AutoID :wink:

   var RecordID = WFGetParamValue(ParentDiagram, 'AutoID');

Честно я не понял в какой момент заполняется параметр диаграммы что StartedProductID, что AutoID :wink: изначально. Как их получить понятно, не понятно почему они будут иметь нужные значения.

Кирилл, заполняется этот параметр (AutoID) в момент старта процесса (если такой параметр диаграммы существует).
Сам процесс заполнения параметра реализован при создании триггера на таблицу, который при срабатывании передает значение ID записи по которой он сработал в БП.

Так значит нужно именно AutoID, а не к примеру StartedProductID? :smile:

Да, именно так. :)

Подскажите, пожалуйста, есть несколько задач в БП, как мне получить ID выполненной задачи при старте следующей?

как всегда, когда что-нибудь спросишь ответ сам находится

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