В системе создали много бизнес процессов, запускающихся по таймеру, раз в минуту, раз в пять минут, и т.п. В процессах различные манипуляции с данными, чтение, изменение. Некоторые из процессов зависают в статусе "Выполняется". За месяц в журнале накапливается несколько десятков тысяч процессов, висящих в статусе "Выполняется". Подскажите пожалуйста, влияют ли висящие процессы на систему, нужно ли отменять эти процессы, или можно не обращать внимание?

Нравится

2 комментария

Здравствуйте, Рустам. 

Вы можете отменить выполнение данных бизнес процессов, если для вашего бизнесса не критично их выполнение. 

Но мы рекомендуем обратиться в техническую поддержку для анализа возникновения зависаний данных бизнес процессов. 

С уважением,
Богдан
 

Bogdan,

Да, непонятно сформулировал вопрос. Причины зависаний понятны, различные блокировки в БД. Вопрос в другом, эти висящие процессы, влияют ли на производительность системы? 

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

Подскажите пожалуйста какие пакеты необходимо добавить в зависимости для своего, чтоб в объекте заработал функционал описан в статье: https://academy.terrasoft.ua/docs/developer/ehlementy_interfejsa/strani…

 

Делаю в пакете Custom  все работает. То же самое в собственном пакете на собственном объекте, не отрабатывает. Номер не формируется, и ошибки нет при этом.

Нравится

4 комментария

Попробуйте добавить зависимость от пакет SalesEnterpriseSoftkey_ENU

Дима Вовченко,

А для Studio Creatio? Вопрос по этой версии. Почему-то не отрабатывает триггер.

 

Попробовал реализовать на студии и тоже столкнулся с этой проблемой. Похоже на недоработку либо я что-то упускаю. В любом случае пока лучше использовать пакет Custom.

Дима Вовченко,

Добрый день! Я разобрался с этим вопросом. Причина в следующем: при создании нового пакета автоматически проставляется признак "Компилировать в отдельную сборку", если ее снять, и перекомпелировать, то процессы отрабатывают корректно.

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

Добрый день. я хочу показать более подробную ошибку пользователю, который запускает бизнесс процесс из кастомной кнопки. Бизнесс процесс запускает C# код, который бросает исключение. Но я не могу найти информацию по результатам выполнения бизнесс процесса.

Я получаю вот такой JSON в коллбеке ProcessModuleUtilities.executeProcess

 

'"{\\"message\\":\\"Произошла ошибка во время выполнения процесса. Пожалуйста, проверьте журнал процессов для получения детальной информации\\",\\"success\\":false,\\"errorInfo\\":{\\"initialConfig\\":{\\"errorCode\\":null,\\"message\\":\\"Произошла ошибка во время выполнения процесса. Пожалуйста, проверьте журнал процессов для получения детальной информации\\",\\"stackTrace\\":null},\\"errorCode\\":null,\\"message\\":\\"Произошла ошибка во время выполнения процесса. Пожалуйста, проверьте журнал процессов для получения детальной информации\\",\\"stackTrace\\":null,\\"instanceId\\":\\"8a078ebd-540c-476a-aab0-98fa4c42ce83\\",\\"hasListeners\\":{},\\"events\\":{\\"destroyed\\":true}}}"'

 

Здесь есть instanceId (8a078ebd-540c-476a-aab0-98fa4c42ce83), но когда я пробую сделать поиск по нему в базе данных, то не нахожу никакой ошибки. 

если же убрать поиск по айди, тогда есть резульатт выполнения бизнесс процесса, но айди там другой.

 

Если же я выполню бизнес процесс успешно, тогда существует поле processId, по которому я могу найти текст ошибки.

 

Как другим способом можно найти ошибку выполнения бизнесс процесса который запускает C# код?

 

Спасибо

Нравится

3 комментария

Или может быть я делаю неправильно когда кидаю исключение в бизнес процессе. Как правильно создать исключение, если бизнес процесс должен быть остановлен?

Добрый день, instanceId о котором вы говорите не совсем относиться к бизнес-процессу. В данном случае удобнее всего искать в SysProcessLog сортировав его по дате создания и добавив фильтр на название нужного процесса. 

Что до самого исключения в бизнес-процессе, не знаю как конкретно вы бросаете исключение, могу предположить, что через try catch в скрипт-таске. Если так, то это правильный метод.

спасибо за ответ. но данное решение работает когда я вручную захожу и проверяю результат. как мне получить текст ошибки из кода, чтоб потом показать на диалоге? сделать селект последней ошибки по названию бизнес процесса?

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

Как реализовать функционал который позволит в письме поставить кнопку при нажатии которой в Creatio запуститься процесс? 
-------------

1 - Мы отправляем письмо с кнопкой контакту
2 - пользователь получает письмо в почте email
3 - нажимает в письме на кнопку 
4 - в Creatio запускается процесс

Нравится

1 комментарий
Лучший ответ

Здравсвтуйте, 

Для выполнения подобной логики реализован сервис ProcessEngineService.svc( подробнее тут). 

Соотвественно для решения вашей задачи вам нужно макросом наполнить ссылку параметрами процесса. 

С уважением,
Юрий.

Здравсвтуйте, 

Для выполнения подобной логики реализован сервис ProcessEngineService.svc( подробнее тут). 

Соотвественно для решения вашей задачи вам нужно макросом наполнить ссылку параметрами процесса. 

С уважением,
Юрий.

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

Добрый день, подскажите как можно настроить визуализацию коллекции на преднастроенной странице? Есть БП который читает коллекцию и преднастроенная страница с параметром “Сериализуемый список составных значений” и нужными полями. Не могу понять как вывести теперь нужный список на страницу визуально. Заранее спасибо.

Нравится

2 комментария

Добрый день Виталий,

 

Необходимо пройти по коллекции способом, который описывался в этом треде, в результате будет получен текстовый параметр со значениями. А дальше этот текстовый параметр можно распарсить и получить необходимый визуальный результат.

 

С уважением,

Олег

Oleg Drobina,

Пытаюсь в тестовом БП просто читать коллекцию СкриптТаском перевести ее в String и отобразить на преднастроенной странице в текстовом поле, но значение всегда пустое.

Пробовал код с документации:

var list = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");

var sb = new StringBuilder();

foreach (ICompositeObject item in list) {

   if (item.TryGetValue<string>("Name", out string value)) {

       sb.Append(value).Append( " | ");

   }

}

Set<string>("ProcessSchemaParameter1", sb.ToString());

return true;

 

И тот что в  треде, не могу понять что упускаю.

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

Приветствую!

 

Есть задача через БП выгружать печатную форму счета. Сам файл формы получаем с помощью элемента "Обработать файл".

Как далее его передать на выгрузку? Может у кого есть подобный пример реализации стандартными средствами или средствами разработки.

Нравится

1 комментарий

Григорий, добрый день!

Так просто из бп выгрузить файл не получится. В нём можно только работать с ним (например, прикрепить к письму) или добавить на деталь "Файлы и Ссылки". Сама выгрузка реализована в методе _downloadReport клиентского модуля FastReportService. Для выгрузки файла в бп придется подстраиваться под эту логику.

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

Добрый день.

После обновления до 7.18.5 на среде on-site перестали открываться карточки редактирования по БП, открываются только через CTI панель. В статье https://academy.terrasoft.ua/docs/user/razvertyvanie_onsite/windows_net_framework/nastroika_vebsoketov/nastroit_vebsokety указанны 3 способа проверки корректной настройки WebSocket-тов. 2 из них у меня проходят успешно, а 3-й как раз открытие карточек из БП. Все рекомендации из статьи выполнил.

Возможно есть еще настройки на которые надо обратить внимание?

Спасибо.

Нравится

1 комментарий

Добрый день.
Для корректной работы Websockets нужно проверить:
1)Убедиться что в Windows установлен компонент: Application Development - WebSocket Protocol
2) Во всех байндингах сайта должен быть указан один и тот же порт.
3) Настройка пула [Maximum Worker Process] должна иметь значение "1"
4) В Web.config загрузчика и приложения, на всех нодах фермы, должен быть указан один и тот-же machineKey
5) TenantId не должны дублироваться с разными значениями, как в одном и том-же web.config, так и web.config загрузчика и приложения одной ноды.
6)Установлен ли протокол использования вебсокетов для прокси-сервера, если он используется в вашей локальной сети.
7) Настройки антивируса и Firewall. Если нет возможности отключить на сервере эти программы, добавьте IP-адрес и порт вашего сайта Creatio в список исключений для входящих и исходящих потоков.
8) Наличие расширений и надстроек web-браузера, в том числе VPN. Расширения могут блокировать работу вебсокетов.

Если websocket-ы работают корректно, а страница редактирования не открывается, то нужно проверить параметр "portForClientConnection" в web.config.
Укажите в нем порт на котором работает приложение.

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

Добрый день. Нужно выполнять отмену процесса прямо из C#. Я знаю, что можно при удалении записи сделать так entity.DeleteWithCancelProcess, но такой вариант не подходит, запись не надо удалять. 

Кто-то сталкивался с такой задачей?

Нравится

1 комментарий

Добрый день!

Рекомендую ознакомиться с данными обсуждениями:

https://community.terrasoft.ua/articles/otmenit-vypolnyaemyyzavisshiy-b…

https://community.terrasoft.ua/questions/prinuditelnoe-zavershenie-proc…

https://community.terrasoft.ua/questions/zavershenie-processov-v-sostoy…

https://community.terrasoft.ua/questions/zavershenie-bp-po-api

В них и подымается тема отмены бп через код.

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

Доброго времени суток!

 

Есть БП и в нем есть параметр в которой записывается результат. И нужно по завершению БП через JS получить содержимое параметра. Как это можно реализовать?

Нравится

3 комментария

Георгий, какая целевая задача в реализации?
Вы можете записать результат процесса, например, в колонку или временную таблицу и потом распарсить данные как необходимо.

с помощью сообщения по веб сокету на страницу редактирования отправить нужный параметр , после завершения элемента процесса

Столкнулся с такой же потребностью. В методе runProcess модуля ProcessEngineService предусмотрена передача resultParameterNames, где можно указать значения которые нужно вернуть, но ответ приходит до завершения процесса и не все параметры успевают заполниться. Как заставить систему ожидать завершения процесса прежде чем вернуть ответ?

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

В Бизнес процессе получаю коллекцию данных.

Далее у меня идет Задание-сценарий.

 

Как в задании-сценарии получить эту коллекцию?

Нравится

1 комментарий

Всё просто.

 

Надо добавить в БП новый параметр Коллекция записей и присвоить ему значение из Параметра процесса.

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