Вопрос

Всем добрый день. Версия 7.12.

Есть стандартная функциональность комментирования - Лента https://academy.terrasoft.ru/documents/customer-center/7-14/predstavlenie-lenta

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

Как альтернативный вариант - можно ли закрыть возможность комментирования отдельных записей не для конкретных пользователей, а вообще для всех, не закрывая при этом комментарии в соседних записях раздела.

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

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

Логика детали ленты сделана в схеме SocialFeed, там при нажатии кнопки «Опубликовать» или Enter на клавиатуре вызывается функция onPostPublishClick.

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

Или вообще не лезть в логику детали и просто её не инициализировать, переопределив updateDetails в BaseSectionPage для страницы нужного раздела, чтобы при нужном условии исключить инициализацию детали ленты и другие связанные с ней события.

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

Добрый день ! Тестирую метод создания пользователей через DataService.

Предварительно авторизуюсь через POST http://localhost/ServiceModel/AuthService.svc/Login от имени supervisor. В BPM supervisor имеет орг.роль System administrators, с разрешением управления справочником пользователей. После авторизации добавляю header BPMCSRF в заголовок запроса POST http://localhost/0/DataService/json/reply/InsertQuery.

Получаю ответ 500 SecurityException

"responseStatus": {
    "ErrorCode": "SecurityException",
    "Message": "Текущий пользователь не имеет прав на объект \"SysAdminUnit\"",
    "Errors": []
  }

Просьба прокомментировать, каких прав пользователю supervisor не хватает для создания пользователя в SysAdminUnit, возможно надо использовать другой способ

Текст запроса создания пользователей и ответ приложены

 

 

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

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

См. причину тут.

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

Есть ли рабочее решение для программного создания пользователей через DataService или другой интерфейс ?

Страница UserPageV2 работает через методы AdministrationService, такие как метод UpdateOrCreateUser.

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

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

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

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

На сколько я помню - никак. Используйте преднастроенную страницу.

На сколько я помню - никак. Используйте преднастроенную страницу.

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

Всем добрый день. Версия 7.15.

Существует инструкция: https://academy.terrasoft.ru/documents/administration/7-15/individualnye-nastroyki-uchetnoy-zapisi-pochty?document=administration#CSH_6 по добавлению подписи в письма.

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

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

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

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

scr_chapter_content_designer_create_template_multilanguage.gif

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

Добрый день!

Версия продукта: 7.14.1.935
Bpm Online Service

Если на странице есть 2 поля типа справочник, которые опираются на разные объекты, то можно ли для них настроить фильтрацию друг от друга только на уровне js (например, за счет использования filtration)?
Или требуется пересаживать их на новый объект, который содержит в себе значения обоих полей (скажем, join этих объектов + объекта, который содержит в себе описание связей)?

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

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

Александр Кулиш,

Мне ранее помогали коллеги из Сообщества Террасофт c фильтрацией по группе ответственных и Сервису. Возможно что-то пригодится Вам для реализации Вашей задачи. Посмотрите следующий пост:

https://community.terrasoft.ru/questions/kak-nastroit-filtr-po-servisu-i-gruppe-otvetstvennyh

Добрый день!

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

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

Напишите подробнее, какую задачу пытаетесь решить.

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

Добрый день!
Извините за задержку с ответом. Ожидал оповещения на почту в случае комментариев, но видимо они уже не ходят.

На карточке обращения есть поля:
1) группа исполнителя
2) исполнитель
Задача заключается в том, чтобы после выбора исполнителя меню с группами выводила только нужные группы и наоборот. После выбора группы вывод сотрудников, которые есть в этой группе.

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

 

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

Александр Кулиш,

Мне ранее помогали коллеги из Сообщества Террасофт c фильтрацией по группе ответственных и Сервису. Возможно что-то пригодится Вам для реализации Вашей задачи. Посмотрите следующий пост:

https://community.terrasoft.ru/questions/kak-nastroit-filtr-po-servisu-i-gruppe-otvetstvennyh

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

Добрый день!

Версия продукта: 7.14.1.935
Bpm Online Service

Идет доработка формы реклассификации в разделе обращений.
"Схема карточки редактирования действия реклассификации"
Был создал замещающий клиентский модуль.

Каким образом можно для кастомных полей прописать, чтобы при открытии формы реклассификации поля заполнялись текущими значениеми из обращения?
 

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

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

В этой карточке ReclassificationEditPage аналогичная логика реализована для полей из объекта обращения ServicePact, ServiceItem и Category. Попробуйте для своих полей сделать в коде подобным образом.

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

Добрый день!
Извините за задержку с ответом. Ожидал оповещения на почту в случае комментариев, но видимо они уже не ходят.
Да, спасибо. Так и делал.
Только не все действия удалось вычленить из того кода. 
Можете подсказать, какая логика в реклассификаторе отвечает за первоначальное заполнение полей при открытии консоли?
Попытки корректировки логики именно в этой части к успеху пока не привели.

О какой консоли речь?

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

Есть карточка Обращения. В ней заполнены необходимые поля.
Далее открываю консоль Реклассификации.
Вопрос: куда копать, чтобы найти логику заполнения полей консоли Реклассификации при ее открытии?

Ранее коробочный js-файл консоли реклассификации крутил, но не смог верным образом изменить заполнение новых полей.

Смотрите код ReclassificationEditPage. Что такое «консоль реклассификации» — увы, не знаю, стандартно такого механизма в системе нет. Возможно, это дополнение или проектная доработка.

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

Возможно я неверно выразился.
Из карточки заявки выбираем действие: "Реклассифицировать обращения"
js-страница: ReclassificationEditPage
Ее я и называл консолью.

В CasePage вижу нечто похожее на искомое:

/**
 * Prepares Reclassification properties name.
 * @protected
 * @virtual
 * @return {Array} Reclassification properties name.
 */
prepareReclassificationPropertyNames: function() {
	return ["Id", "Contact", "Account", "Category", "ServiceItem", "ServicePact", "ServiceCategory"];
},
.....
/**
 * Returns Reclassification default values.
 * @protected
 * @virtual
 * @return {Array} Reclassification default values.
 */
getRunReclassificationDefaultValues: function() {
	var defaultValues = [];
	var propertyNames = this.prepareReclassificationPropertyNames();
	Terrasoft.each(propertyNames, function(name) {
		this.addDefaultValue(defaultValues, name);
	}, this);
	return defaultValues;
},
 
.....
/**
 * Returns run Reclassification config.
 * @protected
 * @virtual
 * @return {Array} Run Reclassification config.
 */
getRunReclassificationConfig: function() {
	var defaultValues = this.getRunReclassificationDefaultValues();
	return {
		"schemaName": "ReclassificationEditPage",
		"operation": "add",
		"primaryColumnValue": null,
		"moduleId": this.sandbox.id + "_ReclassificationEditPage",
		"isSeparateMode": false,
		"isInChain": true,
		"defaultValues": defaultValues
	};
},

 

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

Огромное спасибо!

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

Добрый день!

Версия продукта: 7.14.1.935
Bpm Online Service

Идет доработка формы реклассификации в разделе обращений.
"Схема карточки редактирования действия реклассификации"
Был создал замещающий клиентский модуль.

Добавляю кастомное поле и для него
attributes "isRequired":true
но на выходе не вижу звездочки около поля.

Это стандартная ситуация или все же логика должна отрабатывать?

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

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

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

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

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

Возникла необходимость доработать процесс "Установка показателей просроченности обращений". Я скопировал данный процесс в свой пакет, отредактировал его под поставленные задачи. Обнаружил, что старый процесс "Установка показателей просроченности обращений" запускается каждый час системной настройкой CaseOverduesCheckTerm. Но не могу понять, как в этой системной настройке заменить старый процесс на мой, отредактированный. Помогите, пожалуйста, подскажите как это сделать?

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

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

Добавление запуска конкретного процесса CaseOverduesSettingProcess с интервалом из системной настройки CaseOverduesCheckTerm прописано в CaseSection:

/**
 * Sets initial values for SatisfactionUpdateProcessJob
 * @protected
 */
initSatisfactionUpdateProcessJob: function() {
	this.callSyncJobService(ServiceDeskConstants.SetSatisfactionTaskPeriod,
			"SatisfactionUpdateProcessJob", "SatisfactionUpdateProcess");
	var wasCheckTermSet = StorageUtilities.getItem("wasCheckTermSet");
	if (wasCheckTermSet) {
		return;
	}
	StorageUtilities.setItem(true, "wasCheckTermSet");
	this.Terrasoft.SysSettings.querySysSettingsItem("CaseOverduesCheckTerm",
			this.callOverdueSetter, this);
},
 
/**
 * Create a scheduler to run the process at intervals.
 * @param {Integer} value Value of the period in minutes
 * @param {String} jobname Name of the task scheduler
 * @param {String} processName The name of the process
 */
callSyncJobService: function(value, jobname, processName) {
	var config = {
		serviceName: "SyncJobService",
		methodName: "CreateSyncJob",
		data: {
			request: {
				JobName: jobname,
				ProcessName: processName,
				PeriodInMinutes: value
			}
		}
	};
	this.callService(config, this.Terrasoft.emptyFn, this);
},
 
/**
 * Create a scheduler start the installation process indicators overdue appeals.
 * @param {Integer} value The value of the system setting "Term inspection overdue treatment Minutes".
 * @overridden
 */
callOverdueSetter: function(value) {
	this.callSyncJobService(value, "CaseOverduesSettingJob", "CaseOverduesSettingProcess");
},

То есть, как минимум, нужно будет заменить в коде в самом конце фрагмента название процесса на Ваш, чтобы в планировщик добавлялся уже он. Если при этом в системе ещё останется Job для запуска старого процесса, надо будет удалять запуском метода CreateSyncJob из веб-сервиса SyncJobService с нулевым периодом, что означает удаление.

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

Добрый день.

 

Подскажите, где почитать про настройку балансировщика для bpm`online на Windows? Есть статья про HAProxy, но она не подходит, ввиду отсутствия серверов на линуксе.

 

Как можно выйти из ситуации, когда есть три сервера приложения, один из которых отдан под балансировщик. Встроенная роль WS Network Load Balancer или использовать ARR (К слову, не очень то работать хочет)?

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

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

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

Мы рекомендуем использовать haproxy для балансировки нагрузки в режиме sticky session. Haproxy разворачивается на пограничном сервере с ОС Linux. Другие способы балансировки мы не тестировали и не рекомендуем.
https://academy.terrasoft.ru/documents/technic-sdk/7-14/infrastruktura-prilozheniya
 

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

Добрый день!

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

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

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

Для полноценных пользователей карточке обращения на вкладке «Обработка» у каждого письма присутствует кнопка «Отображать email на портале»\«Скрыть email на портале». В текущей версии чтобы письмо отображалась, галочку нужно специально поставить.

Это понятно но не отображает все-равно

Поставьте галочку.

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