Запустить бизнес-процесс по выделенной записи

Как запустить бизнес процесс только по выделенной записи в реестре?

Нравится

4 комментария

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
}
});
}},

Попытался создать, но почему-то не запускается, где я ошибаюсь?

{
    "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": "Активная продажа"
    }
}
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);
}

Я так понял, что с версии 7.3 идет не click,а tag (у нас 7.5)
Даже добавил ProcessModuleUtilities
Но все равно не получается:

{
    "operation": "insert",
    "name": "runActiveSaleButton",
    "parentName": "DataGrid",
    "propertyName": "activeRowActions",
    "values": {
        "className": "Terrasoft.Button",
        "style": Terrasoft.controls.ButtonEnums.style.GREEN,
        "caption": "Активная продажа",
        "tag": "runActiveSale"
    }
}
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);
}

Александр, пример реализации кнопки запуска процесса по активной записи в разделе Контакты (змещающая схема ContactSectionV2)

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*/
		};
	}
);
Показать все комментарии