Здравствуйте.
Подскажите, как отловить сигнал завершения БП со страницы раздела. БП запускается с этой же страницы. А после получения сигнала о завершении, выполнить произвольную функцию.
БП со страницы раздела вызываю следующим кодом:
sysProcessName: 'CollectionOfStatistics',
parameters: {
CreatedById: CreatedById,
CalcForPeriod: forPeriod
}
};
ProcessModuleUtilities.executeProcess(processArgs);
Нравится
Здравствуйте, Олег!
Вы можете вызвать следующий web сервис:
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc/CollectionOfStatistics/Execute?ResultParameterName=RESULTPARAMETERNAME&CreatedById=CreatedById&CalcForPeriod=forPeriod
В результате на клиент придет значение результирующего параметра RESULTPARAMETERNAME после получения которого, Вы можете выполнить произвольную функцию.
Более подробно о сервисе ProcessEngineService.svc Вы можете почитать по ссылке
RESULTPARAMETERNAME - параметр процесса с типом "Строка". В Вашем кейсе достаточно будет ограничить длину строки 50 символами.
Здравствуйте, Алексей. Спасибо за ответ. Возможно я что-то делаю не правильно. Воспользывался вашим советом. Вызываю БП со страницы раздела следующим методом:
[javascript]
var CreatedById = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value;
var Params = "ResultParameterName=ResultProcess&CreatedById=" + CreatedById + "&CalcForPeriod=false";
Terrasoft.AjaxProvider.request({
url: "../ServiceModel/ProcessEngineService.svc/CollectionOfStatistics/Execute?" + Params,
method: "POST",
scope: this,
jsonData: {},
callback: function(request, success, response) {
if (success) {
//Сюда приходит строка с возвращаемым параметром из БП
//Вида :
//response.responseText =
//""ProcessEnd""
//Как ее правильно обработать? string.replace мне кажется не совсем верным решением
}
}
});
[/javascript]
Как правильно обработать строку вида:
response.responseText = ""ProcessEnd""?
И второй вопрос: в БП есть преднастроенная страница. Соответственно, если она вызывается, то страница раздела ничего не ждет. Параметр response.responseText приходит со значением null и метод в котором вызывается БП завешается. Что не так?
Здравствуйте!
Если в процессе есть преднастроенная страница, то должна открыться и пока этот элемент не будет выполнен, результирующий параметр будет null.
Обработка полностью зависит от Вашей задачи. Так как всегда будет приходить один и тот же параметр, то string.replace, как по мне, очень даже корректное решение.