Вопрос:

При входе в Terrasoft 3.X под новыми пользователями выдается ошибка открытия конфигурации «Could not convert variant of type (NULL) into type (olestr)»

В чём может быть проблема?

Ответ:

Такое сообщение «Could not convert variant of type (Null) into type (OleStr)» говорит о том, что у пользователя нет доступа на свой контакт и/или контрагент.



Для решения нужно: 



1)       Авторизуйтесь в системе под администратором, перейдите в Администрирование-Пользователи

2)       Кликните правой кнопкой на пользователе, под которым возникает ошибка входа, Перейти к -> Контакт и Перейти к -> Контрагент

3)       На детали «Доступ» к контакту добавьте пользователя, под которым происходит сбой или группу, в которую он входит.

4)       На детали «Доступ» к контрагенту добавьте пользователя, под которым происходит сбой или группу, в которую он входит.

5)       Проверьте корректность авторизации пользователя.

Нравится

Поделиться

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

Вопрос:

Не удается синхронизировать почту/подключить новую почту к системе.  В настройках почтового провайдера использовались различные варианты параметров логина. Но система все равно пишет, что пароль указан неверно.

 

Ответ:

У сервисов почтового провайдера изменилась политика безопасности.

Например, чтобы корректно пользоваться почтой gmail через bpm'online, необходимо в учетной записи почты разрешить подключение сторонних программ.

Для разрешения подключения сторонних программ необходимо:

  1. Зайти в настройки аккаунта:Изображение удалено.

     

  2. Выбрать вкладку "Безопасность" Изображение удалено.

     

  3. Дать разрешение на подключение сторонних программ Изображение удалено.

     

Нравится

Поделиться

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

В некоторых случаях лучше использовать пароли приложений: https://support.google.com/accounts/answer/185833?hl=ru

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

Вопрос:

Осуществляем триггерную рассылку из кампании, но отклики получаем с перерывами в 2-3 дня.

Пробовали по рекомендации другого сотрудника поддержки менять шаг и триггер "шаг выполнен" кампании, но результат не изменился.

Как правильно настроить рассылку, чтобы всегда получать отклик?

Ответ:

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



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

Нравится

Поделиться

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

Вопрос:

Верификация выставлена на определенную роль. У пользователя нет данной роли. При первичном входе на страницу заявки он не видит «не свои» верификации. Но если он выполнит свою верификацию и следующим шагом будет создание следующей верификации не на его роль, то он ее видит и может выполнить. Чистка кеша ситуацию не изменила.

Пример кейса:

Пользователь1 проводит Верификацию1 (права по верификации по роли1). 

Далее Пользователь1 создает Верификацию2 и назначает ответственным Пользователя2.



Ожидаемый результат:

автор записи Верификация2 не видит эту запись. Верификация2 отображается только Пользователю2.

Верификация1 отображается только Пользователю1, Пользователю2 не отображается.

Ответ:

Для автора записи права на запись выдаются по умолчанию. Это можно проверить в настройках прав доступа на запись: https://academy.terrasoft.ru/documents/base/7-13/prava-dostupa



Если вы хотите снимать эти права с пользователя-автора записи, вы можете воспользоваться бизнес процессом. 



Примеры настройки изменения прав доступа на записи с помощью процессов в этой статье: https://academy.terrasoft.ru/documents/technic-bpms/7-12/upravlenie-pravami-dostupa-v-ramkah-biznes-processa.

Нравится

Поделиться

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

Вопрос:

При использовании функционала делегирования прав происходит непонятное распределение доступа.

Кейс:

Имеем пользователей системы №1, №2 и №3.

Для объекта Активности распределены права по записям:

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

В настройках пользователя права Пользователь №2  делегируем пользователю №1 и пользователю №3.

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

Как срабатывает делегирование сейчас:

Пользователи №1 и №3 получают права пользователя №2. При этом  пользователь №2 так же получает права на записи пользователей №1 и №3.

В настройках прав доступа активности, созданной под пользователем №1 отображается следующее:

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

Благодаря тому, что пользователь №2 получает права на просмотр записей обоих других пользователей, то пользователь №1 так же получает право на просмотр записей пользователя №3 и наоборот.

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

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

Ответ:

При делегировании прав Пользователь 3 и Пользователь 1 начинают неявно входить во все группы, в которые входит Пользователь 2. По сути это эквивалентно тому, что они оба бы вошли в эти группы в явном виде. Т.о. после делегирования:

 - Пользователь 2 по прежнему входит только в Подразделение1

 - Пользователь 3 входит уже не только в Подразделение2, но и в Подразделение1 (хотя это не отображается в списке его ролей)

 - Пользователь 1 входит уже не только в Подразделение3, но и в Подразделение1 (хотя это не отображается в списке его ролей)

 Т.о. в Подразделение1, пока активно описанное делигирование прав, входят все 3 пользователя.

 

 Учитывая настройки раздачи прав на новые записи по умолчанию, при создании новой записи Пользователем 3, права на эту запись получают Подразделение1 и Подразделение2 (при создании записи пользователем из Подразделение1 получают доступ все пользователи Подразделения1, аналогично Подразделение2 -> Подразделение2). 

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

Нравится

Поделиться

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

Вопрос:

Настраивал аутентификацию через LDAP. Дошел до параметра, где есть возможность сделать сквозную авторизацию, установил нужный параметр, но при переходе на страницу портала все равно запрашивает запрашивает логин  и пароль  в виде аутентификации windows:

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

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

Как решить вопрос с отображением окна доменной авторизации?

Ответ:

При первом входе в приложение браузер запрашивает доменный логин/пароль (см. рис. выше). Это связано с тем, что браузер по умолчанию не отправляет учетные данные текущего пользователя, и для доступа к ресурсу, требующего windows-авторизацию, идет каждый раз запрос доменных данных.

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

  • Internet Explorer

Браузер IE по умолчанию отправляет учетные данные ресурсу и дополнительный ввод логина/пароля не требуется.

  • Google Chrome

Переходим в настройки интернета на вкладку Security, выбираем Internet Zone и жмем на Custom Level.

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

Далее в самом низу выбираем User Authentication -> Logon -> Automatic logon with current user name and password.

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

Если мы не хотим настраивать для всех сайтов — можем добавить определенный адрес в доверенные (Trusted Sites) и для этой зоны выполнить соответствующие настройки.

Если сайт локальный, такие же настройки делаем для локальной зоны.

  • Firefox
  1. Запустите Firefox и в адресной строке введите about:config и нажмите ENTER.
  2. В строке фильтров укажите ключевой слово NTLM, в результате чего перед вами останется три параметра, нас интересует параметр   network.automatic-ntlm-auth.trusted-uris.
  3. Двойной  клик по данному параметру откроет окно с текстовым полем, куда можно внести список URL (через запятую), для которых будет поддерживаться автоматическая сквозная NTLM аутентификация. Формат такой: http://project-tc, https://work.bpmonline.com. Если необходимо добавить все сайты в домене (обычно это внутренний корпоративный домен), нужно указать: .bpmonline.com.

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

* Если окошко авторизации постоянно появляется при работе, вышеуказанные настройки выполнены, а ввод авторизационных данных не дает результатов (после ввода данных окошко появляется вновь и вновь), то необходимо открыть в браузере Developer Tools (Google Chrome) и посмотреть в секции Network последний запрос на сервер (причина окошка авторизации) перед появлением окошка. В таком примере был запрос вида /0/ServiceModel/MsgUtilService.svc/LogInMsgServer, и проблема решилась после очистки системной настройки "Библиотека обмена сообщениями по умолчанию".

 

* * To enable support for the WebSocket Protocol on Windows Server 2012, use the following steps:

1.Open Server Manager.

2.Under the Manage menu, click Add Roles and Features.

3.Select Role-based or Feature-based Installation, and then click Next.

4.Select the appropriate server, (your local server is selected by default), and then click Next.

5.Expand Web Server (IIS) in the Roles tree, then expand Web Server, and then expand Application Development.

6.Select WebSocket Protocol, and then click Next.

7.If no additional features are needed, click Next.

8.Click Install.

9.When the installation completes, click Close to exit the wizard.

Нравится

Поделиться

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

Вопрос:

Для условного потока элемента «Выполнить задачу» в конструкторе бизнес-процессов, доступен следующий вариант результатов условного потока (см. рисунок), данное отображение работало до версии 7.8 для нашего пользовательского элемента «Действие процесса» разработанного на основе элемента «Выполнить задачу», можно ли как-нибудь сделать такое же отображение для текущей версии BPM?

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

Ответ:

Для того, чтобы реализовать функционал на подобии элемента "Выполнить задачу" для пользовательского элемента, рекомендуется ознакомиться с реализацией в исходном коде элемента "ActivityUserTask" (метод GetResultParameterAllValues).

Нравится

Поделиться

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

Вопрос:

Возникла необходимость разобрать массив с большим кол-вом данным.  На академии такой пример не рассмотрен.

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



При настройке обработки ответа веб-сервиса, есть поле "Является массивом", при его активации, ответ конвертируется в интерфейс IObjectList, и записать его в параметрах бизнес процесса представляется возможным только с типом данных "Коллекция значений", что усложняет парсинг массива.



Вопросы:

Что за интерфейсы IObjectList/ICompositeObject/ICompositeObjectList, и как обрабатывать такой конвертированный массив?

Можно-ли обработать массив из ответа веб-сервиса и как это сделать?



Веб-сервис http://mysite.com:64123/0/rest/KmWebService/GenderSearchContact?GenderName={значение}, выборка по полу {Male/Female}

Выборка полей по каждому контакту: Id, Name, Phone

Ответ:

Пример реализации:

Сервис (схема):

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

Рекомендации: используйте контракты для передачи объектов, для формирования json, используйте возможности newtonsoft.json

Бизнес-процесс:

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



Сервис

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

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

Настройки элемента "Вызвать веб сервис"

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

Настройки элемента "Задание-сценарий":

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

Нравится

Поделиться

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

ICompositeObjectList представляет собой массив элементов ICompositeObject. Перебирается обычным циклом (foreach).

ICompositeObject - dictionary (ключ-значение).

Получить значение можно одним из 2х методов:

 

/// <summary>Returns inner value by key.</summary>
    /// <param name="key">The key.</param>
    /// <param name="valueType">Type of the value.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue(string key, Type valueType, out object value);
 
    /// <summary>Returns inner value by key.</summary>
    /// <typeparam name="TValueType">The type of the value.</typeparam>
    /// <param name="key">The key.</param>
    /// <param name="value">Result value.</param>
    bool TryGetValue<TValueType>(string key, out TValueType value);

 

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

Вопрос:

Можно ли загружать/выгружать пакеты в файловую систему, средствами WorkspaceConsole или другими методами, при этом не заходя в раздел [Конфигурация]?

Ответ:

Вышеперечисленные операции можно так же выполнить через WorkspaceConsole, установив в External tools (Visual Studio) эти команды (7.12.0.1808+

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

LoadPackagesToFileSystem [путь]\Terrasoft.Tools.WorkspaceConsole.exe (например, TSBpm\Bin\Debug\Terrasoft.Tools.WorkspaceConsole.exe)--operation=LoadPackagesToFileSystem --workspaceName=Default --webApplicationPath="[путь]\Terrasoft.WebApp" (например, TSBpm\Src\Lib\Terrasoft.WebApp.Loader\Terrasoft.WebApp)

 

LoadPackagesToDB [путь]\Terrasoft.Tools.WorkspaceConsole.exe--operation=LoadPackagesToDB --workspaceName=Default --webApplicationPath="[путь]\Terrasoft.WebApp"[v][v]



Примечание. Работа с флагом UseStaticFileContent.



При включенном флаге UseStaticFileContent для применения клиентских изменений модулей и объектов необходимо выполнить генерацию контента. Это действие выполняется при компиляции из приложения, а также из WorkspaceConsole.

При компиляции через WorkspaceConsole необходимо включить флаг UseStaticFileContent в app.config консоли.

В связи с тем, что для применения изменений необходимы дополнительные действия, использовать режим работы со статическим контентом НЕЛЬЗЯ при разработке исходных кодов в ФС.

Нравится

Поделиться

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

Вопрос:

Как реализовать отображение кнопки "Прослушать" в разделе Звонки?

Запись звонка создана, прикреплен аудиофайл mp3, также есть ссылка на mp3 специально для этой кнопки. Как эту кнопку вывести?

Ответ:

Для прослушивания звонков используется базовый аудиоплеер HTML5. Пример его использования Вы можете посмотреть в схеме CallSectionV2 из пакет CTIBase. Поиск выполняйте по слову audio.

Нравится

Поделиться

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

Каким образом реализовать передачу данных авторизации на удаленном сервере при получении потока?

 

Пожалуйста, опишите свой случай подробнее.

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