Как обычному пользователю узнать из контакта, что пользователь больше неактивен?

Нравится

5 комментариев

И такой же вопрос - как отфильтровать поле "Ответственный" по активным пользователям?

Владимир Соколов,

Необходимо добавить в блок attributes код:

Owner: {
   "lookupListConfig": {
      "filters": [
         {
            method: function() {
               return this.getOwnerFilters();
            }
         }
      ]
   }
},

и реализовать сам метод:

getOwnerFilters: function() {
    var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
    filterGroup.addItem(this.Terrasoft.createColumnFilterWithParameter(
        this.Terrasoft.ComparisonType.EQUAL,
        "IsActive",
        true));
    filterGroup.addItem(this.Terrasoft.createColumnIsNotNullFilter('[SysAdminUnit:Contact].Id'));
    return filterGroup;
},

Владимир Соколов,

Необходимо добавить в блок attributes код:

Owner: {
   "lookupListConfig": {
      "filters": [
         {
            method: function() {
               return this.getOwnerFilters();
            }
         }
      ]
   }
},

и реализовать сам метод:

getOwnerFilters: function() {
    var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
    filterGroup.addItem(this.Terrasoft.createColumnFilterWithParameter(
        this.Terrasoft.ComparisonType.EQUAL,
        "IsActive",
        true));
    filterGroup.addItem(this.Terrasoft.createColumnIsNotNullFilter('[SysAdminUnit:Contact].Id'));
    return filterGroup;
},

Для фильтрации необходимо добавить в блок attributes код:

Owner: {
   "lookupListConfig": {
      "filters": [
         {
            method: function() {
               return this.getOwnerFilters();
            }
         }
      ]
   }
},

и реализовать сам метод:

getOwnerFilters: function() {
    var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
    filterGroup.addItem(this.Terrasoft.createColumnFilterWithParameter(
        this.Terrasoft.ComparisonType.EQUAL,
        "IsActive",
        true));
    filterGroup.addItem(this.Terrasoft.createColumnIsNotNullFilter('[SysAdminUnit:Contact].Id'));
    return filterGroup;
},

Неактивен вышел из системы или убрали галочку Активен в пользователе?

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

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

Нравится

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

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

 

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

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

Проделал все по инструкции https://academy.terrasoft.ru/documents/marketing/7-7/ustanovka-i-nastroyka-prilozheniya-bpmonline-site

И в итоге получил такую вот ошибку: 

Изображение удалено.Кто сталкивался с данной проблемой или знает как решить ее - делитесь опытом)

Нравится

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

Кто не силен в настройке самой винды и разнообразных "прав и безопасностей"  рекомендую не создавать новый сайт под БПМ, а использовать под свои нужды сайт по умолчанию - "Default Site", который идет вместе с IIS.

Просто переименовать его и перенастроить согласно этой же Инструкции.

А содержимое сайта залить в C:\inetpub\wwwroot

Скорее всего вы установили не все роли и компоненты IIS. Либо же вы используете настройки для работы по https, вместо http. Это можно проверить https://academy.terrasoft.ru/documents/sales-enterprise/7-11/perevod-bp…

А что за ОС?

Что на странице браузера (IE)? 

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

Добрый день!

Почему при добавлении комментария к сообщению ленты само сообщение не поднимается вверх в коммуникационной панели?  Можно ли исправить данную логику?

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

Здравствуйте, Александр!

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

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

Настроили все по инструкции с сайта 7.11 Service Enterprise W2k16 RUS, SQL 2016 RUS.

Первая синхронизация прошла успешно.

Потом таймер поставили на 1 час, в АД добавили в тестовую группу еще одного пользователя. 

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

В ручную из Организационных ролей синхронизация теперь тоже не проходит.

 

Скажите, что и где посмотреть?

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

Нравится

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

Здравствуйте, Владимир!

Проверьте, пожалуйста, следующие настройки:



 - Явно указать пользователю группу в AD(свойство memberOf должно содержать нужную группу);

 - проверить, что пользователь, который есть в группе, не привязан к другой орг. роли;

 - проверить, что пользователь активный в AD;

 - проверить, что в системе нет орг. роли, имя которой совпадает с именем пользователя что импортируется c AD. Если есть то переименовать орг. роль;



Удалить значение системной настройки "Дата последней синхронизации с LDAP" и запустить синхронизацию с LDAP. Если это не поможет, лучше обратится в службу технической поддержки для проведения расширенного анализа.

Pavel Bashtovoy,

Павел, спасибо, всё так, как описываете.

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

После прикрепления группы к Роли, появляются пользователи группы в Роли.

После добавления пользователей в AD группу, включения синхронизации LDAP,  Актуализации ролей, пользователи в Роли не появляются.

Если же пользователей удалять из группы AD, то после синхронизации, пользователи из группы исчезают.

Оказалось, что после добавления, пользователи добавленные в группу AD подвисают в окне которое можно вызвать нажав на + и выбрать Импортировать пользователей LDAP.

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



Подскажите пожалуйста, как импортировать права доступа к объектам, которые администрируется по записям?

Есть кейс:

30 ролей, 40+ объектов у которых включено "Администрируется по записям". 

Нужно в каждом объекте прописать:

"Кто создает" роль1 "Кому дано право" роль1

"Кто создает" роль2 "Кому дано право" роль2

"Кто создает" роль3 "Кому дано право" роль3

и т.д.

Уровень доступа у всех одинаковый.

 

Нравится

5 комментариев

что-то я не до конца понимаю вопроса... Вас интересует, как автоматизировать проставление дефолтных пермишнов по записям? или как применить пермишны к уже созданным записям?

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

Максим Цынгаев, да интересует как автоматизировать проставление дефолтных пермишнов по записям?.



Грубо говоря: Пользователи с ролью "Москва" должны видеть только записи созданные пользователями с ролью "Москва",

А пользователи с ролью "Санакт-Петербург" . должны видеть только записи созданные пользователями с ролью "Санакт-петербург"

И таких ролей у меня 30 штук, а права нужно раздать на 40+ объектов (разделов).

Как пример: Раздел "Обращения" я раздаю на него права доступа "Администрируется по записям"

И 30 раз проставляю:

Кто создает "Москва" кому дано право "Москва"

Кто создает "Санакт-Петербург" кому дано право "Санакт-Петербург"

и т.д.

Хотелось бы как-то это автоматизировать.

 

Варфоломеев Данила,большое спасибо помогли, добавить записи получилось. то что нужно

INSERT ... SELECT, думаю, будет оптимальным решением

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

Здравствуйте коллеги! Подскажите пожалуйста, как можно вставить аудио плеер в реестр карточки звонков, что бы прослушать уже имеющуюся запись. Копал в сторону модуля AudioPlayer, но что то особо ничего хорошего не вышло. 

Нравится

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

Пока нашел следующее решение, но если кто то знает более лучший способ, буду рад, если вы поделитесь! 

Создаем замещающую схему CallPageV2 и добавляем туда в diff:

{
    "operation": "insert",
    "parentName": "GeneralInfoTabGroup74451b35",
    "name": "AudioPlayer",
    "propertyName": "items",
    "values": {
        "itemType": Terrasoft.ViewItemType.CONTAINER,
        "generator": function() {
            return {
                "selectors": {
                    "wrapEl": "#AudioPlayer",
                    "iframeEl": "id_AudioPlayer"
                },
                "className": "Terrasoft.HtmlControl",
                "html": "<audio style=\"display:none;\" controls=\"controls\"><source " +
                "src=\"\" type=\"audio/ogg\" /></audio>"
            };
        },
        "layout": {
            "colSpan": 12,
            "rowSpan": 1,
            "column": 0,
            "row": 0
        }
    }
}

(parentName замените на свой)

И в методы:

"generateAudioPlayer": function(audioUrl) {
    if (audioUrl.length >= 12) {
        var audioSource = document.querySelector("Source");
        if (audioSource) {
            audioSource.src = audioUrl;
            var audioBlock = document.querySelector("audio");
            audioBlock.style = "style=\"display:hidden;\"";
        }
    }
}

Далее вызываем новый метод из инициализации карточки, передавая ему ссылку на наше аудио: 

"onEntityInitialized": function() {
    this.callParent(arguments);
 
    var callAudioUrl = this.get("UsrAudio");
    this.generateAudioPlayer(callAudioUrl);
}

Добрый день, в вашем случае вы напрямую используете тэг audio из HTML. Также рекомендую вам посмотреть в сторону использования компонента Terrasoft.AudioPlayer. Пример использования можно увидеть в схеме CallSectionV2:

{
   "operation": "insert",
   "name": "AudioPlayer",
   "parentName": "DataGrid",
   "propertyName": "activeRowActions",
   "index": 1,
   "values": {
      "className": "Terrasoft.AudioPlayer",
      "selectors": {"wrapEl": "#AudioPlayer"},
      "sourceId": {"bindTo": "getSourceId"},
      "sourceUrl": {"bindTo": "SourceUrl"},
      "playbackended": {"bindTo": "onPlaybackEnded"},
      "error": {"bindTo": "onPlayError"}
   }
},

Также часть логики расположена в схеме CallSectionGridRowViewModel.

 

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

Настроили все по инструкции https://academy.terrasoft.ru/documents/marketing/7-8/nastroyka-vebsoket…

Указали открытый 85 порт.

Однако все равно валится ошибка.

Подскажите, что стоит посмотреть?

Нравится

9 комментариев

А компонент на сервере для работы с Web-socket установлен? 

Терещенко Алексей,

Алексей, спасибо, действительно забыл :)

Vladimir Kov,

Однако проблема сохранилась:

WebSocket connection to 'ws://192.168.1.5/0/Nui/ViewModule.aspx.ashx' failed: Error during WebSocket handshake: Unexpected response code: 302

WrappedWebSocket @ VM2954:164

 

Vladimir Kov,

Сам недавно решал подобную проблему...

Попробуйте изменить portForClientConnection=0 и удалить параметры maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120". Они используются для настройки https.

Тоже на днях была похожая трабла. Рекомендую .Net Framework тебе обновить и заодно IIS проверить на текущую версию чтобы не ниже 8ой была. Порты кстати не так важно открывать из под localhost в dev tools хрома или мозилы в логах всё равно увидишь connection oppened for url бла-бла-бла.

Терещенко Алексей,

Попробовал, не помогло, пробую снова все поставить на 12 сервере.

 

Кисловский Михаил Андреевич,

Версии:

Необходимо произвести настройку внутреннего конфигурационного файла Terrasoft.WebApp\Web.config

Необходимо найти директиву

<wsService type="Terrasoft.Messaging

И установить ее со следующим набором параметров:

<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService,Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="0" />

PS: Конфигурационный файл вероятно уже содержит данную директиву, но с другим набором объектов и атрибутов,

<wsService type="Terrasoft.Messaging.SuperWSService.SuperWSService, Terrasoft.Messaging.SuperWSService" defaultPort="2011" encrypted="false" portForClientConnection="44310" maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120" />

его необходимо заменить на вышеуказанный!:

далее необходимо, найти директивы:

<add verb="GET" path="*ViewModule.aspx.ashx" …

и

<add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" …

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

В случае если такие директивы будут отсутствовать, необходимо добавить их в соответствующие ноды XML файла:

<system.webServer> 

<handlers>   

<add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

<location path="." inheritInChildApplications="false">

<httpHandlers>

<add verb="GET" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

Севостьянов Илья Сергеевич,

Спасибо Илья.

Первая часть соответствует, строку разкоментил.

Ошибка в консоли:

WebSocket connection to 'ws://192.168.1.5/0/Nui/ViewModule.aspx.ashx' failed: Error during WebSocket handshake: Unexpected response code: 302

WrappedWebSocket @ VM4580:164

init @ all-combined.js:983

channelClosedHandler @ all-combined.js:986

Что можно еще попробовать?

Здравствуйте, Владимир!

Данная ошибка иногда возникает из-за того, что настроена переадрессация через прокси или nginx.

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

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



Добрый день, подскажите пожалуйста, как дать (пользователю, роли и т.д.) доступ к разделу со справочниками?

Нравится

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

доступ по операциям —> поиск по коду "CanManageLookup" —> добавляете пользователей

Ок, спасибо. Получилось

Варфоломеев Данила,

Cкажите, а откуда вы это знаете? Поделитесь, пожалуйста, источником в целях обучения.

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

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

При попытке заместить схему LeftPanelTopMenuModule пропадают image кнопок.

Нравится

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

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

При попытке заместить схему LeftPanelTopMenuModule пропадают image кнопок.

Добрый день, Богдан!

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

Мы крайне не рекомендуем замещать подобные модули, проведите тщательное тестирование, если это крайне необходимо.

 

Denys Diachenko, вы имеете в виду через отдельную схему а не замещающий клиентский модуль?

Богдан Гриценко,

Вам необходимо в конфигурации создать модуль → унаследоваться от 

LeftPanelTopMenuModule → перенести весь код из родительской схемы → перенести LESS(стили) из исходной схемы. после измените видимость кнопки.

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