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

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

        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 процесса, Массив названий параметров, Массив значений параметров)

var ParamNames = ['DemandID'];
var ParamValues = [DemandID];
var Params = WFArrayToParams(ParamNames, ParamValues);
 var ID = WorkflowEngine.StartWorkflow(WorkflowUSI, Now,Params);

их потом вызывать надо или
ParamNames - должны соответсвовать названиям в dataset моего БП?
Вопрос решен

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

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
         }
}

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

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

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

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

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