Почему маска сама закрывается без вызова MaskHelper.HideBodyMask?
По кнопке вызывается метод import1C, в котором запускается БП.
{
var processArgs = {
sysProcessName: 'ImportProduct',
parameters: {}
};
this.runProcessWithTimeout(processArgs.sysProcessName, processArgs.parameters, 90000000, this.callBackImport, this);
},
runProcessWithTimeout: function(processName, processParameters, timeout, callback, scope) {
var parametersQueryString = "";
if (!Ext.isEmpty(processParameters)) {
parametersQueryString += "?";
var isNotFirstParameter = false;
Terrasoft.each(processParameters, function(value, name) {
if (isNotFirstParameter) {
parametersQueryString += "&";
} else {
isNotFirstParameter = true;
}
parametersQueryString += name + "=" + value;
}, scope);
}
MaskHelper.ShowBodyMask();
ProcessModuleUtilities.callService({
timeout: timeout,
serviceName: ProcessModuleUtilities.PROCESS_ENGINE_SERVICE_NAME,
methodName: processName + "/RunProcess" + parametersQueryString
}, callback, scope);
},
callBackImport: function() {
MaskHelper.HideBodyMask();
}
Получается что ещё не вызвался метод callBackImport, а маска сама закрылась, а когда завершил работу БП то и метод callBackImport вызвался. timeout тоже не помогает.
Нужно сделать пока работает БП маска показывается, как заканчивает работу скрывается. Пробовал через ProcessModuleUtilities.runProcess и там вызывать колбэк тоже сама закрывается.
Версия 7.5.0.1054
Нравится
Здравствуйте, Сергей!
Предлагаем Вам следующее решение:
import1C : function()
{
var processId = 'yourProcessId';
this.runProcess(processId);
//Или
var processName = 'yourProcessName';
var someFunction = function () {};
this.executeProcess(processName , someFunction);
}
/**
* Запускает бизнес-процесс из списка глобальной кнопки запуска процессов
* @param {Object} tag UId схемы бизнес-процесса
*/
runProcess: function(tag) {
ProcessModuleUtilities.executeProcess({
sysProcessId: tag
});
}
/**
* @private
*/
executeProcess: function(sysProcessName, callback) {
ProcessModuleUtilities.responseCallback = callback;
ProcessModuleUtilities.executeProcess({
sysProcessName: sysProcessName
});
},
import1C : function() { var processName = 'ImportProduct'; var someFunction = function () {}; this.executeProcess(processName , someFunction); }, executeProcess: function(sysProcessName, callback) { ProcessModuleUtilities.responseCallback = callback; ProcessModuleUtilities.executeProcess({ sysProcessName: sysProcessName }); }
Всё равно маска сама скрывается буквально через 5 секунд после запуска БП, даже без вызова HideBodyMask в колбэке.
Добрый день!
Для решения данного вопроса предлагаем Вам обходное решение. Для запуска БП использовать не кнопку а запуск из кнопки на боковой панели (рис. 1).
Для этого необходимо в дизайнере бизнес-процессов в нужном БП перейти в свойства и в поле "Тег" написать "Business Process" (Рис.2).
Спасибо!
Добрый день!
К сожалению тоже самое, БП ещё работает, а маска уже скрывается.
Если кроме как вышеописанных действий ничего не нужно, то не помогло.
Спасибо, разобрался мою маску скрывал другой БП подсчет уведомлений, сделал вызов по maskId для своего случая.