Вопрос

При обновлении до 7.11.2 отвалился DataService. Ничего не поменялось в коде внешнего приложения, всё соответствует документации. Авторизация проходит нормально, но 

https://my.site/0/dataservice/json/reply/InsertQuery - выдает 403-ю ошибку Forbidden.

Подскажите, куда копать?

 

У меня такой же вопрос

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

Добрый день, Алексей!

Проверьте Web.config, а именно значение атрибута UseCsrfToken (https://academy.terrasoft.ru/documents/technic-sdk/7-10/zashchita-ot-csrf-atak-pri-integracii-c-bpmonline), если указано значение true, тогда стоит обратить внимание на формирование хедера запроса.

При включенной csrf защите необходимо отправлять BPMCSRF- токен и BPMCSRF -куки, тогда хедер должен выглядеть следующим образом: 

 

Tsopa,Спасибо. Отключил этот флаг и всё снова работает!

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

Всем доброго времени суток! Столкнулись со следующей проблемой. Создаем шаблон Email, при сохранении выдает - https://prnt.sc/httbxf.
Картинки сжали по максимуму. Как можно увеличить порог загружаемого шаблона?
Поправка, бьет данную ошибку при отправке. Отправка через раздел Email. Интеграция с сервисом UniOne.
Заранее благодарю!

У меня такой же вопрос

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

Алексей, добрый день!

По умолчанию в приложении максимальный размер шаблона – 1,5 Мб. Для изменения необходимо заместить схему CESMaillingProvider. Заместить схему CESMaillingProvider стандартным способом при помощи замещения родительской схемы нельзя. Для замещения CESMaillingProvider необходимо создать свой класс, в котором скопировать весь код из CESMaillingProvider. В кастомном классе уже изменить реализацию метода ValidateTemplateSize, в котором вместо MailingMaxTemplateSize указать свой размер. После этого необходимо в таблице SysMalingProvider изменить значение ClassName для Cloud Email Service на название кастомного класса.

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

Есть проблема в отображении отчета.
Создал отчет "Звіт про виконану роботу"
Зарегистрировал его, с формой фильтрации. должно выводить 7 записей(по фильтру)
делал по примеру старого отчета "Отчет о проделанной работе", Но у меня почему то выводит 7 таблиц по 7 записей...
Кроме того нужно еще вывести 2 таблицы, тоже активности но с другими фильтрами, как добавить в данные еще 2 таблицы Активности?ф

У меня такой же вопрос

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

Решил! Из базового отчета нужно перетащить данные, а именно таблицу DetailTable, после этого все выводит как нужно в одном образце)

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

Как сделать формат страницы С5? в настройках devexpress Установил, но при формированиее - выходит А4

У меня такой же вопрос

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

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

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

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

Спасибо, что помогаете улучшать наши продукты!

Прошу прощения, оно было в нужном формате, просто на первый вид оно отображало тот же А4)

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

Кто сталкивался с данной ошибкой?

У меня такой же вопрос

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

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

Для успешной аутентификации дизайнера отчетов следует добавить "/UserService.svc" через запятую в запись "DisableCsrfTokenValidationForPaths" в web.config Loader-a.

Получится запись следующего вида
<add key="DisableCsrfTokenValidationForPaths" value="/AuthService.svc/SsoLogin,/UserService.svc" />.

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

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

есть простой до безобразия код:

var select = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Usrgifts" });
                select.addColumn("id");
                select.getEntityCollection(function(result) {
                    if (result.success) {
                        var collection = result.collection;
                        collection.each(function(item) {
                            this.set("UsrPriceodPresent", 34);
                        }, this);
                    }
                }, this);

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

можете подсказать в чем проблема?

У меня такой же вопрос

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

Добрый день

Такого не бывает :) На вкладке Network должна быть информация. И что значит вылетает? Он должен внутрь зайти только после возврата результата с сервера

Артем Гура,

Да, вы правы. Впечетление что оно внутрь заходит и там теряется(. Но это вроде прошло, скопировал другой рабочий запрос и по 1 строке переправил на тот что мне нужно -

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Usrgifts"});
                esq.addAggregationSchemaColumn("UsrPriceodPresent", Terrasoft.AggregationType.SUM, "RecalcGiftsAmountContact");
                esq.filters.add("OnlyEWS", this.Terrasoft.createColumnFilterWithParameter(
                    this.Terrasoft.ComparisonType.EQUAL, "Usrgiftscontact", this.get("PrimaryColumnValue")));

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

Заработало! Сначала все  написал)

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

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

У меня такой же вопрос

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

1) с помощью бизнес правил. прописать их в странице редактирования карточки этой детали

2) там есть кусок, в котором формируется контрол. можно для определённых полей прописать enabled: false (прям в коде детали)

getDefaultCellControlsConfig: function(columnName, params) {
	var config = {
		itemType: Terrasoft.ViewItemType.MODEL_ITEM,
		name: columnName,
		labelConfig: {visible: false}
	};
	if (columnName === "TmName") {
		config.enabled = false;
	}
}

+можно попробовать в объекте сделать режим использования нужной колонки - никогда (в этом способе я не уверен)

Добрый день! Попробуйте в модуле детали (который от BaseDetailV2 наследуется) определить isEditableColumn(columnName). Чтобы он заработал, в методе на детали generateActiveRowControlsConfig, в конфиге поля задать свойству enabled соответствие методу isEditableColumn

generateActiveRowControlsConfig: function(id, columnsConfig, rowConfig) {
                this.columnsConfig = columnsConfig;
                var gridLayoutItems = [];
                var currentColumnIndex = 0;
                this.Terrasoft.each(columnsConfig, function(columnConfig) {
                    var columnName = columnConfig.key[0].name.bindTo;
                    var column = this.getColumnByColumnName(columnName);
                    var cellConfig = column ? this.getCellControlsConfig(column)
                        : this.getNotFoundCellControlsConfig(columnName);
                    cellConfig = this.Ext.apply({
                        layout: {
                            colSpan: columnConfig.cols,
                            column: currentColumnIndex,
                            row: 0,
                            rowSpan: 1
                        }
                    }, cellConfig);
 
                    cellConfig.enabled = this.isEditableColumn(columnName);
 
                    if (!cellConfig.hasOwnProperty("isNotFound")) {
                        gridLayoutItems.push(cellConfig);
                    }
                    currentColumnIndex += columnConfig.cols;
                }, this);
                var gridData = this.getGridData();
                var activeRow = gridData.get(id);
                var rowClass = {prototype: activeRow};
                BusinessRulesApplier.applyRules(rowClass, gridLayoutItems);
                var viewGenerator = this.Ext.create("Terrasoft.ViewGenerator");
                viewGenerator.viewModelClass = this;
                var gridLayoutConfig = viewGenerator.generateGridLayout({
                    name: this.name,
                    items: gridLayoutItems
                });
                rowConfig.push(gridLayoutConfig);
            }

 

Благодарю! Помогло! Рекомендую!

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

Здравствуйте! Столкнулся с такой проблемой: обновляюсь с версии 7.10.3 на 7.11.0. Все нормально работает, прогружается экран с логином, главный экран, но в некоторые разделы (например Контрагенты или Контакты) не могу зайти. Пишет "Недостаточно прав, обратитесь к администратору", при том, что у меня у самого админские права. Может при обновлении напортачил с конфигами? Подскажите пожалуйста

У меня такой же вопрос

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

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

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

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

Подскажите, пожалуйста. 

У контакта две почты: личная и корпоративная. Он хочет получать рассылки и на одну и на вторую. Возможно ли это или единственный вариант - это создание двух карточек контакта с указанием разных почтовых адресов? 

Заранее спасибо за ответ! 

 

С Уважнием,
Надежда

У меня такой же вопрос

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

Добрый день!

Фактически ведь это два контакта с разными почтами. 
Вероятнее всего, решение в этой ситуации - как раз создавать два контакта с разной почтой.

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

Итак вопрос вот в чём. 

В поставке Marketing есть некие разделы Email и Мероприятия, в этих раздел есть деталь с аудиторией для рассылки или в Мероприятиях это деталь Контакты, где можно как добавить непосредственно самих контактов (из представленного списка) или же выбрать некую группу контактов.

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

Собственно покопавшись внутри схем этих деталей я заметил что они используют метод миксина SegmentsStatusUtils, который в свою очередь вызывает сервис MandrillService, который вызывает BulkEmailAudienceHelper.

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

MandrillService вызывается с 200 кодом, по его итогу должен был вызваться хелпер, который должен был вызвать БП добавление аудитории, но этого не произошло.

Кто с таким родом задач связывался и кто может подсказать куда копать всё-таки?

Или есть обходной путь, чтобы не проходить эти круги сами знаете чего.

У меня такой же вопрос

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

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

Если вы хотите создать деталь аналогичную детали Аудитория, то не советуем использовать базовую функциональность, так как она написана под конкретные цели приложения. Легче и правильнее будет написать свою функциональность.Ниже шаги, на которые нужно ориентироваться.

Для статических груп действительно нужно просто получить записи из ContactInFolder(если это контакты).

Для динамических групп:

1. Получить id группы (из ContactInFolder)

2. По id группы получить соответствующий фильтр для этой группы.

3. Преобразовать полученный фильтр в sql-запрос.

4.Завернуть sql-запрос в insert.

5. Выполнить insert в таблицу детали.

Все эти действия можно реализовать как через бизнес процесс так и через сервис или класс.

 

 

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