Добрый день!

Подскажите есть ли какая-то интеграция с классификатором адресов (КЛАДР) или каким-то более современным?

 

Спасибо. 

Нравится

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

Посмотрите это расширение (DaData connector for bpmonline) и это

Такэе обратите внимание на этот пост  и этот

Посмотрите это расширение (DaData connector for bpmonline) и это

Такэе обратите внимание на этот пост  и этот

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

Добрый день. 

 

Подскажите, пожалуйста, действует ли описанная схема на текущей версии системы. 

https://community.terrasoft.ru/questions/maska-telefona-na-detali-sredstva-svazi

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

 

Спасибо.

 

Нравится

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

Да подход описаный выше вполне работоспособный

В принципе вам достаточно добавить в зависимости  модуль MultiMaskEdit и описать в diff формат маски чтото типа:

{
       "operation": "merge",
       "name": "Phone",
       "values": {
             "controlConfig": {
                   "className": "Terrasoft.controls.MultiMaskEdit",
                    "mask": {
                            "formats": ["(99)999-99-99"]
                    }
               }
       }
}

 

Да подход описаный выше вполне работоспособный

В принципе вам достаточно добавить в зависимости  модуль MultiMaskEdit и описать в diff формат маски чтото типа:

{
       "operation": "merge",
       "name": "Phone",
       "values": {
             "controlConfig": {
                   "className": "Terrasoft.controls.MultiMaskEdit",
                    "mask": {
                            "formats": ["(99)999-99-99"]
                    }
               }
       }
}

 

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

Добрый день, Коллеги!

Нам в суппорт ответили, что у нас возникает ошибка  из-за того что не выполняется отписка от сообщения. "Вам нужно либо выполнять отписку самостоятельно либо попробовать использовать ClientMessageBridge https://academy.terrasoft.ua/documents/technic-sdk/7-14/clientmessagebridge-obrabotchik-websocket-soobshcheniya-na-storone-klienta

"


У нас на клиенте подписка на сообщение с сервера. Как нам отписываться от него?

Вот подписка на клиенте:

init: function() {

    this.callParent(arguments);

    this.subscriptionFunction();

},

subscriptionFunction: function() {

    Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE,

        this.bpListenerMessage, this);

},

bpListenerMessage: function(scope, message) {

    if (!message || message.Header.Sender !== "MessageForDetail") {

        return;

    }

    var message2 = message.Body;

    if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {

        this.reloadEntity();

        this.showInformationDialog("Актуализация дат окончена");

    }

    else if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetailFix") {

        //Здесь в какой-то момент возникает ошибка

        this.reloadEntity();

    }

}

 

а вот отправка сообщения на сервере (кусок кода)

 

Terrasoft.Configuration.MsgChannelUtilities.PostMessage(uc, "MessageForDetail", "UpdateDetailFix");

Нравится

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

Добрый день.

Решение подобного вопроса обсуждается в этом посте.

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

Это нам подходит? У нас не Sendbox.

А так будет работать?:

    bpListenerMessage: function(scope, message) {

                            if (!message || message.Header.Sender !== "MessageForDetail") {

                                return;

                            }

                            var message2 = message.Body;

                            if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetail") {

                                this.reloadEntity();

                                this.showInformationDialog("Актуализация дат окончена");

                            }

                            else if (!this.Ext.isEmpty(message2) && message2 === "UpdateDetailFix") {

                                this.reloadEntity();

                            }

            },

            destroy: function() {

                this.Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.bpListenerMessage, this);

                this.callParent(arguments);

            },

 

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

Добрый день! Для удобства уведомления пользователей в ленте хотелось бы изменить знак @ на другой. Найден метод trackingStartChars в модуле ESNHtmlEditModule, однако замещение модулей невозможно. Можно ли как-то решить эту проблему?  

Нравится

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

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

Разве что делать свой модуль под другим названием, замещающий ESNHtmlEditModule, а затем во всех 5 страницах, где он упоминается, заменить на самодельную версию. Как в этом примере:

Override Ext.js class

Example override class SummaryModule

SummaryModuleV2.js

define("UsrSummaryModuleV2", ["SummaryModuleV2"],
    function() {
        Ext.define("Terrasoft.SummaryModuleOverrided", {
            override: "Terrasoft.SummaryModule",
 
           /*
            * @override
            */
            getESQ: function() {
                var esq = this.callParent(arguments);
                esq.queryKind = Terrasoft.QueryKind.LIMITED;
                return esq;
            }
        });
    }
);

On the page, which use base class you need to add dependency to overridden class:

 

BaseSectionV2

define("BaseSectionV2", ["UsrSummaryModuleV2"], function() {
    return {
        methods: {},
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
    };
});

 

Если, конечно, часть логики по обработке этого символа не зашита в ядре. 

Не понимаю необходимости этой возможности! 

Во многих программах работает @ (скайп вайбер и тд) зачем плодить головную боль юзерам?

Зверев Александр,

Спасибо за ответ! Подскажите, пожалуйста, эти 5 мест упоминания 

ESNHtmlEditModule. Я работаю в облачной crm через конфигурацию и не имею возможности глобального поиска.

Григорий Чех,

Дело в том, что в bpm'online поиск идет по ФИО, которые в системе хранятся на русском языке. Чтобы уведомить нескольких пользователей через запятую, нужно без конца переключать язык (так как @ находится в английской раскладке). Возможно ли для упрощения работы менеджеров, которые постоянно пользуются этим кейсом, реализовать через @ упоминание какой-то функциональной роли?

Это схемы: PortalCasePage,SocialMessagePublisherPage, CasePage, SocialFeed, CaseRatingFeedbackPage.

Чтобы не переключать, может, лучше на уровне раскладки клавиатуры что-то подкрутить? Повесить «собаку» на какую-то неиспользуемую клавишу или комбинацию. Заодно и в других программах удобнее станет.

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

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

Столкнулся со следующей проблемой, развернул систему локально, при входе в систему выдает ошибки - http://prntscr.com/ohdrrs

Ранее такого не наблюдал.

Версия: 7.14.2.881 

Нравится

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

Пробую использовать createInFilter. При дебаге четко вижу, что filteredAgreementsKeys это массив из двух Id. Однако фильтр не отрабатывает и ошибок в консоль не сыпется. Кто нибудь использовал in-Filter в конфигурационных схемах при открытии справочника?

openAgreementsLookup: function (filteredAgreementsKeys, scope) {
					debugger;
					var filterCollection = Terrasoft.createFilterGroup();
					var filter = Terrasoft.createInFilter("Id", filteredAgreementsKeys);
					filter.Name = "filter";
					filterCollection.add("filter", filter);
					var config = {
						entitySchemaName: "IDSBAgreement",
						multiSelect: true,
						columns: ["IDSBName", "IDSBPartnerCode"],
						filters: filterCollection
					};
 
					scope.openLookup(config, function (args) {
						scope.addCallBack(args, scope);
					}, scope);
				}

 

Нравится

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

Включил в объекте деактивацию записей, но в справочнике ничего не поменялось - соответствующий пункт не появился. У меня версия 7.11.2, на этой версии этот функционал работает? Потому что в документации я вижу версию 7.12 только

Нравится

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

Алексей-Карягин,

На версии 7.11.2 100% можно запустить - у меня была такая же проблема на этой версии, но мне данную функциональность подключала служба поддержки, так как сайт в облаке.

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

Если всё правильно настроено, то в таблице появится колонка 'RecordInactive', но это можно увидеть только в SQL Server Management Studio, в конфигурации в схеме объекта Вы этого не увидите.

Функциональность деактивации записей объектов доступна для всех объектов, но автоматическая фильтрация записей работает только в выпадающих списках, на странице выбора из справочника и в быстрых фильтрах. На страницах с содержимым справочников, в расширенных фильтрах и разделах автоматический фильтр не применяется.

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

На версии 7.11.2 функциональность деактивации записей работает.

Для настройки нужно внести изменения в Web.config - установить значение true для настройки UseRecordDeactivation.

Также проверьте, чтобы в объекте, в котором Вы хотите использовать данный функционал, включен признак деактивации (его можно включить только в замещенном объекте - если это наследник базового или в не базовом объекте). После установки признака "Allow record deactivation" в объекте необходимо опубликовать объект, а затем скомпилировать приложение.

Я не нашел ключ UseRecordDeactivation ни в одном *.config файле. В каком месте он должен быть?

Судя по обзору пакета обновлений, деактивацию добавили в 7.11.3.

Алексей-Карягин,

В файл Web.config, который находится в папкке 

Terrasoft.WebApp, в секцию <appSettings> нужно добавить строчку:

 <add key="UseRecordDeactivation" value="true" />

Алла Савельева,не работает. Да и ладно

Значит, произведите обновление до тех версий, где оно есть.

Алексей-Карягин,

На версии 7.11.2 100% можно запустить - у меня была такая же проблема на этой версии, но мне данную функциональность подключала служба поддержки, так как сайт в облаке.

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

Если всё правильно настроено, то в таблице появится колонка 'RecordInactive', но это можно увидеть только в SQL Server Management Studio, в конфигурации в схеме объекта Вы этого не увидите.

Функциональность деактивации записей объектов доступна для всех объектов, но автоматическая фильтрация записей работает только в выпадающих списках, на странице выбора из справочника и в быстрых фильтрах. На страницах с содержимым справочников, в расширенных фильтрах и разделах автоматический фильтр не применяется.

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

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

Коллеги, добрый день!

У клиента в системе иногда наблюдается такое поведение: например открыт раздел Заказы , пользователь ничего не делает, абсолютно ничего. На экране появляется надпись Загрузка и пока не обновить страницу не исчезнет. 

.

В консоле такое:

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

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

На мой комментарий, что Ошибка выпадает в схеме EntityProductCountMixin и она не замещена, Террасофт выслал эти скрины и ответил:

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

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

Помоги разобраться, что не так делаем, наша ли тут ошибка?

Нравится

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

В EntityProductCountMixin есть функция:

getEntityProductSchemaName: function() {
	var schemaName = this.getDependentEntitySchemaName();
	return schemaName + "Product";
},

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

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

Доброго времени суток! Есть раздел с раширенными фильтрами и показатель, который ссылается на view. В view есть формула с агрегирующими функциями. Как показатель отфильтровать по отфильтрованному реестру раздела?

Постановка задачи:

Дашборд - Показатель. Если в разделе задан фильтр – обрабатываются только данные фильтра. 

Период - текущий месяц в сравнении с таким же периодом прошлого месяца (с 01.05 по 21.05 сравниваем с 01.04-21.04). 

Алгоритм расчета: ((Количество Лидов за текущий период/Количество Лидов за предыдущий период )-1)*100%



Если не учитывать фильтр, то view формируется на основании этого SQL :

select UsrLeadId, (CAST(T1 AS float) / CAST(T2 AS float)-1)*100 as UsrResult

from

(select Id as UsrLeadId, 

count(CASE

            WHEN CreatedOn >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)

                And CreatedOn <= GETDATE() THEN 1

            ELSE NULL

          END) OVER () as T1, 

count(CASE

              WHEN CreatedOn > DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)

                And CreatedOn < dateadd(mm,-1,getdate()) THEN 1

            ELSE NULL

          END) OVER () as T2

        from Lead

) l

Нравится

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

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

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

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

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

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

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

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

Может кто сталкивался с таким поведением в бизнес процессах при их изменении?

Я редактирую какой-либо БП и сохраняю его. Далее запускаю процесс. В журнале отображается, что процесс выполнен полностью. НО! некоторые измененые или новые элементы процесса не меняют данные в записях объектов. Далее, я вставляю в БП автогенерируемую страницу, чтобы убедиться, что данные меняются в процессе, при этом ничего не меняю в других элементах. Поле этого опять запускаю процесс и ВСЕ НАЧИНАЕТ РАБОТАТЬ как надо. Если теперь удалить автостраницу то все продолжает работать. Пробовал делать полную компиляцию и не помогает. Только вставка автостраницы в процесс исправляет ситуацию.

С чем может быть связанно такое поведение системы?

Нравится

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

Возможно, в первом случае процесс запускали не под Вашим пользователем, а под другим, с ограниченными правами на изменение?

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

Зверев Александр,

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

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

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