Здравствуйте.
Подскажите, как отловить сигнал завершения БП со страницы раздела. БП запускается с этой же страницы. А после получения сигнала о завершении, выполнить произвольную функцию.
БП со страницы раздела вызываю следующим кодом:
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 символами.
Здравствуйте, Алексей. Спасибо за ответ. Возможно я что-то делаю не правильно. Воспользывался вашим советом. Вызываю БП со страницы раздела следующим методом:
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 = //"<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">"ProcessEnd"</string>" //Как ее правильно обработать? string.replace мне кажется не совсем верным решением } } });
Как правильно обработать строку вида:
response.responseText = ""ProcessEnd""?
И второй вопрос: в БП есть преднастроенная страница. Соответственно, если она вызывается, то страница раздела ничего не ждет. Параметр response.responseText приходит со значением null и метод в котором вызывается БП завешается. Что не так?
Здравствуйте!
Если в процессе есть преднастроенная страница, то должна открыться и пока этот элемент не будет выполнен, результирующий параметр будет null.
Обработка полностью зависит от Вашей задачи. Так как всегда будет приходить один и тот же параметр, то string.replace, как по мне, очень даже корректное решение.