Версия 7.11

создаю уведомления пользователю

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

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

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

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

Нравится

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

Такое может быть, если неверно создан самодельный NotificationProvider. Подобное было, когда в схеме нового провайдера не сохранились локализированные строки с текстом сообщений, после их исправления всё заработало.

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

Как получить ID справочного значения в JS зная только название для того что бы потом установить его в выпадающем списке справочника?

Нравится

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

Коваленко Илья,

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "Contact"
});
esq.addColumn('Id');
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name));
esq.getEntityCollection(function(response)
{
	if(response.success)
	{
		var entities = response.collection.getItems();
		Terrasoft.each(entities, function(item){
			var id = item.get('Id');
		});
	}
});

 

Добрый день!

Без дополнительного запроса в базу для получения id справочника по названию (например) не получится сделать.

Если справочник не планируется изменять, то значения справочника лучше вынести в константы.

Сидоров Александр В., Можете показать пример такого запроса?

Коваленко Илья,

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "Contact"
});
esq.addColumn('Id');
esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name));
esq.getEntityCollection(function(response)
{
	if(response.success)
	{
		var entities = response.collection.getItems();
		Terrasoft.each(entities, function(item){
			var id = item.get('Id');
		});
	}
});

 

Сидоров Александр В.,

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

esq.rowCount = 1

 

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

Согласен. Но справочник может быть не уникален по имени. Поэтому и привел пример со списком, где надо делать постобработку

Сидоров Александр В.,

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

Показать все комментарии
7.14_()
sales

Добрый день всем. Создаю деталь, она должны быть как выпадающее окошко для заполнения данных, а у меня вышла как новая страница, на которой заполняются данные. Первый скрин - как у меня вышло, второй - как должно быть.Изображение удалено.Изображение удалено.

Нравится

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

К сожалению, возможность создавать деталь с редактируемым реестром с помощью мастера отсутствует.

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

К сожалению, возможность создавать деталь с редактируемым реестром с помощью мастера отсутствует.

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

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

Здравствуйте, выполняю вот такое задание:

Реализовать следующую логику: 

при добавлении новой записи 

«Задолженности» должна производиться выборка всех договоров данного должника, 

суммирование значений полей «Общая сумма задолженности», 

«Основной долг», «Штрафы», 

«Проценты и комиссии» данных записей объекта 

«Договоры» и запись в соответствующие поля текущей записи объекта «Задолженности». 

Реализуется с помощью бизнес процесса, который запускается по событию «Добавление записи» текущего объекта

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

 

Нравится

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

Действительно, как подсказал выше Александр  используя в элементе чтения данных параметр [СЧИТАТЬ ФУНКЦИЮ] = Сумма, а потом элемент Измtнить данные позволяет избежать кодирования :)

Добрый день!

Данные из коллекции нужно считывать так:

var entities = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");

Т.е. в вашем случае код будет таким:

var entities = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");
 
var result = 0;
 
foreach(var entity in entities) 
{
    	var sum = 0d;
    	if (entity.TryGetValue<double>("Sum", out sum))
    	{
    		result += sum;  
    	}
}

 

Сидоров Александр В.,

Т.е. мне надо использовать задание-сценарий? А как потом из него получить это значение для записи? Или мне все в одном сценарии можно выполнить?

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

Действительно, как подсказал выше Александр  используя в элементе чтения данных параметр [СЧИТАТЬ ФУНКЦИЮ] = Сумма, а потом элемент Измtнить данные позволяет избежать кодирования :)

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

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

При включении визирования дизайнер виснет, а в консоле выбивает ошибку:

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

Кто сталкивался с этим?

Нравится

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

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

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

Заменил модуль ReportFilterModule. скопировал полностью код. После замещение форма фильтрации изменилась... лукапное поле стало на всю страницу по ширине, пропали заголовки... С чем это может быть связано?

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

Нравится

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

Вы не добавили локализируемые строки и могли не перенести стили контролов во вкладке LESS.

LocalizableStrings?

Вы не добавили локализируемые строки и могли не перенести стили контролов во вкладке LESS.

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

С полем решилось, спасибо!

Строки сами перенеслись

function getPeriodreportButtonViewConfig(filterName) {
	var config = getReportButtonBaseConfig();
	config.imageConfig = resources.localizableImages.PeriodButtonImage;
	config.menu = {
		items: [
			{
				className: "Terrasoft.MenuItem",
				caption: resources.localizableStrings.YesterdayCaption,
				click: {
					bindTo: "setPeriod"
				},
				tag: filterName + "_Yesterday"
			},
.............

Отладчик показывает, что таких строк нет!

Дело может быть аналогично соседней Вашей теме, когда после перекомпиляции/перезапуска/очистки Redis/очистки кэша в браузере все начнёт отображаться корректно.

Зверев Александр, НИЧЕГО не помогло. Заметил еще такую же ошибку при замещении модуля FixedFilterViewV2. тут уже во всех разделах пропали заголовки. 

Возможно, при замещении что-то сделали не так. Попробуйте воспроизвести такое же поведение на развёрнутом триал-сайте без доработок.

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

Впервые хотел использовать этот элемент , и возможно некорректно настроил. 

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

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

Нравится

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

Кирилл Паксюдкин,

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

Под Supervisor, так как этот пользователь системный администратор, права забираться не будут - у этого пользователя максимальные права доступа на все.

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

Посмотрите, обучающее видео про настройку прав доступа. Обратите внимание на приоритет прав доступа!

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

Проверьте соответствуют ли ваши записи указанным условиям отбора (фильтрации)

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

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

фильтрация правильная, 

Шаг я запускал как от простого пользователя так и от Supervisor никакой блокировки нет.

Кирилл Паксюдкин,

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

Под Supervisor, так как этот пользователь системный администратор, права забираться не будут - у этого пользователя максимальные права доступа на все.

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

Посмотрите, обучающее видео про настройку прав доступа. Обратите внимание на приоритет прав доступа!

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

Показать все комментарии
Вкладка
браузер
7.13_()
sales

Прошу подсказать: в силу определённых задача сотрудникам приходится открывать несколько обращений в отдельных вкладках браузера. При этом идентифицировать их можно только переключаясь между вкладками.

Вопрос: как вывести на вкладку, например, вместо “bpm’online”, номер обращения, карточка которого открыта?

спасибо 

Нравится

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

Для смены заголовка страницы (вкладки) воспользуйтесь кодом

document.title = 'Заголовок';

Те при открытии страницы получите ее название и установите как заголовок

Как то так 

onEntityInitialized: function() {
	this.callParent(arguments);
	document.title = this.get("Number");
},

 

Для смены заголовка страницы (вкладки) воспользуйтесь кодом

document.title = 'Заголовок';

Те при открытии страницы получите ее название и установите как заголовок

Как то так 

onEntityInitialized: function() {
	this.callParent(arguments);
	document.title = this.get("Number");
},

 

Показать все комментарии
печатная форма
печать
переопределение метода
7.14_()
sales

Как переопределить метод Печати в разделах? 

 

Нравится

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

Добрый день!

Нужно переопределить метод

generatePrintForm: function(printForm)

в вашем разделе. Само описание метода лежит в PrintReportUtilities

Добрый день!

Нужно переопределить метод

generatePrintForm: function(printForm)

в вашем разделе. Само описание метода лежит в PrintReportUtilities

Сидоров Александр В., 

Можно пример переопределения метода печти?

 

См. тут. Но для 7.13 и выше такое не подойдёт, поскольку переопределение модулей запретили.

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

У меня развернуто именно 7.13 . Получается запрещено? Нельзя хотя бы видимость убрать в зависимости от значения какого ниб поля ? Было бы неплохо если бы разработчики дали возможность такие вещи сделать с помощью бизнес правил 

Можете завести идею прав на такую операцию. Стандартно такой не вижу.

Показать все комментарии
интеграция
веб-сервис
7.14_()
sales

Доброго времени суток, возникла задача по интеграции с внеш.приложением . В общем у меня есть раздел, у раздела есть кейсы на какой то из стадий нужно отправить данные веб-сервисом.Создал веб сервис добавил его в под-процесс в соответствующем шагу. Насколько эти шаги правильные с точки зрении задачи ? И главный вопрос как стороннее приложение должно ответить чтобы у меня поменялась стадия кейса? Это запуск БП извне или есть более адекватное решение?

Нравится

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

Да, элемент «Веб-сервис» в БП для этого и создавался.

В обратном направлнии можно извне либо запустить БП при помощи ProcessEngineService, либо менять значение поля по OData. В обоих случаях сначала нужно залогиниться, используя AuthService и получить CSRF-токен.

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