Добрый день.

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

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

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

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

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

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

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

Добрый день!

Работаю в бизнес-процессе.

Необходимо поместить в одну из колонок детали с типом Строка значение из Справочника, но не Id, а то, что находится в колонке Название (пример: НЕ "b88bb1b9-6424-44c3-ac54-d601b2465197", а "очная проверка"). Если пользоваться Формула, то подставляются Id. Как решить данную проблему?

Нравится

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

Построить запрос в соответствующую таблицу по полученному значению.
Пример, Исполнитель - если он ссылается на справочник Контакт, то после элемента ReadDataUserTask2, добавить еще один элемент "Читать данные (новый элемент)", из таблицы Контакт, где Id =  ReadDataUserTask2.1-ый элемент.резкол.Исполнитель, читать колонку - Название, а в этой формуле уже использовать "Читать данные (новый элемент)".1-ый элемент.резкол.Название
 

Построить запрос в соответствующую таблицу по полученному значению.
Пример, Исполнитель - если он ссылается на справочник Контакт, то после элемента ReadDataUserTask2, добавить еще один элемент "Читать данные (новый элемент)", из таблицы Контакт, где Id =  ReadDataUserTask2.1-ый элемент.резкол.Исполнитель, читать колонку - Название, а в этой формуле уже использовать "Читать данные (новый элемент)".1-ый элемент.резкол.Название
 

Литвинко Павел,

Спасибо!

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

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

 

Нравится

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

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

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

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

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

Процесс запускается по конкретному контакту

Задаётся вопрос пользователю 

Открывается страница редактирования (тек.контакт) 

После чего нужно проверить добавил ли пользователь *Дату создания контакта (Для чего и собственно открывается страница редактирования)

Пробовал через условный сравнить значение  (Допущена ошибка в формуле: Используется недопустимый оператор) **Естественно ожидал)))

Вопрос в том, что как можно создать что-то похожее на логическое если (Если Дата заполнена--Ю процесс останов) если нет открыть страницу редактирования 

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

Нравится

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

вы сравниваете число и дату, вот вам и ошибка, когда сравниваю дату все ок, и не проверяйте пустоту даты сравнением  == или  != , вам надо проверять больше ли она минимально возможной даты DateTime.MinValue

вы сравниваете число и дату, вот вам и ошибка, когда сравниваю дату все ок, и не проверяйте пустоту даты сравнением  == или  != , вам надо проверять больше ли она минимально возможной даты DateTime.MinValue

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

Предлагаю во все подобные меню подбора значения сравнения с датой/временем, добавить пункт "Текущее значение даты", это поможет во многих случаях, аналитики и формирования логики в БП, завязанных на текущий момент времени.

Например позволит просто определить находится ли отметка времени в прошлом или будущем.

 

P.S.
Так же, в этом меню незаслуженно обделены Минуты, их часто не хватает для быстрых процессов.

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

Добрый вечер!

 

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

Разработчики рассмотрят ее в одной из будущих версий.

 

Спасибо, что делаете наш продукт лучше!

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