Запуск бизнес-процесса из действия карточки объекта
Добрый вечер!
Для объекта Лид создал замещающий модуль, в котором добавил новое действие в карточке объекта.
Подскажите, пожалуйста, как можно запустить бизнес-процесс при нажатии на созданное действие?
Нравится
В теле метода, который выполняется по клику на действие можно вызвать процесс как-то так:
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-…