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

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

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. 

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

Доброго дня, в 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.

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

Добрый день! 

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

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

Нравится

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

Добрый день.

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

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

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

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

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

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 комментария

Добрый день.

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

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



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



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

 

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

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

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

После развертывания 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. Спасибо!

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

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

Вопрос. 

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

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

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

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

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

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

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

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

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

Нравится

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

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

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

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



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



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

 

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

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

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

Кейс такой нужно писать логи через 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 секунды, после чего модуль вернулся в строй. Очистка теперь работает пользовательскими инструментами. Вопрос закрыт.

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

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

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

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

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

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

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

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

 

Нравится

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

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

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