Как запустить бизнес процесс только по выделенной записи в реестре?
Нравится
http://www.community.terrasoft.ru/forum/topic/10554
Как пример можно посмотреть запуск процесса LeadManagement из реестра Лидов запускается по ИД (файл LeadSectionV2 пакета CoreLead)
/**
* Выполняет запуск процесса квалификации с точки его последней активности.
*/
executeQualificationProcess: function() {
var activeRow = this.getActiveRow();
var qualificationProcessId = activeRow.get("QualificationProcessId");
if (qualificationProcessId) {
ProcessModuleUtilities.continueExecuting(qualificationProcessId, this);
} else {
ProcessModuleUtilities.executeProcess({
"sysProcessName": "LeadManagement",
"parameters": {
"LeadId": this.getPrimaryColumnValue(),
"ManualLaunch": true
}
});
}},
Попытался создать, но почему-то не запускается, где я ошибаюсь?
[javascript]
{
"operation": "insert",
"name": "runActiveSaleButton",
"parentName": "DataGrid",
"propertyName": "activeRowActions",
"values": {
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.GREEN,
"classes": {"textClass": "actions-button-margin-right"},
"click": {"bindTo": "runActiveSale"},
"caption": "Активная продажа"
}
}
[/javascript]
[javascript]
runActiveSale: function() {
//var AccountId = this.get('Id');
var AccountId = this.getPrimaryColumnValue();
var processArgs = {
sysProcessName: 'ActiveSale',
parameters: {
AccountId: AccountId
}
};
this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
}
[/javascript]
Я так понял, что с версии 7.3 идет не click,а tag (у нас 7.5)
Даже добавил ProcessModuleUtilities
Но все равно не получается:
[javascript]
{
"operation": "insert",
"name": "runActiveSaleButton",
"parentName": "DataGrid",
"propertyName": "activeRowActions",
"values": {
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.GREEN,
"caption": "Активная продажа",
"tag": "runActiveSale"
}
}
[/javascript]
[javascript]
runActiveSale: function() {
//var AccountId = this.get('Id');
var AccountId = this.getPrimaryColumnValue();
var processArgs = {
sysProcessName: 'ActiveSale',
parameters: {
AccountId: AccountId
}
};
ProcessModuleUtilities.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
}
[/javascript]
Александр, пример реализации кнопки запуска процесса по активной записи в разделе Контакты (змещающая схема ContactSectionV2)
[javascript]
define("ContactSectionV2", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
return {
entitySchemaName: "Contact",
methods: {
runProcess: function() {
var activeRow = this.get("ActiveRow");
var config = {
sysProcessName: "MyProcess",
parameters: {
RecordId: activeRow
}
};
ProcessModuleUtilities.executeProcess(config);
},
onActiveRowAction: function(buttonTag) {
if (buttonTag === "runProcess") {
this.runProcess();
} else {
this.callParent(arguments);
}
}
},
diff: /**SCHEMA_DIFF*/[{
"operation": "insert",
"name": "DataGridActiveRowQualificationProcessAction",
"parentName": "DataGrid",
"propertyName": "activeRowActions",
"values": {
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.GREEN,
"caption": "Run process",
"tag": "runProcess"
}
}]/**SCHEMA_DIFF*/
};
}
);
[/javascript]