Скрипты
Разработка

Передача параметров в БП при его запуске из другой карточки

Добый день!
Нашел на форуме как запустить БП из другой карточки
Но к сожалению может плохо искал незнаю как мне передать несколько параметров в БП
То есть существует раздел запросы я содаю новый запрос и после сохранения нового запроса в базу должен запускаться БП (Задача) и автоматом проставляться некоторые поля которые указаны в карточке запроса откуда я вызываю БП. Как их можно передать ?

        var WorkflowEngine = GetWorkflowEngine();
        var WorkflowUSI = 'Workflow\\Diagrams\\wd_AgreementDemand';
        var Now = new Date(System.Now()).getVarDate();
var ID = WorkflowEngine.StartWorkflow(WorkflowUSI, Now);

Нравится

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

Посмотрите скрипт scr_WorkflowUtils на предмет реализованных функций.
Также можно для запуска использовать scr_WorkflowUtils.WFStartByID(ID процесса, Массив названий параметров, Массив значений параметров)

[javascript]
var ParamNames = ['DemandID'];
var ParamValues = [DemandID];
var Params = WFArrayToParams(ParamNames, ParamValues);
var ID = WorkflowEngine.StartWorkflow(WorkflowUSI, Now,Params);
[/javascript]
их потом вызывать надо или
ParamNames - должны соответсвовать названиям в dataset моего БП?
Вопрос решен

получение параметров идет через методы элементов БП

[javascript]
function NewDemandOnBeforeExecute(ActionItem) {
var ParentDiagram = ActionItem.ParentItems.ParentDiagram;

var DemandID = WFGetParamValue(ParentDiagram, 'DemandID');
var OwnerID = WFGetParamValue(ParentDiagram, 'OwnerID');
var AccountID = WFGetParamValue(ParentDiagram, 'AccountID');
var ContactID = WFGetParamValue(ParentDiagram, 'ContactID');
if (!IsEmptyValue(DemandID)){
WFSetParamValue(ActionItem, 'DemandID', DemandID, 0);
WFSetParamValue(ActionItem, 'AccountID', AccountID, 0);
WFSetParamValue(ActionItem, 'OwnerID', OwnerID, 0);
WFSetParamValue(ActionItem, 'ContactID', ContactID, 0);
AccountID
}
}

[/javascript]

в продолжение темы как можно обратиться к визуальному элементу зная его Dataset

PS нужно сделать поле IsEnabled =true

из самого датасета, если вы перед этим не добавили ему в атрибуты ссылки и без всяких извращений - не получится
имея ссылку на конкретный экземпляр dlData - запросто (dlData.ParentWindow)

Спасибо, нашел как обойти свою ситуацию.

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