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

 

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

 

Нравится

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# код?

 

Спасибо

Нравится

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

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

Добрый день, 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 комментария
Лучший ответ

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

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

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

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