Добрый день! 
Подскажите, пожалуйста, как можно через 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:

<logger name="GrayLogLogger" writeTo="grayLogAppender" minlevel="Debug" final="true" />

nlog.targets

<extensions>
        <add assembly="Nlog.RabbitMQ.Target" />
    </extensions>
    <variable name="rmqHost" value="localhost" />
    <variable name="rmqUser" value="admin" />
    <variable name="rmqPassword" value="admin" />
    <variable name="rmqvHost" value="logs" />
    <variable name="rmqvPort" value="5672" />
    <variable name="rmqExchange" value="logs" />

<target name="grayLogAppender"
                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">
            <field key="threadid" layout="${threadid}" />
            <field key="machinename" layout="${machinename}" />

 

при перезапуске пула конект к 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.<ReconfigureAsync>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, или не были перенесены все необходимые данные.

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

Добрый день.

Есть необходимость перенести дашборды на другую среду.

Сами дашборды перенести не проблема.

Но как перенести настроенные права для них?

Нравится

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

Пока этого функционала нет в базовой версии и переносить права и орг. роли на другой стенд не рекомендуют, примеры также отсутствуют, но есть такое решение: 

 

Реализовать перенос настроек организационной структуры и прав доступа из одного стенда на другой можно с помощью SQL-скриптов. Для этого на эталонной среде необходимо сформировать insert-запросы на основании записей со следующих таблиц: 

 

- SysAdminUnit (Объект администрирования: пользователи и роли)
- SysUserInRole (Непосредственные вхождения пользователей в роли)
- SysFuncRoleInOrgRole (Вхождение функциональной роли в организационную)
- SysAdminOperation (Системные операции, если необходимо)
- SysAdminOperationGrantee (Доступ к системным операциям, если необходимо)
- SysEntitySchemaOperationRight (Доступ к объектам)
- SysEntitySchemaRecordDefRight (Доступ к записям по умолчанию)
- SysEntitySchemaColumnRight (Доступ к колонкам объекта)
- SysAdminUnitGrantedRight (Делегирование)
- SysWorkplace – (Рабочее место пользователя)
- SysAdminUnitInWorkplace – (Пользователи в рабочем месте)
- SysModuleInWorkplace – (Раздел в рабочем месте)

 

Для формирования запросов можно воспользоваться Microsoft SQL Server Database Publishing Wizard и подобными инструментами. Полученный SQL-скрипт необходимо прикрепить к пакету (вкладка - "SQL-сценарии", https://academy.terrasoft.ru/documents/technic-sdk/7-15/obshchie-sveden… более старые версии и для более новых версий https://academy.terrasoft.ru/docs/developer/development_tools/developme…).

 

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

 

Эти работы необходимо выполнять не в бизнес-время.

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

 

Можете ознакомиться с решениями, предложенными в следующих постах: 

1. https://community.terrasoft.ru/questions/perenos-prav-dostupa

2. https://community.terrasoft.ru/questions/nastroyki-prav-dostupa-na-obek…

Спасибо ,  это я все сделал . Но может не правильно  выразился.

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

Пока этого функционала нет в базовой версии и переносить права и орг. роли на другой стенд не рекомендуют, примеры также отсутствуют, но есть такое решение: 

 

Реализовать перенос настроек организационной структуры и прав доступа из одного стенда на другой можно с помощью SQL-скриптов. Для этого на эталонной среде необходимо сформировать insert-запросы на основании записей со следующих таблиц: 

 

- SysAdminUnit (Объект администрирования: пользователи и роли)
- SysUserInRole (Непосредственные вхождения пользователей в роли)
- SysFuncRoleInOrgRole (Вхождение функциональной роли в организационную)
- SysAdminOperation (Системные операции, если необходимо)
- SysAdminOperationGrantee (Доступ к системным операциям, если необходимо)
- SysEntitySchemaOperationRight (Доступ к объектам)
- SysEntitySchemaRecordDefRight (Доступ к записям по умолчанию)
- SysEntitySchemaColumnRight (Доступ к колонкам объекта)
- SysAdminUnitGrantedRight (Делегирование)
- SysWorkplace – (Рабочее место пользователя)
- SysAdminUnitInWorkplace – (Пользователи в рабочем месте)
- SysModuleInWorkplace – (Раздел в рабочем месте)

 

Для формирования запросов можно воспользоваться Microsoft SQL Server Database Publishing Wizard и подобными инструментами. Полученный SQL-скрипт необходимо прикрепить к пакету (вкладка - "SQL-сценарии", https://academy.terrasoft.ru/documents/technic-sdk/7-15/obshchie-sveden… более старые версии и для более новых версий https://academy.terrasoft.ru/docs/developer/development_tools/developme…).

 

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

 

Эти работы необходимо выполнять не в бизнес-время.

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

Нужно чтобы система автоматически удаляла запись в справочнике через год с момента занесения 

Суть:

Нужно чтобы система автоматически убирала из справочника (Черный список Email адресов) email адреса через год после их внесения в справочник ЧС

Нравится

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

Tigran Gevorgyan пишет:
Что Вы имеете введу  "сделать отдельное представление"  Создать отдельный раздел,  записывать туда все записи из черного списка с полем даты создания и в БП определить запись которая произведена год назад и если да, то удалить запись из раздела и из справочника ?

Не совсем. Я имею ввиду на уровне базы данных создать представление (view), которое настроить таким образом, чтобы оно содержало нужные для удаления записи из черного списка (соответствовало условию дата создания больше года).

А потом для работы с ним из конфигурации создать новую EntitySchema.

 

Чтобы связать EntitySchema с представлением, необходимо убедиться в соблюдении следующих условий:
1. В свойствах объекта установлен признак “Представление в базе данных”.

2. Название объекта соответствует названию представления в БД.
3. Структура объекта и представления идентичны.

Со стороны приложения View воспринимается как обычный объект.

 

Посмотрите статью по этой ссылке там приведен пример работы с представлением. Возможно, так станет понятнее, о чём речь идет.

 

Tigran Gevorgyan пишет:
Я думая это можно как-то осуществить через системные настройки

На данном этапе не вижу необходимости в добавлении новой системной настройки и использовании её  в бизнес-процессе.

Добрый день.

 

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

 

Для определения, какие записи нужно удалять, Вы можете сделать отдельное представление, которое будет содержать все записи из справочника 'Черный список', которые были созданы год назад и раньше, и потом использовать его в БП.

Алла Савельева,

Добрый день. Спасибо за отклик!

Что Вы имеете введу  "сделать отдельное представление"  Создать отдельный раздел,  записывать туда все записи из черного списка с полем даты создания и в БП определить запись которая произведена год назад и если да, то удалить запись из раздела и из справочника ?

 

Алла Савельева,

 

Я думая это можно как-то осуществить через системные настройки, но к моему сожаления пока, что немогу найти в документации ничего подобного

 

Tigran Gevorgyan пишет:
Что Вы имеете введу  "сделать отдельное представление"  Создать отдельный раздел,  записывать туда все записи из черного списка с полем даты создания и в БП определить запись которая произведена год назад и если да, то удалить запись из раздела и из справочника ?

Не совсем. Я имею ввиду на уровне базы данных создать представление (view), которое настроить таким образом, чтобы оно содержало нужные для удаления записи из черного списка (соответствовало условию дата создания больше года).

А потом для работы с ним из конфигурации создать новую EntitySchema.

 

Чтобы связать EntitySchema с представлением, необходимо убедиться в соблюдении следующих условий:
1. В свойствах объекта установлен признак “Представление в базе данных”.

2. Название объекта соответствует названию представления в БД.
3. Структура объекта и представления идентичны.

Со стороны приложения View воспринимается как обычный объект.

 

Посмотрите статью по этой ссылке там приведен пример работы с представлением. Возможно, так станет понятнее, о чём речь идет.

 

Tigran Gevorgyan пишет:
Я думая это можно как-то осуществить через системные настройки

На данном этапе не вижу необходимости в добавлении новой системной настройки и использовании её  в бизнес-процессе.

Алла Савельева,

Спасибо))

Tigran Gevorgyan,

Если будут вопросы, обращайтесь

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