insert
Последовательность
Service_Creatio_customer_center_edition
#7.18

Добрый день всем.

Использовал такую конструкцию

insert.Set(ColumnName, Column.SqlText($"( NEXT VALUE FOR [dbo].[" + SequenceName + "])"));

Чтобы вставлять в инсерте значения из последовательности. Сейчас такая конструкция не работает так как после обновления Column.SqlText() считается устаревшим.

Необходимо вставлять значения именно и вставляю в большом количестве. Триггер на БД не подходит, так как не всегда нужно это делать.

Есть ли альтернативы для применения такой схемы?

Нравится

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

Добрый день,

 

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

Terrasoft.Core.DB.Sequence sequence = new Terrasoft.Core.DB.Sequence(UserConnection, "CountBy1");
int result = sequence.GetNextValue();
Set<int>("SeqResult", result);
return true;

Этот код я использовал в тестовой скрипт-таске для проверки получения следующего значения sequence и его увеличения. Действительно, он работает, увеличивает значение и берет его же (нужно заменить CountBy1 на название Вашего sequence). То есть в Вашем коде нужно взять result и прокинуть в аргумент Set метода и будет ровно точно тот же результат, что и при использовании Column.SqlText. 

Показать все комментарии
лендинги
DevLabs
Service_Creatio_customer_center_edition
8.0

Доброго дня, в creatio не приходить значення поля, якщо заповнити його функцією refferer (javascript). Сайт на Wordpress, контактна форма створена через Contact Form 7, коннектор використовую з маркетплейса https://marketplace.creatio.com/app/wordpress-plug-creatio 

При переході на сторінку з формою бачу заповнене поле, відправляю форму - в creatio значення поля не приходить, при чому, якщо це ж поле заповнити вручну, все ок. Якщо ж змінити автозаповнене, дописати декілька символів, то також значення не приходить, але якщо значення поля скопіювати і вставити вручну, то все приходить. 

В чому може бути проблема?

Нравится

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

Артем, доброго дня!

 

Рекомендую звернутися з цим питанням в коментарях https://community.creatio.com/articles/bpmonline-plugin-wordpress-gravi…. Скоріш за все питання в особливостях збереження данних, заповнених функцією refferer.

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

Добрый день! 

Подскажите, пожалуйста, как можно через Api получить историю обращений клиента по email ?

Может есть пример запроса ?

Нравится

0 комментариев
Показать все комментарии
цикл
Бизнес-процессы
Service_Creatio_customer_center_edition
7.17

Добрый день.

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

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

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

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

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

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. Спасибо за совет, я и забыл что есть ограничение)

Показать все комментарии
Дашборд
права доступа
права
Service_Creatio_customer_center_edition
#7.18

Добрый день! Подскажите, пожалуйста, где сделать кнопку "Настроить права доступа" в панели итогов в разделе Единое окно активной? На одном проекте активна, а на другом нет. Не понимаю, где искатьИзображение удалено.

Нравится

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

Добрый день.

Может прав нет у УЗ под которой вы авторизованы?

Добрый день, Алёна



В нашей системе вы можете настраивать права доступа по объектам. В данном случае как объект мы рассматриваем раздел "Единое окно".



Если для данного объекта не используется ограничение доступа по записям, то все пользователи имеют полный доступ ко всем итогам в системе. Это значит, что кнопка [Настроить права доступа] в меню действий будет неактивной (серой).

 

Если ограничение по записям используется, то права доступа на отдельные панели итогов настраиваются по действию [Настроить права доступа] меню действий.

Показать все комментарии
exchangelistener
Service_Creatio_customer_center_edition
#7.18

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

После развертывания on-site версии Creatio 7.18.5 и настройки через Docker сервиса Exchange Listener появилась проблема.

В панели писем справа не отображаются письма из почтового ящика, хотя фактически они в ящике есть. 

При попытке подключения к почтовому ящику в логах docker  выдаёт ошибку

 

[ExchangeListener.Service.ServiceFactory] 2022-01-20 12:36:34,447 [12] INFO : [e24a41bc-2438-4c4b-bad9-a112626a7c22] [teachersimulatorfeedback@gmail.com] Successfully loaded EmailMessage MessageId = '<c4e850d7-aa3a-4268-96b3-f3014b1e4e6f@gmail.com>', Id = '<c4e850d7-aa3a-4268-96b3-f3014b1e4e6f@gmail.com>', Subject = 'Тестовое сообщение Creatio'.
 
[ListenerBase.DataSend.EventDataSender] 2022-01-20 12:36:34,447 [12] INFO : [e24a41bc-2438-4c4b-bad9-a112626a7c22] [teachersimulatorfeedback@gmail.com] EventDataSender send 100 bytes to http://localhost:83/0/ServiceModel/ExchangeListenerService.svc/ProcessBinarySerializedEmail
 
[ListenerBase.Email.Load.BaseEmailEventProcessor] 2022-01-20 12:36:34,449 [5] ERROR: [e24a41bc-2438-4c4b-bad9-a112626a7c22] Mailbox teachersimulatorfeedback@gmail.com: error sending emails ['12' in folder INBOX] to http://localhost:83/0/ServiceModel/ExchangeListenerService.svc/NewEmail.
 
System.Net.Http.HttpRequestException: Cannot assign requested address
 
 ---> System.Net.Sockets.SocketException (99): Cannot assign requested address
 
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
 
   --- End of inner exception stack trace ---

Выглядит, как будто доступ к ящику есть (видит темы писем), но не может передать их в Creatio.

Окно проверки email-сервисов показывает все зеленые галочки, тестовые емэил высылаются.

 

Нравится

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

Владимир, добрый день! 



Запись "Cannot assign requested address" говорит о том, что микросервис Exchange Listener не имеет доступа к серверу приложений. Вам необходимо проверить значение системной настройки "BpmonlineExchangeEventsEndpointUrl". Для корректного получения почты в адресе настройки должно быть указано доменное имя сайта или Ip. Если Вы указали в адресе "localhost", загрузка писем не будет проходить.

Владимир, добрый день! 



Запись "Cannot assign requested address" говорит о том, что микросервис Exchange Listener не имеет доступа к серверу приложений. Вам необходимо проверить значение системной настройки "BpmonlineExchangeEventsEndpointUrl". Для корректного получения почты в адресе настройки должно быть указано доменное имя сайта или Ip. Если Вы указали в адресе "localhost", загрузка писем не будет проходить.

Lev Kuptsov,

Письма начали загружаться после замены localhost на реальный ip. Спасибо!

Показать все комментарии
бизнес-процесс
Портал самообслуживания
Service_Creatio_customer_center_edition
7.17

Добрый день, коллеги.

Вопрос. 

Есть группа "офисные сотрудники"

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

Пользователи создаются не  в ручную. Они попадают в эту группу через ADFS.

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

Мне нужно что бы в Creatio  контрагент проставлялся.

Можно это через БП ?

Я так прикинул, что стартовый сигнал должен быть - создание новой записи в объекте "Вхождение пользователя в роли" в фильтре роль "офисные сотрудники"

Но вот как быть дальше? я пробовал создать бд, но контрагент не проставляется.

Можете подсказать?

Нравится

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

Добрый день, Марк. 

Изменять контрагента в карточке контакта можно через БП.

Как настроить стартовый сигнал для данного кейса - зависит от условий создания данных контактов. Главное - чтобы триггер отрабатывал при выполнении условий. 



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



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

 

Показать все комментарии
RabbitMQ
Develop
nlog
Service_Creatio_customer_center_edition
#7.18

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

Столкнулся со следующей проблемой.

Кейс такой нужно писать логи через NLog в очереди RabbitMQ.

Для этого использую библиотеку Nlog.RabbitMQ.Target.dll

Добавляю ее в папку MyApp\bin\ 

Затем настраиваю файлы nlog.config:

nlog.targets



        

    

    

    

    

    

    

    

                xsi:type="RabbitMQ"

                appid="CreatioDemo"

                topic="${uppercase:${level}}"

                username="${rmqUser}" 

                password="${rmqPassword}" 

                hostname="${rmqHost}" 

                exchange="${rmqExchange}"

                exchangeType="topic"

                port="${rmqvPort}"

                vhost="${rmqvHost}"

                layout="${Date} [${ThreadIdOrName}] ${uppercase:${level}} ${UserName} ${MethodName} - ${Message}"

                messageSource="nlog://${machinename}/${logger}"

                useJSON ="true">

            

            

 

при перезапуске пула конект к Rabbit создается но логи не пишуться.

Для этого нужно добавить Nlog.RabbitMQ.Target.dll в папку MyApp\Terrasoft.WebApp\bin\

И тут возникает проблема при перезапуске пула или при логине в систему:

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

[FileLoadException: Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]

   StackExchange.Redis.PhysicalConnection.BeginConnectAsync(LogProxy log) +0

   StackExchange.Redis.PhysicalBridge.GetConnection(LogProxy log) +461

   StackExchange.Redis.ServerEndPoint.CreateBridge(ConnectionType type, LogProxy log) +98

   StackExchange.Redis.ServerEndPoint.GetBridge(ConnectionType type, Boolean create, LogProxy log) +60

   StackExchange.Redis.ConnectionMultiplexer.ActivateAllServers(LogProxy log) +195

   StackExchange.Redis.d__142.MoveNext() +7816

[AggregateException: One or more errors occurred.]

   System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +4593189

   System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +13992992

   StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Object configuration, TextWriter log) +220

   Terrasoft.Redis.StackExchangeAdapters.RedisClientsManagerAdapter..ctor(String connectionStringName, RedisConfigSection configSection) +273

 

Проверил версию  System.Threading.Tasks.Extensions в сборке Nlog.RabbitMQ.Target.dll  и ту что используется в Ceratio - совпадают.

Подскажите как можно это исправить?

Нравится

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

Алексей, добрый день!

Исходя их ошибки попробуйте перезапустить redis.

Поскольку на данный момент система не поддерживает внедрение Nlog.RabbitMQ.Target.dll, то более детальной рекомендации мы дать не можем. Советую ознакомиться с этим обсуждением.

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

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

Давным давно был установлен Change log for Creatio от samarasoft и настроен сбор данных по изменениям контактов, звонков, обращений и чатов.

В течение 4 лет данный модуль собирал данные и не чистился: логи копились годами, а далее систему отдали мне в управление.

Поняв, что это не нормально, в настройках журналирования Change log for Creatio я выбрал очистку логов, указал для теста дату очистки и нажал start.

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

Через 30 секунд я получил подтверждение запроса с уже подозрительным количеством underfined ?

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

Нажав да, процесс не начался, а логов осталось ровно столько же сколько было.

 

В системе ~239 млн записей логов и полагаю, что модуль просто зависает в попытке выполнить очистку.

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

Вопрос: можно ли используя SQL TRUNCATE SmrLoggingRecord просто очистить эти логи не поломая систему и не уничтожив работу модуля?

В описании модуля техническая поддержка решения предоставляется только через ответы на Community и, к сожалению, не к кому обратиться кроме вас, уважаемое сообщество. Прошу помочь очистить табличку и вернуть в работу модуль.

Нравится

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

SQL запрос по TRUNCATE SmrLoggingRecord полностью решил проблему. Записи очистились за 3 секунды, после чего модуль вернулся в строй. Очистка теперь работает пользовательскими инструментами. Вопрос закрыт.

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

 

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

 

Для того, чтобы ничего не поломать, можно сначала выполнить удаление данных на тестовой копии, либо договориться с поддержкой, чтобы они в Ваше не рабочее время сделали бекап Вашей базы на случай, если Ваши действия удалят какие-то нужные данные. А самому попробовать выполнить удаление, после удаления проверить, если все работает, так и оставить. Если будут проблемы, написать в поддержку и попросить переразвернуть базу из бекапа. Но ещё раз обращаю Ваше внимание, что все это нужно сделать не в рабочее время, чтобы в случае неудачного обновления успеть переразвернуть базу последней копией.

Приложение у нас развернуто onsite, Standalone-приложение.

Пачками удалить 239 млн не выйдет, так как запрос delete top просто положит БД.

"Попробовать сделать и посмотреть, что получится" — это не совсем тот ответ, что я ожидал получить.

 

Возможно ли связаться как-то с samarasoft, чтоб они могли указать на возможные взаимосвязи, если мы через truncate очистим всю таблицу разом?

SQL запрос по TRUNCATE SmrLoggingRecord полностью решил проблему. Записи очистились за 3 секунды, после чего модуль вернулся в строй. Очистка теперь работает пользовательскими инструментами. Вопрос закрыт.

Показать все комментарии
Актуализация
права доступа
Service_Creatio_customer_center_edition
7.17

Добрый день, коллеги.

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

После переноса пакета не тест, все прекрасно кроме одного. Сотрудник в этой функциональной роли не видит обращения, хотя если зайти в права раздела обращений то у этой роли есть  по операциям на чтение. а среди прав на запись есть права на записи от всех пользователей на чтение.

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

И  все становится прекрасно.

Почему при переносе не работает актуализация? 

И можно ли запустить процесс на актуализацию прав к записям через SQL  скрипт?

 

Нравится

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

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

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