Существует ли возможность создание пользователя, функциональной или организационной роли с помощью бизнес процесса (или иным способом пр. скриптом в БП)?

 

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

 

Нравится

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

Добрый день.



Описанную логику можно реализовать с помощью ScripTask элемента в бизнес процессе.

Подробнее про элемент процесса [Задание-сценарий]:

https://academy.terrasoft.ua/docs/7-17/user/biznes_processy/spravka_po_…



Также вы можете создавать пользователя с помощью событийного слоя, подробнее на сайте:

https://academy.terrasoft.ua/docs/7-17/developer/back_end_razrabotka/bi…



Также рекомендую ознакомиться с другим постом, в нем подробно рассматривалась логика добавления пользователя:

https://community.terrasoft.ua/questions/zapusk-processa-po-sozdaniyu-p…

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

Как в процессе реализовать сохранение и обновление страницы? 

----

Пример: 

написание процесса, который запускается по тригеру - изменение значения в поле карточки, после чего запускаются определенные действия процесса которые меняют другое поле. 

Необходимо что бы клиент видел изменения в другом поле без нажатия на кнопку "СОХРАНИТЬ" что приводит к сохранению данных и обновлению страницы.

Нравится

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

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

 

Спасибо за вопрос!

 

К сожалению, это невозможно реализовать базовыми средствами, однако, есть несколько обходных решений:

 

1) Приложение Reload data button for Creatio, которое позволяет быстро обновить данные на странице без перезагрузки:

https://marketplace.terrasoft.ua/app/reload-data-button-creatio

 

2) Реализовать JavaScript, которые будут выводить значение в поле:

https://academy.terrasoft.ua/documents/technic-sdk/7-15/ustanovka-dlya-…

 

С уважением,

Анастасия

Anastasiia Lazurenko,

Огромное спасибо за ответ. 

Жалко что Creatio нет такого в коробке

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

Добрый день. я хочу показать более подробную ошибку пользователю, который запускает бизнесс процесс из кастомной кнопки. Бизнесс процесс запускает 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# код?

 

Спасибо

Нравится

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

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

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

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

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

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

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

Добрый день.

В карточке обращения есть поля группа объекта и филиал и контрагент (объект)

В разделе контрагенты (объект) так же выведены эти поля.

Необходимо в уже ранее созданных обращениях заполнить  поле филиал и группа объекта по данным контрагента.

Дополнительно я создал логическое поле в карточке обращения.

Посмотрел ролик академии по работе с большим кол-вом записей.

Tech Hour: Как обрабатывать множество записей в Creatio. Все способы - YouTube

Решил попробовать сделать по самому первому кейсу.

Мой процесс выглядит так :

Изображение удалено.

По шагам:

читаем кол-во  записей, фильтрую их там где поле филиал, группа объектов = пусто, контрагент = заполнен. Логическое поле с значением = нет.

Далее идет условный поток, кол-во записей не равно 0.

Читаем первую запись из нашего кол-ва записей, фильтра аналогичен как  и  в первом шаге.

Читать данные контрагента(объекта)

Тут фильтр id = объекту в шаге читать первую запись из обращения.

Изменить данные

Тут id  обращения = читать первую запись из обращения.Первый элемент результирующей коллекции.Id

Поле объект = читать данные объекта.Первый элемент результирующей коллекции.Id

Поле филиал  и группа объектов пусто . Логическое поле = нет.

Какие поля изменить 

Филиал = #читать данные объекта.Первый элемент результирующей коллекции.Филиал#]

#читать данные объекта.Первый элемент результирующей коллекции.Группа#]

Логическое поле = #Логическое значение.Да#]

Далее идем в первый шаг  и из него если  равно 0 то на выход.

Процесс запускаю , все работает , но стоит обработать только 100 записей, как больше они  не обрабатываются. Но процесс выполняется.

В чем может быть дело?

Может есть альтернатива как выполнить  задачи в БП ? без программирования?

 

Нравится

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

попробуйте увеличить "максимальное число повторений" https://academy.terrasoft.ru/docs/user/biznes_processy/nastrojka_proces…

попробуйте увеличить "максимальное число повторений" https://academy.terrasoft.ru/docs/user/biznes_processy/nastrojka_proces…

Владимир Соколов,

 

Добрый день.

Действительно, поменял лимит на 250 и процесс обработал 250. Спасибо за совет, я и забыл что есть ограничение)

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

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

Подскажите, пожалуйста, как в БП я могу получить коллекцию записей, на которые распространяется право на чтение для пользователя определенной роли?

Нравится

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

Арнур, добрый день!

Прошу описать вашу бизнес-задачу, не совсем ясно какого результата вам необходимо достичь.

Без описания бизнес-задачи сложно что-то сказать. Однако, в теории это возможно реализовать в скрипт-таске. Для этого необходимо вычитать данные с таблицы Sys[Объект]Right и на основании полученных записей в этой же скрипт-таске получить необходимую коллекцию-записей.

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

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

В ходе настройки БП появилась задача по настройке прав доступа к записям раздела сотрудникам-пользователям системы. Соответственно, добавил элемент "Изменить права доступа". Если вкратце о БП, то логика такая: находим Guid сотрудника-консультанта, затем передаем строковое значение этого Guid в переменную ConsultantIdString БП, затем начинаем новую выборку по контактам, чьим консультантом является пользователь с ConsultantId = ConsultantIdString, затем начинаем цикл, в котором забираем права доступа (чтение, редактирование, удаление) у консультанта ко всем записям, которые не соответствуют условию ConsultantId = ConsultantIdString. Дальше даем доступ (чтение, редактирование, удаление) ко всем записям которые соответствуют условию ConsultantId = ConsultantIdString. Когда просматриваю данные трассировки, то выходит следующее: 

"Параметр": "Список прав на удаление",

            "Значение": {

                "Перед выполнением": "[{Id:\"a6bca657-858b-404c-9f74-fed573d2bee4\",ParameterName:\"Employee1\",Name:\"Консультант\",CanRead:true,CanEdit:true,CanDelete:true,Source:\"3\",Grantee:\"Employee\",Value:\"[#Lookup.16be3651-8fe2-4159-8dd0-a803d4683dd3.5b40e682-84ae-45d8-9d24-75f46fa557b9#]\"}]",

                "После выполнения": "[{Id:\"a6bca657-858b-404c-9f74-fed573d2bee4\",ParameterName:\"Employee1\",Name:\"Консультант\",CanRead:true,CanEdit:true,CanDelete:true,Source:\"3\",Grantee:\"Employee\",Value:\"[#Lookup.16be3651-8fe2-4159-8dd0-a803d4683dd3.5b40e682-84ae-45d8-9d24-75f46fa557b9#]\"}]"

            }

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

Также прикрепил скрин самого БП и элемента по удалению прав доступа для консультантов.

Прикрепленные файлы

Нравится

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

Арнур Келгенбаев, здравствуйте!

Пример построения подобного процесса есть в документации.

То есть, у Вас должно быть включено администрирование прав по записям на объект. 

Далее Вы можете вычитать коллекцию записей, где пользователь консультант (если это поддержано Вашей версией приложения) и передать ее на обработку в подпроцесс, где элементом "Изменить права доступа" необходимо забрать права у всех ролей и пользователей и назначить нужные права пользователю-консультанту.

Sorotiuk Anna,

При настройке прав доступа к записям раздела "Контакт" во вкладке "Доступ к объекту" открыл пользователям с ролью "Консультант" доступ на чтение. Во вкладке "Доступ к записям по умолчанию: чтение" никаких настроек нет. Затем запустил БП, который дал консультанту право на чтение, изменение и удаление к 2 тестовым записям. В итоге в разделе консультант видит 238 записей. Вопрос: как можно проверить, по какой причине появились 236 записей? 

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

Коллеги, доброго дня!

Эксплуатируем систему уже 5 лет, накопились бизнес-процессы, которые более пользователями не используются. Смотрю в сторону того, чтобы их удалить, дабы не смущать людей и новых разработчиков. Хотелось поинтересоваться у знающих и опытных, насколько целесообразны такие процедуры, какие есть подводные камни и неочевидные выгоды.

Нравится

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

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

Владимир Соколов,

Старые версии бизнес процессов можно удалять через конфигурацию. Для того, чтобы понять, какую версию БП нужно удалить - необходимо знать Название версии БП (не заголовок). Его можно посмотреть в Дизайнере процессов, открыв данную версию. На вкладке "Настройки" в пол "Имя".

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

После внесения изменений в БП (добавлены фильтры по полям в стартовых сигналах), не получается его сохранить.

При попытке это сделать, вылезает окошко со следующей ошибкой:

Возникла ошибка при сохранении: Произошла одна или несколько ошибок.

При этом, если нажать на отмену и открыть БП заново, видно, что внесённые изменения сохранены. Но при этом скомпилировать внесённые изменения система не предлагает.

Где можно увидеть, что за ошибки возникли?

Прикрепленные файлы

Нравится

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

Попробуйте очистить Redis и перезапустить пул в IIS.

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

Сколько себя помню, при чтении или изменении в 90% случаев условием фильтрации объекта является ID

Кликать постоянно несколько раз что бы снова и снова добавлять его в условия для нового блока БП может напрягать (если активно пилишь БП)

Итого предлагаю:

1. При добавлении блока на чтение / изменение автоматом добавлять пунктом фильтрации ID

 

Изображение удалено.

2. Более лайтовый вариант, захаркодить "ID" первым, и уже выбранным, в выпадающем списке. 

Изображение удалено.

 

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

Добрый день,

 

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

 

Спасибо за выбор нашего продукта.

 

С уважением,

Кучер Виталина

Оператор

Группа компаний Terrasoft

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

Добрый день. Как создать бизнес процесс, который должен

открывать страницу новой записи в разделе и контролировать заполнены ли нужные поля в этой записи. (Без программирования). Я поняла, что нудно использовать элемент процесс "открыть страницу редактирования", но как контролировать заполнение нужных полей не понимаю.

 

Нравится

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

Попробуйте сделать так. Мне кажется должно сработать.

сделать эти поля обязательными , например

Попробуйте сделать так. Мне кажется должно сработать.

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