Технические вопросы
7.x

Настроил интеграцию с e-mail и вкачал в систему кучу ненужных писем. Теперь хочу выбрать отдельные IMAP-папки, а лишние убрать. Удаление учётки не помогло. Как быть?

Нравится

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

Виктор, или через запрос в БД или в ручную через приложение (удалять по каждой записи).

Каким именно запросом и как его применить? Не программист, к сожалению.

Необходимо создать SQL запрос примерно такой:

Delete from Activity Where Type = 'E-mail'

Но нужно проверить. Удалить запросом можно только если у Вас on-site, так как имеете доступ к БД.
Более подробно можете ознакомиться здесь - https://technet.microsoft.com/ru-ru/library/ms175544(v=sql.105).aspx

В Вашему случае рекомендую удалить записи через приложение (кнопка "Удалить").

On-demand. Там 10 000 писем, руками удалять если только тысячу индусов нанять. Какие ещё варианты? С вашей помощью можно удалить?

Я не сотрудник тех. поддержки.
Тогда Вам необходимо обратиться с данным запросом в техническую поддержку Terrasoft (support@terrasoft.ru).

Показать все комментарии
Деталь
фильтр
Технические вопросы
7.x

Коллеги, просьба помочь разобраться с деталями. Версия 7.6.

Ситуация: мы делим Заказы по типам (КП, Образцы, Коммерческий заказ) по причине удобного продуктового каталога.
Задача: хотим в карточке клиента вывести 3 детали и на каждую поставить фильтр по типу заказа. Разместил 3 детали через мастер раздела, он сгенерировал такой код:

        "Order": {
                "schemaName": "OrderDetailV2",
                "entitySchemaName": "Order",
                "filter": {
                        "detailColumn": "Account",
                        "masterColumn": "Id"
                },
                "filterMethod": "OrderFilter",
                "captionName": "OrderDetailCaption" // в локализируемых строках прописано "КП"
        },
        "Order1": {
                "schemaName": "OrderDetailV2",
                "entitySchemaName": "Order",
                "filter": {
                        "detailColumn": "Account",
                        "masterColumn": "Id"
                },
                "filterMethod": "Order1Filter",
                "captionName": "Образцы"
        },
        "Order2": {
                "schemaName": "OrderDetailV2",
                "entitySchemaName": "Order",
                "filter": {
                        "detailColumn": "Account",
                        "masterColumn": "Id"
                },
                "filterMethod": "Order2Filter",
                "captionName": "Заказы"
        }

Вручную прописал фильтрацию на деталях:

                        OrderFilter: function() {
                                var filterGroup = new this.Terrasoft.createFilterGroup();
                                filterGroup.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;
                                filterGroup.add("OrderTypeFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "UsrOrderType", "358479b6-bf4b-46ed-93ee-5a8c558a0593") // КП
                                );
                                filterGroup.add("ByAccountFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id"))
                                );
                                return filterGroup;
                        },
                        Order1Filter: function() {
                                var filterGroup = new this.Terrasoft.createFilterGroup();
                                filterGroup.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;
                                filterGroup.add("OrderTypeFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "UsrOrderType", "21d5f440-ff74-4a89-8233-127facc90be4") // Образцы
                                );
                                filterGroup.add("ByAccountFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id"))
                                );
                                return filterGroup;
                        },
                        Order2Filter: function() {
                                var filterGroup = new this.Terrasoft.createFilterGroup();
                                filterGroup.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;
                                filterGroup.add("OrderTypeFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "UsrOrderType", "d8e59907-2b35-4429-bd14-2f5847dbf787") // Заказ
                                );
                                filterGroup.add("ByAccountFilter", this.Terrasoft.createColumnFilterWithParameter(
                                        this.Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id"))
                                );
                                return filterGroup;
                        }

Однако нужного результата мы не получили:
1. Не изменились заголовки деталей (так и остались «Заказы»)
2. При нажатии на детали 1 и 2 разворачивается деталь 3, а нажимаемая остаётся без изменений
3. При переключении между вкладками карточки клиента произвольно меняются фильтры между деталями

Соответственно, вопросы:
1. Как изменить заголовок детали? Варианты "captionName": "OrderDetailCaption" (OrderDetailCaption – локализируемая строка) и "captionName": "Образцы" не срабатывают
2. Как сделать разворачивание / сворачивание деталей независимым друг от друга? Т.е. чтобы при разворачивании, к примеру, детали №2 разворачивалась она и только она, а детали №1 и №3 не менялись
3. Как зафиксировать условия фильтрации? Проблема в том, что при переключении вкладок карточка контрагента (Основная информация, Документы, История и т.п.) произвольно выставляются фильтры в деталях – то Образцы, то Заказ, то КП по одной и той же детали (хотя по ней жёстко прописан фильтр в коде)

Нравится

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

Чтобы не было описанной путаницы, я бы предложил сделать три разных клиентских модуля, в которых родителем указан OrderDetailV2, и прицепил бы их в качестве трех деталей. Код карточки у вас уже есть, останется только название schemaName новые прописать

Александр, честно говоря, не совсем понял, как это сделать. Но Ваша подсказка натолкнула на идею, которая сработала - просто создал 3 детали на основе объекта Заказ через мастер деталей, и разместил их на странице контрагента, далее прописал фильтры на каждую из них - и всё заработало! Спасибо

"Антон Кравченко" написал:просто создал 3 детали на основе объекта Заказ

Ну я это и предложил :)
Только вручную создать, хотя и с помощью мастера тоже можно

Показать все комментарии
count
запрос
Технические вопросы
7.x

Добрый день!
Подскажите, пожалуйста синтаксис запрос COUNT на C#

Например, такой запрос
var select =
new Select(userConnection)
.Column("SysUserInRole","SysUserId")
.From("SysUserInRole")
.Join(JoinType.Inner, "SysAdminUnit").On("SysUserInRole", "SysUserId").IsEqual("SysAdminUnit", "Id")
.Where("SysUserInRole", "SysRoleId").IsEqual(new QueryParameter(ownerGroup))
as Select;

Как здесь правильно прописать COUNT?

Нравится

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

.Column(Func.Count("TableName", "FieldName")).As("ColumnAlias")

что то вроде такого

Спасибо

Добрый день!
А подскажите, пожалуйста, как привести к целому типу?

к String, например, так
(String)dataReader.GetColumnValue("NameGroup")

к Guid, например, так
(Guid)dataReader.GetColumnValue("NameId")

а к целому типу как?

Int32.Parse()
к примеру:
Int32.Parse((String)dataReader.GetColumnValue("NameCount"))

а если NameCount - это и так число?

я, наверное, не так выразилась
- хочу обратиться, результату значения из запроса
dataReader.GetColumnValue("NameCount")
NameCount"- это число (кол-во записей)

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

Попробуйте так:

dataReader.GetColumnValue<int>("NameCount")
Показать все комментарии

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

Возможно ли тип данных дробное число сделать с точностью 0 или что бы на клиенте не отображалась дробная часть.
И есть ли более подробная информация о типе колонки "Деньги", в чем смыл этого типа?
В SDK написано Деньги - Числовые данные с точностью до сотых, (Тип колонки “Деньги” выделен в качестве отдельного на случай, если точность фиксации финансовых расчетов в вашей компании отличается от точности, с которой, например, компания предлагает продукты.) но есть тип Дробное число (0,01) так зачем тип Деньги? возможно его точностью можно манипулировать?

Нравится

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

Добрый день!

Для того, чтобы дробная часть вообще не отображалась в карточке редактирования, можно установить в блоке diff для соответствующего контрола тип "dataValueType": Terrasoft.DataValueType.INTEGER. Если Вам необходимо изменить отображаемое количество знаков после запятой, установите

"controlConfig": {
	"decimalPrecision": 1
}

Обратите, пожалуйста, внимание, что при этом в реестре раздела будет отображаться столько знаков, сколько указано в объекте.

Что касается типа "Деньги" - фактически он ничем не отличается от типа "Дробное число (0,01)", просто на клиенте для этого типа создаётся контрол с указанием точности 2 (до сотых), а в случае дробных типов точность не указывается (она вычисляется по колонке объекта). Данный тип создан для облегчения понимания.

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

Нет ли случайно умельцев, которые смогли "вытащить" корпоративный чат в отдельное приложение, через которое можно обмениваться сообщениями не заходя в СРМ?

Нравится

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

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

В таком случае CRM превратится в messanger. Я думаю, что данную идею возможно реализовать. Для этого необходимо создать отдельное приложение и настроить его интеграцию с bpmonline через OData.

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

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

Нравится

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

Добрый день, Виктор!
Укажите, пожалуйста, версию Вашего продукта.

Версия 7.6.0.1785

Виктор, в ходе общения было выявлено, что лид был создан в результате создания продажи и был в стадии "Ожидает продажи".
Спасибо!

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

Добрый день.

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

Спасибо.

Нравится

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

Добрый день, Евгения!

Длительность публикации зависит от количества пакетов и их зависимостей. В последних версиях bpm'online процесс публикации проходит значительно быстрей.
Ускорить процесс публикации можно при помощи увеличения аппаратных ресурсов сервера.

"Сергей Кy6риш" написал:Ускорить процесс публикации можно при помощи увеличения аппаратных ресурсов сервера

CPU, RAM, что-то еще? Можно привести примеры аппаратных ресурсов, на которых время публикации уже более-менее приемлимо?

Здравствуйте.
В этом вопросе нет чётких значений частоты CPU или объёма RAM. Каждый случай частный. Можно руководствоваться принципом: "чем больше, тем лучше", но также брать во внимание целесообразность. Рекомендуемые аппаратные характеристики серверов указаны в руководстве по установке. Что касается того, что больше нагружается, то это процессор (можете отметить в диспетчере задач процессы csc.exe и link.exe). Так же в значительной степени время компиляции зависит от места расположения редактируемого пакета в иерархии и наличия в нём замещающих схем. Например, если есть схемы 2-х типов (замещающие и обычные), то их можно определить в разные пакеты. Таким образом, к примеру, пакет с обычными схемами опубликуется очень быстро.
P.S.: стоит учитывать, что в конфигурации содержится порядка нескольких тысяч схем имеющих сложную иерархию связей и всё это учитывается при публикации.

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

Согласно международным исследованиям симбиоз процессов маркетинга, продаж и сервиса повышает годовой доход бизнеса в среднем на 32%, в то время как компании, которые не синхронизируют такие процессы сообщают о снижении выручки на 7%.

Как стать организацией, в которой маркетинг, продажи и сервис работают синхронно на достижение единой цели?

10 ноября в 19:00 (МСК) команда бостонского офиса bpm’online проведет совместный вебинар с Полом Гринбергом — автором бестселлера «CRM со скоростью света» и всемирно известным экспертом, которого называют «крестным отцом CRM».

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

На вебинаре вы узнаете, как:

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

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

Зарегистрироваться

Нравится

Поделиться

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

Алена, здравствуйте. Не получилось посмотреть. Если есть запись, поделитесь, плиз! Спасибо.

Владимир, вот ссылка на запись и презентацию https://www.bpmonline.com/paul-greenberg-webinar

Показать все комментарии
атрибуты
Технические вопросы
7.x

Возник такой вопрос. Как в 7.2 прописать для атрибут смены фокуса для поля:

bankModuleUtils.getTextEdit("DocumentSeries", {
value: {
bindTo: "DocumentSeries"
},
enabled: {
bindTo: "IsEnabled"
}
})

И вообще как можно увидеть весь список доступных атрибутов для этих контролов?

Нравится

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

Добрый день!

Есть булевый атрибут focused - признак получения элементом фокуса. Вы его имеете в виду? Необходимо просто добавить его в конфигурацию создаваемого контрола и указать ему значение или привязку к атрибуту модели (который предварительно добавить в модель):

bankModuleUtils.getTextEdit("DocumentSeries", {
	value: {bindTo: "DocumentSeries"},
	enabled: {bindTo: "IsEnabled"},
	focused: true
})

или

bankModuleUtils.getTextEdit("DocumentSeries", {
	value: {bindTo: "DocumentSeries"},
	enabled: {bindTo: "IsEnabled"},
	focused: {bindTo: "IsFocused"}
})

Увидеть все доступные свойства и методы проще всего в отладчике. К примеру, установите точку останова на инициализации какой-либо страницы и выполните в консоли код:

var newTextEdit = Ext.create("Terrasoft.TextEdit");

После этого в переменной newTextEdit можно будет увидеть все свойства и методы контрола TextEdit.

Показать все комментарии
мультивалютное поле
отображение
проблема
Технические вопросы
7.x

Добрый день!
В Sales базовом пакете Invoice.InvoicePageV2 при наличии 2х мультивалютных полей возникает нарушение структуры отображения страниц

Для воспроизведения данной проблемы необходимо:
1. Открыть карточку редактирования нового счета в разделе «Счета»
2. Нажать на кнопку редактирования поля «Сумма» мультивалютного поля для отображения дополнительного окна
3. Закрыть окно, вызванное в п.2 щелкнув в любом месте окна
4. Нажать на кнопку редактирования поля «Сумма оплаты» мультивалютного поля для отображения дополнительного окна
5. Перейти в другой раздел.
6. После этого появляется дополнительные нескрытые поля сверху страницы.
Данный кейс актуален для страниц, где больше одного мультивалютного поля.

Кто-нибудь встречался с такой проблемой?

Нравится

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

Добрый день, Илья!

Проверил описанный Вами кейс на релизной сборке 7.6.0.1114 Sales_omnichannel и никаких сбоев или ошибок в отображении структуры не обнаружено на страницах с несколькими мультивалютными полями. В связи с чем просьба учтонить о какой версии и продукте идет речь, а также выполнялись ли какие-либо доработки в объекте Invoice?

Валерий, для Вас подготовил gif-файл. Попробуйте также.

Данная проблема встретилась в пакетах без доработок Invoice в SalesEnterprise 7.6.0.1126 и SalesOmnichannel 7.6.0.1028.

Здравствуйте, Илья!

Предлагаю Вам написать на почтовый ящик support@terrasoft.ru - в таком случае служба поддержки сможет оказать более квалифицированную помощь.

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