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

Нравится

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

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

Dima Avdoshin,

Дмитрий спасибо!
Можно редактировать имеющуюся активность или нужно замещающий объект создавать?

Ещё один легкий способ. Если в новом разделе нужна ActionsDashboard и кейсы, то добавляя кейс, сразу же добавляются нужные поля в активности

Сергей Рогов,

замещающий, потому что вам же нужно как то связь указать с активностью

Dima Avdoshin,

Спасибо!

Владимир Соколов,

Спасибо за такой вариант, на нём и остановился

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

Добрый вечер.

 

Подскажите, пжл, куда в Системе необходимо смотреть (где производить настройки/разработку), чтобы выполнить следующие требования в представлении "Календарь" раздела "Активности":

- закрепить шапку календаря (при наличии большого количества многодневных задач шапка после прокрутки скрывается, оставаясь "сверху")

- отсортировать записи не по полю "Начало", а по полю "Завершения"

Нравится

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

Попробовал уменьшить окно браузера.

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

 

Это компонент ядра Terrasoft.controls.ScheduleEdit, он реализован в файле https://сайт/0/core/hash/Terrasoft/controls/schedule-edit/schedule-edit…

 

Там, если смотреть HTML-код страницы, есть три блока, сверху вниз: title-area, multi-day-item-area, scroll-area. Даже по названию видно, что прокручиваться предназначен третий, с обычными задачами.

 

То есть, это код ядра, не конфигурации.

Сортировка по началу, видимо, там же:

	/**
	 * Returns the sorted list of calendar items.
	 * @private
	 * @param {Array} schedulerItemList List of calendar items.
	 * @return {Array} Sorted list of calendar items.
	 */
	sortScheduleItemList: function(schedulerItemList) {
		const sortItemList = [];
		Terrasoft.each(schedulerItemList, function(item) {
			if (!item.isMultiDayItem()) {
				sortItemList.push(item);
			}
		});
		sortItemList.sort(this.sortScheduleItemListByStartDate);
		return sortItemList;
	},
 
	/**
	 * Returns the result of comparing 2 calendar items by date.
	 * @private
	 * @param {Object} itemA Item #.
	 * @param {Object} itemB Item B.
	 * @return {Array} The result of comparing 2 calendar items by date.
	 */
	sortScheduleItemListByStartDate: function(itemA, itemB) {
		let result = 0;
		const itemAStartDate = itemA.startDate;
		const itemADuration = itemA.dueDate - itemAStartDate;
		const itemBStartDate = itemB.startDate;
		const itemBDuration = itemB.dueDate - itemBStartDate;
		if ((itemAStartDate === itemBStartDate) && (itemADuration === itemBDuration)) {
			result = 0;
		} else if (itemAStartDate > itemBStartDate) {
			result = 1;
		} else if (itemAStartDate < itemBStartDate) {
			result = -1;
		} else if (itemADuration > itemBDuration) {
			result = -1;
		} else if (itemADuration < itemBDuration) {
			result = 1;
		}
		return result;
	},

 

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

 

Возможно, если у Вас так много в расписании многодневных задач, есть смысл применить диаграмму Ганта? Есть пара дополнений с её реализацией.

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

Вот как раз, если много задач, то при пролистывании ползунком скрывается шапка, прилагаю скриншот:

// + где настроить, чтобы  <отсортировать записи не по полю "Начало", а по полю "Завершения">/

Попробовал уменьшить окно браузера.

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

 

Это компонент ядра Terrasoft.controls.ScheduleEdit, он реализован в файле https://сайт/0/core/hash/Terrasoft/controls/schedule-edit/schedule-edit…

 

Там, если смотреть HTML-код страницы, есть три блока, сверху вниз: title-area, multi-day-item-area, scroll-area. Даже по названию видно, что прокручиваться предназначен третий, с обычными задачами.

 

То есть, это код ядра, не конфигурации.

Сортировка по началу, видимо, там же:

	/**
	 * Returns the sorted list of calendar items.
	 * @private
	 * @param {Array} schedulerItemList List of calendar items.
	 * @return {Array} Sorted list of calendar items.
	 */
	sortScheduleItemList: function(schedulerItemList) {
		const sortItemList = [];
		Terrasoft.each(schedulerItemList, function(item) {
			if (!item.isMultiDayItem()) {
				sortItemList.push(item);
			}
		});
		sortItemList.sort(this.sortScheduleItemListByStartDate);
		return sortItemList;
	},
 
	/**
	 * Returns the result of comparing 2 calendar items by date.
	 * @private
	 * @param {Object} itemA Item #.
	 * @param {Object} itemB Item B.
	 * @return {Array} The result of comparing 2 calendar items by date.
	 */
	sortScheduleItemListByStartDate: function(itemA, itemB) {
		let result = 0;
		const itemAStartDate = itemA.startDate;
		const itemADuration = itemA.dueDate - itemAStartDate;
		const itemBStartDate = itemB.startDate;
		const itemBDuration = itemB.dueDate - itemBStartDate;
		if ((itemAStartDate === itemBStartDate) && (itemADuration === itemBDuration)) {
			result = 0;
		} else if (itemAStartDate > itemBStartDate) {
			result = 1;
		} else if (itemAStartDate < itemBStartDate) {
			result = -1;
		} else if (itemADuration > itemBDuration) {
			result = -1;
		} else if (itemADuration < itemBDuration) {
			result = 1;
		}
		return result;
	},

 

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

Спасибо за ответ. Возможно ли запланировать в базовой функциональности фиксацию шапки календаря и возможность настройки сортировки?

Завёл идеи о шапке многодневных и способе сортировки.

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

Коллеги, доброго дня!

Подскажите, как реализовать раскраску активностей в ActionsDashboard?

 

Заранее благодарю за любые подсказки.

Нравится

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

Это схема ActionsDashboardItemContainer, также см. ActionsDashboardCSS, где задаются визуальные свойства, в частности background-color:

		.dashboard-container-item {
			position: relative;
			display: inline-block;
			padding: 14px 14px 14px 14px;
			min-height: 104px;
			background-color: rgb(255, 255, 255);
			border: rgb(225, 225, 225) solid 1px;
			box-shadow: 3px 3px 3px rgba(225, 225, 225, 0.2);
			margin: 6px 3px 0 3px;
			width: calc(~'50% - 6px');
			transition: box-shadow 0.2s ease;
			&:hover {
				box-shadow: 3px 3px 3px rgba(225, 225, 225, 0.6);
			}
		}
	}
}

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

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

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

Благодарю за ответ!

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

Добрый день! Возможно ли в интерфейсе BPM Online настроить уведомления в почту о том, что есть незакрытые активности?

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

Нравится

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

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

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

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

Александр, спасибо за ответ! Скорее всего такой вариант устроит.

Не могли бы Вы подсказать где можно найти более подробную инструкцию по созданию логических полей и бизнесс процессов?

Вся эта информация есть в академии: поля, если они чисто служебные, без отображения, можно добавить в дизайнере объектов. Если и в каротчку — в мастере разделов.

А в этой статье есть готовое решение Вашей задачи:

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

Если просроченных задач очень много, то можно отправлять список одним письмом, используя добавление таблицы с задачами в текст письма с помощью дополнения https://marketplace.terrasoft.ua/template/data-table-e-mail-bpmonline

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

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

таблице со столбцами

Ответственный | Количество активностей

Нравится

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

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

За основу можете взять пример воронки продаж в дешбордах - там тоже реализована возможность фильтрации периода.

Также посмотрите статью на Академии по добавлению пользовательского виджета итогов.

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

За основу можете взять пример воронки продаж в дешбордах - там тоже реализована возможность фильтрации периода.

Также посмотрите статью на Академии по добавлению пользовательского виджета итогов.

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

Был создан бизнес-процесс, в нем создается активность типа "Выполнить задачу" с названием "Провести презентацию". В ней есть привязка процесса к обьекту. Запускается она по событию изменения стадии (в условии фильтр: "по процессу = да", "Id = Id текущей продажи". После перезагрузки страницы (чистки кэша) плитка появляется. Самое интересное что другие активности появляются нормально, до этой в предыдущем процессе и после нее нормально тоже в этом же процессе. Если отключить "по процессу = да" в сигнале - все идет нормально и появляется тоже

 

Нравится

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

Там, где комментарий «Привязка процесса к объекту» точно всё в порядке? Может, там элемент-разветвление забыли?

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

это модифицированный стандартный процесс, в той части он так и был

Так «был создан бизнес-процесс» или таки «модифицированный стандартный процесс»?wink

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

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

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

Если вне зависимости от логики то появляется, то нет, дело может быть в сбоях при работе веб-сокетов. Может, на компьютерах пользователей браузеры по разному настроены или firewall банит такие запросы извне, без отладки сложно сказать.

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

Подскажите, как сделать, чтобы емейлы, приходящие на почту сотрудника отображались в его календаре активностей. При этом важно, чтобы отображались только те емейлы, контакты которых есть в CRM. То есть емейлы от всяких рассылок и прочего мусора не нужно отображать. 

Соответственно, если сотрудник написал исходящий емейл - он тоже должен отображаться в его календаре. 

Нравится

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

Попробуйте использовать встроенные бизнес-процессы объекта "Активности" (подробнее про встроенные бизнес-процессы тут: https://academy.terrasoft.ua/documents/technic-sdk/7-12/primer-ispolzovaniya-vstroennogo-processa-obekta-dobavlenie-avtonumeracii-k-polyu-stranicy, раздел "Алгоритм реализации кейса на стороне сервера").

При создании новой активности с типом E-mail вы можете проверить все нужные поля (есть ли E-mail отправителя у вас в системе, кому письмо предназначено и т.д.), а далее, нужные E-mail с нужными полями отобразить в календаре.

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

Добрый день, известно, что для активностей можно сделать разные страницы для каждого из ее типов. Создал я тип Активности "Звонок" и создал для нее собственную страницу. Вопрос: как привязать то, что для типа активности "Звонок" создана новая страница к пакету?

Нравится

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

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

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

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

Demchenko Olha,

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

Victor Ivanitski,

Для привязки вашей страницы, нужно добавить запись в таблицу SysModuleEdit, где в CardSchemaUId указать UId вашей страницы из таблицы SysSchema.

Пример скрипта для выборки существующих привязанных страниц к Активности:
select * from SysModuleEdit where SysModuleEntityId in (select Id from SysModuleEntity where SysEntitySchemaUId in (select Uid from SysSchema where Name like 'Activity'))
 

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

Здравствуйте! Подскажите, пожалуйста, можно ли в местах, отмеченных на скриншоте добавить кнопки "Завершить" и соответствующий процесс?

Нравится

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

Здравствуйте, Мария.
Добавить кнопку "Завершить" в активную строку таблицы (Datagrid) можно.
В элементе Datagrid для этого предусмотрен параметр activeRowActions.
Пример его применения можно посмотреть
https://academy.terrasoft.ru/documents/technic-sdk/7-9/sozdanie-detali-…, там речь про деталь, но в Datagrid как раз добавляются кнопки.
Запуск соответствующего процесса по кнопке можно посмотреть здесь
https://academy.terrasoft.ru/documents/technic-sdk/7-9/zapusk-processa-…
Вот про второй пункт... К сожалению, не сталкивался...

"Maria H" написал: кнопки "Завершить" и соответствующий процесс?

"Лапшин Павел Александрович" написал: К сожалению, не сталкивался...

ПО поводу 2 пункта: Ломаем схему ReminderNotificationsSchema, в diff ищем

{
	"operation": "insert",
	"name": "ActionsButtonPostpone",
	"parentName": "NotificationActivityItemContainer",
	"propertyName": "items",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"classes": {
			"wrapperClass": ["notificationActionButtonWrap-class"]
		},
		"style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
		"menu": {
			"items": [{
				"caption": {"bindTo": "Resources.Strings.PostponeMenuItemCaption"},
				"menu": {
					"items": {"bindTo": "getNotificationActionButtonMenuItems"},
					"tag": "postpone"
				}
			}, {
				"caption": {"bindTo": "Resources.Strings.CancelMenuItemCaption"},
				"click": {"bindTo": "cancel"}
			}]
		}
	}
}

Накидываем в "menu" свою кнопку и обработчик.

Спасибо за помощь, второй пункт получился :smile:

а в первом случае при использовании activeRowActions возникает ошибка :

Uncaught Terrasoft.InvalidOperationException: Элемент "DataGrid" не должен содержать параментра "activeRowActions"

Подозреваю, что вы пытаетесь сделать merge. Скорее всего так не получится. Попробуйте как в baseSection:

diff:
{
	"operation": "insert",
	"name": "DataGridStopActivityAction",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": "blue",
		"caption": "Завершить",
		"tag": "stopActivity"
	}
}
 
methods:
onActiveRowAction: function(buttonTag, primaryColumnValue) {
	this.callParent(arguments); //или скопировать switch из baseSection и отредактировать его
	if (buttonTag === "stopActivity") {
		//вызов процесса
	}
}

Спасибо :smile:

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

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

Нравится

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

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

Изначально, у пользователя портала ограничено количество объектов, на которые он имеет права доступа. На объект активности у пользователя портала доступа нет.

Портал самообслуживания реализован исключительно для продукта "Service" и работу с обращениями.

Но, Вы можете попытаться реализовать необходимую логику руководстуясь инструкцией:
1) Права на объекты для портальных пользователей регулируются справочником "Объекты, доступны пользователям портала", как правило, данный справочник заполняется с помощью скрипта "InsertPortalUserCanReadRightsMSSql" - в нем необходимо указать перечень объектов на которые будут даваться права. (данные права никак не относятся к администрированию системы).
2) На необходимые объекты должны быть розданы права на операции и на записи для пользователей портала.
3) Разделы, схемы страниц и т.д на портал создаются отдельно, по подобию как реализовано с обращениями и базой знаний. Иструкцию как создать и зарегистрировать раздел для портала прикрепил "Установка+разделов+на+портале".

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

Спасибо за подробный ответ! Буду разбираться.

Михаил, тоже интересует вопрос создания разделов и схем страниц на портале. Можете прикрепить файл, который упоминали в предыдущем комментрии "Установка+разделов+на+портале"?

Добрый день!

Инструкция доступна по адресу - http://tsrdp.tscrm.com/support/Pub/A.Armenchu/Установка+разделов+на+пор…

Арменчу Артём Александрович,

Артем, добрый день! 

По указанной ссылке выдает 404 ошибку

Николай, прошу прощения. 

Новая ссылка:

http://tsrdp.tscrm.com/support/Pub/Adasyuk/Установка раздела на портале.zip

Арменчу Артём Александрович,

Ссылки по прежнему битые. 
Есть вопрос: Как на портале можно создать несколько рабочих  мест с различным набором разделов и своей главной страницей для разных ролей пользователей портала (по аналогии с партнёрским порталом самообслуживания Теrrasoft)

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