Запуск бизнес-процесса из действия карточки объекта

Добрый вечер!
Для объекта Лид создал замещающий модуль, в котором добавил новое действие в карточке объекта.
Подскажите, пожалуйста, как можно запустить бизнес-процесс при нажатии на созданное действие?

Нравится

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

В теле метода, который выполняется по клику на действие можно вызвать процесс как-то так:

var url = 'https://' + document.domain + '/0/ServiceModel/ProcessEngineService.svc/MyProcessName/Execute?Param1Name=Param1Value&Param2Name=Param2Value';
var request = null;
request = new XMLHttpRequest();
request.open("GET", url, true);
request.send(null);

Где MyProcessName - название БП.
Param1Name/Param2Name - названия параметров, которые необходимо передать в БП.
Param1Value/Param2Value - значения параметров, соответственно.

Максим, спасибо.

Недавно реализовывала этот вопрос.
После консультаций с суппортом вот что получилось (работает)

добавлен Action:

actions.push({
	caption: 'Menedžeru peļņas aprēķins',
	methodName: "setPaymentDate"
});

и вот метод setPaymentDate:

this.methods.setPaymentDate = function() {
	var contactId = this.get('Id');
	var processArgs = {
		sysProcessName: 'SetPaymentDate',
		parameters: {
			ContactId: contactId
			}
		};
	this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
};

Это запуск бизнесс-процесса даже с параметром (ContactId)

Здравствуйте!
Подскажите пожалуйста куда нужно прописывать эти коды:

actions.push({
        caption: 'Menedžeru peļņas aprēķins',
        methodName: "setPaymentDate"
});

и

this.methods.setPaymentDate = function() {
        var contactId = this.get('Id');
        var processArgs = {
                sysProcessName: 'SetPaymentDate',
                parameters: {
                        ContactId: contactId
                        }
                };
        this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
};

В какой клиентский модуль и в какую его часть?

Николай,
Добавить действие и обработчик нужно в схему, в который необходимо реализовать данный функционал. Если это страница редактирования то ..PageV2, если реестр раздела то ..SectionV2 (вместо точек подставить название объекта, например – OrderSectionV2, OrderPageV2).
Оба фрагмента кода необходимо добавить в блок methods: { ... }
Примеры можно найти в системе. Вот один из них (OrderPageV2):
methods: {
//Добавить действие
getActions: function() {
var actionMenuItems = this.callParent(arguments);
actionMenuItems.add("CreateContract", this.getButtonMenuItem({
"Caption": {"bindTo": "Resources.Strings.CreateContract"},
"Tag": "createContract",
"Enabled": {"bindTo": "canEntityBeOperated"}
}));
return actionMenuItems;
},
...
//Обработчик
createContract: function() {
...
},
...
}

Добрый день.

У меня не запускается процесс по Вашей схеме, подскажите, пожалуйста, что я делаю не так

methods: {
//Добавить действие
getActions: function() {
var actionMenuItems = this.callParent(arguments);
actionMenuItems.add("CreateDespatchByOrder", this.getButtonMenuItem({
"Caption": {"bindTo": "Resources.Strings.CreateDespatchByOrder"},
"Tag": "createDespatchByOrder",
"Enabled": {"bindTo": "canEntityBeOperated"}
}));
return actionMenuItems;
},
//Обработчик
createDespatchByOrder: function() {
var contactId = this.get('Id');
var processArgs = {
sysProcessName: 'UsrProcess2',
parameters: {
ContactId: contactId
}
};
this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
},

Попробуйте запустить БП с помощью executeProcess().
Описание можно найти на академии: https://academy.terrasoft.ua/documents/technic-sdk/7-9/zapusk-processa-…

Спасибо! помогло

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