Вопрос:

Можно ли без доработок вывести подобную статистику если используется телефония Астериск и коннектор Террасофт?

Ответ:

Можно построить подобные дашборды в рзаделе Звонки. 

Например, диаграмма

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

 



или шкала 

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



По временным характеристикам слева можно построить график, например "График" 

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



Более подробно про графики можно почитать на Академии Террасофт - https://academy.terrasoft.ru/documents/base/7-12/nastroyka-bloka-itogov-grafik

Нравится

Поделиться

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

Вопрос: 

Какой бизнес процесс обеспечивает рассылку е-майл сообщений?

Ответ:

Если Вас интересует функционал маркетинга, в базовой версии рассылки email-сообщений для компаний выполняются с помощью отдельного функционала рассылок. Подробно он описан на Академии: https://academy.terrasoft.ru/documents/marketing/7-9/kak-rabotat-s-massovymi-rassylkami



Если же Вас интересует настройка бизнес-процесса, то для выполенения рассылки Вы можете использовать элемент "Отправить email". Работа элемента описана по ссылке: https://academy.terrasoft.ru/documents/technic-bpms/7-10/element-processa-otpravit-email

Нравится

Поделиться

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

Вопрос:

Шаги воспроизведения: добавлен объект "Взаимосвязь" в журнале изменений

При удалении записи с детали "Взаимосвязи контакта" запись в журнале не появляется

Ответ:

На Вашем сайте настроено журналирование изменений справочника "Взаимосвязи". В данном справочнике хранится информация о всех вариантах взаимосвязей контактов/контрагентов в системе. Если Вы удалите один из этих вариантов через раздел "Справочники", тогда информация об этой появится в журнале:

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

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

Нравится

Поделиться

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

Вопрос:

Кейс: менеджер работает в нескольких вкладках браузера. В одной из вкладок осуществляется прием звонка через CTI-панель, в другом - выполнение задач по процессу. BPM- и CTI-панели вкладок одновременно шлют запросы в сервис MsgUtilService. Получается после того, как звонок завершился и получил статус none, снова получает статус connected и мгновенно переходит в статус none, что в свою очередь затирает существующие значения переменных "время разговора" и "продолжительность" значением "1".

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

Ответ:

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

Нравится

Поделиться

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

Вопрос:

Пользователю дали права только на Чтение \ Создание.  Редактирование и удаление в настройках прав - пусто.

При этом, у пользователя появляются права на редактирование и удаление.

Пример: справочник Звонки.

Как запретить?

Ответ:

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

Для того, чтоб изменить данную логику, можно создать бизнес-процесс, который будет забирать права у автора и/или ответственного после создания записи. Стартовый сигнал у процесса сделать "Добавление записи", объект - Звонок, следующие элементы - "Читать данные" из записи, по которой отработал стартовый сигнал (условие по id), поля "Создал" и "Ответственный" и "Изменить права доступа". 

Рекомендуется ознакомиться со статьями на Академии по работе с бизнес-процессами, в частности с функционалом описанных выше элементов

https://academy.terrasoft.ru/documents/technic-bpms/7-12/nachalnyy-signal

https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-processa-chitat-dannye

https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-processa-izmenit-prava-dostupa

Также ограничить права для удаления и изменения записей для автора и ответственного можно не прибегая к реализации процесса. Для этого необходимо включить в настройках прав на объект «Звонок» администрирование по операциям, а на вкладке «Доступ к объекту» убрать права на изменение и удаление.

 

Нравится

Поделиться

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

Вопрос

1) пользователи не имеют доступа на операцию

2) все справочники унаследованы от объекта "Базовый справочник"

3) при вводе текста в справочное поле пользователи видят контрол быстрого создания записей (см скрин), хотя фактически не имеют прав на редактирование справочников (читай на создание записей в справочниках)

4) по нашему представлению и, главное, по представлению клиента, пользователи НЕ должны видеть контрол быстрого создания записей, когда у них нет доступа на эту операцию

Вопрос: 1) как сделать так, чтобы пользователи видели контрол быстрого создания записей в справочном поле для справочников только тогда, когда имеют доступ на операцию CanManageLookups?

У пользователей, не имеющих прав на редактирование справочников (CanManageLookups) при вводе текста в справочное поле появляется строка быстрого создания записи, не смотря на то, что они не фактически не могут это сделать

Ответ

Данная настройка только ограничивает доступ к разделу «Справочники» (https://academy.terrasoft.ru/documents/sales-commerce/7-9/razdel-spravochniki#HT_lookups) и к справочникам, которые наследуются от объекта «Базовый справочник» (в объекте происходит проверка на данную операцию, см. «Файлы»).

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

Если ограничить права на данную операцию, то в результате отобразиться сообщение - Текущий пользователь не имеет прав на запуск администрируемой операции с кодом "CanManageLookups".

Если справочник наследуются от объекта «Базовый объект», то права распределяются на уровне объекте, т.е. если у пользователя есть доступ к разделу, то он может создавать новые значение. Если необходимо ограничить права, то это необходимо осуществлять через «Права доступа на объекты».

Если Вам необходимо, то как вариант на странице редактирования (например, для «AccountPageV2») добавить метод:

getPreventQuickAddSchemaNames: function() {
    return [
        "SysAdminUnit""VwSysSchemaInfo""VwQueueSysProcess""City""Country""AccountIndustry"
    ];
},

И перечислить в этом методе объекты, в которых необходимо убрать возможность отображения быстрого добавления записи (например «AccountIndustry» или «City»).

Наглядный скриншот:

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

Нравится

Поделиться

0 комментариев
Показать все комментарии
Публикация

Вопрос

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

имеется InsertQuery по созданию контакта. Проблема в том что после создания контакта надо ещё заполнить его детали аналогичными Insert-ами по другим таблицам, а для связи нужен ID созданной записи. Может ли InsertQuery возвращать этот ID? Или проще SelectQuery получить ID только что созданной записи?

Ответ

InsertQuery не возвращает ID записи. Как Вы уже сказали для заполнения деталей нужен ID.

Следует сперва создать сущность, получить ее идентификатор и по этом ID заполнять детали контакта.

Нравится

Поделиться

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

Вопрос

Отображать на карте не стандартный раздел "Щиты". Версия 7.5.0.966

Ответ

Реализовывается данный вопрос по аналогии с его реализацией в разделе «Контрагенты». 

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

 

/**
* Действие "Показать на карте"
*/
openShowOnMap: function() {
    var items = this.getSelectedItems();
    var select = Ext.create("Terrasoft.EntitySchemaQuery", {
        rootSchemaName: "Account"
    });
    select.addColumn("Id");
    select.addColumn("Name");
    select.addColumn("Address");
    select.addColumn("City");
    select.addColumn("Region");
    select.addColumn("Country");
    select.addColumn("GPSN");
    select.addColumn("GPSE");
    select.filters.add("AcountIdFilter", this.Terrasoft.createColumnInFilterWithParameters("Id", items));
    select.getEntityCollection(function(result) {
        if (result.success) {
            var mapsConfig = {
                mapsData: []
            };
            result.collection.each(function(item) {
                var address = [];
                if (item.get("Country") && item.get("Country").displayValue) {
                    address.push(item.get("Country").displayValue);
                }
                if (item.get("Region") && item.get("Region").displayValue) {
                    address.push(item.get("Region").displayValue);
                }
                if (item.get("City") && item.get("City").displayValue) {
                    address.push(item.get("City").displayValue);
                }
                address.push(item.get("Address"));
                var dataItem = {
                    caption: item.get("Name"),
                    content: "<h2>" + item.get("Name") + "</h2><div>" + address.join(", ") + "</div>",
                    address: item.get("Address") ? address.join(", ") : null,
                    gpsN: item.get("GPSN"),
                    gpsE: item.get("GPSE"),
                    updateCoordinatesConfig: {
                        schemaName: "Account",
                        id: item.get("Id")
                    }
                };
                mapsConfig.mapsData.push(dataItem);
            });
            var mapsModuleSandboxId = this.sandbox.id + "_MapsModule" + this.Terrasoft.generateGUID();
            this.sandbox.subscribe("GetMapsConfig", function() {
                return mapsConfig;
            [mapsModuleSandboxId]);
            this.sandbox.loadModule("MapsModule", {
                id: mapsModuleSandboxId,
                keepAlive: true
            });
        }
    }, this);
},

 

Нравится

Поделиться

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

Вопрос

Можно ли сделать чтобы "JS Error Report" не ругался на отступы, To many errors. (37% scanned)

Ответ

Функциональность JSHint зашита в ядро приложения и не является отключаемой.

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

Нравится

Поделиться

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

Симптомы

Ошибка: у сотрудника не отображается в мобильной версии завершенная активность (визит). Сам же визит отображается в десктопе (представление «Расписание» в активностях). Используется платформа UIv1. Версия приложения 7.6 pharma

Кейс:

  1. Засихронизироваться под пользователем;
  2. Открыть расписание/список активностей за 23.03.2017;
  3. В результате визит «Визит к врачу: ФИО, Адрес, ДЕРМАТОЛОГ» не отображается за 23.03.2017.

Доп. инфа:

В десктопе данный визит есть

Также данная активность если открыть активности контакта врача.

Причина

В этом проекте доработана базовая фильтрация раздела Активности (проектное решение)

Происходит дополнительная фильтрация по НОВЫМ полям «Начало факт» и «Завершение факт»

Примерно такая:

SELECT *
FROM [Activity] AS [Activity]
WHERE 
(
    (
        NOT([Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6')
        AND
        datetime([Activity].[DueDate]) >= datetime('2017-03-22 22:00:00.000Z')
    )
    OR
    (
        [Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6'
        AND
        datetime([Activity].[ActualDueDate]) >= datetime('2017-03-22 22:00:00.000Z')
    )
)
AND
(
    (
        [Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6'
        AND
        datetime([Activity].[ActualStartDate]) <= datetime('2017-03-23 21:59:59.000Z')
    )
    OR
    (
        NOT([Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6')
        AND
        datetime([Activity].[StartDate]) <= datetime('2017-03-23 21:59:59.000Z')
    )
)

У данной активности

Не заполнено поле «Завершение факт» поэтому она и не попадает в реестр мобильного приложения.

Решение

Заполнить колонку "Завершение факт" и/или "Начало факт" (ActualDueDate или ActualStartDate) тем же значением, что и в колонках "StartDate" и "DueDate" на уровне БД.

Нравится

Поделиться

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