Создал действие в карточке объекта и прописал запуск процесса, как это описывается здесь:
http://www.terrasoft.ru/bpmonlinesdk/CreateActionForStandartSection.html
https://community.terrasoft.ru/forum/topic/10554
Но мне нужно запускать процесс с двумя параметрами. У меня получился такой код:
var ApplicationId = this.get('Id');
var ContactId = this.get('ContactId');
var processArgs = {
sysProcessName: 'ProcessName',
parameters: {
NewApplicationId: ApplicationId,
FoundContact: ContactId
}
};
this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
};
Но процесс не запускается.
Что я сделал не так?
Нравится
для начала надо проверить журнал процессов - он вообще не запускается или запускается с ошибкой
В консоль смотрите. Там должно быть сообщение об ошибке. От этого и нужно отталкиваться.
Или обработчик нажатия на пункт меню "Действия" вообще не вызывается. Тогда ошибок не будет.
D.T.
В консоль браузера (ниже скриншот чистой консоли Google Chrome без ошибок - вызывается через F12):
Эта ошибка означает, что в текущем контексте не определена функция runProcess.
Здравствуйте, D.T.
Подключите к Вашему замещающему клиентскому модулю ProcessModuleUtilities.
D.T.
Попробуйте вот так:
ProcessModuleUtilities.runProcess (...)
Если написать так:
ProcessModuleUtilities.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
То ошибка не меняется. Если так:
this.ProcessModuleUtilities.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
То ошибка такая:
< exception > TypeError: Cannot read property 'runProcess' of undefined
D.T.
Прошу прощения за задержку с ответом.
Пожалуйста, выложите целиком листинг кода замещающего клиентского модуля.
Спасибо.
define("ApplicationPage", [ "ext-base", "terrasoft", "sandbox", "Application", "ApplicationPageStructure", "ApplicationPageResources", "BusinessRuleModule", "ConfigurationConstants", "TSCConfigurationConstants", "TscApplicationHelperModule", "ProcessModuleUtilities", "jQuery" ], function(Ext, Terrasoft, sandbox, Application, structure, resources, ConfigurationConstants, ProcessModuleUtilities) { structure.userCode = function() { this.methods.StartApplicationZP = function() { var ApplicationId = this.get('Id'); var processArgs = { sysProcessName: 'ProcessName', parameters: { ApplicationId: ApplicationId } }; // this.showInformationDialog(ApplicationId); ProcessModuleUtilities.runProcess(processArgs.sysProcessName, processArgs.parameters, this); }; var actions = this.actions ? this.actions : []; actions.push({ caption: '', className: 'Terrasoft.MenuSeparator' }, { caption: resources.localizableStrings.StartZPprocCaption, methodName: "StartApplicationZP" }); this.actions = actions; }; return structure; });
D.T.
У Вас начиная с BusinessRuleModule начинается несоответствие псевдонимов подключаемых модулей.
Т.е. в качестве псевдонима "BusinessRuleModule" используется ConfigurationConstants и далее уже не верное соответствие.
Задайте корректный псевдоним для каждого подключаемого модуля.
Например, вот так:
define("ApplicationPage", [ "ext-base", "terrasoft", "sandbox", "Application", "ApplicationPageStructure", "ApplicationPageResources", "BusinessRuleModule", "ConfigurationConstants", "TSCConfigurationConstants", "TscApplicationHelperModule", "ProcessModuleUtilities", "jQuery" ], function(Ext, Terrasoft, sandbox, Application, structure, resources, BusinessRuleModule, ConfigurationConstants, TSCConfigurationConstants, TscApplicationHelperModule, ProcessModuleUtilities, jQuery) {
Всё таки удалось запустить процесс вот так:
ProcessModuleUtilities.executeProcess(processArgs);
Но всё равно непонятно почему runProcess не работает?
И еще проблема: процесс по executeProcess запускается всегда, но иногда индикатор загрузки крутится ооооочень долго. Можно ли это как-то исправить?
D.T.
Скорее всего это нюанс версии 7.2.
В последних версиях (7.4.1, 7.5) запуск процессов по действию происходит достаточно быстро (вносились коррективы в базовые пакеты, связанные с быстродействием работы процессов).