MaskHelper.ShowBodyMask

Почему маска сама закрывается без вызова MaskHelper.HideBodyMask?
По кнопке вызывается метод import1C, в котором запускается БП.

import1C : function()
                                {
                                          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

Нравится

5 комментариев

Здравствуйте, Сергей!

Предлагаем Вам следующее решение:

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 для своего случая.

Показать все комментарии