Структура
исполнитель
Группы

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

 

Можете ли поделиться Best practice реализации кейса в BPM из коробки?

В ServiceDesk требуется завести группы исполнителей. 

Группа исполнителей != организационая группа. К примеру, в группе исполнителей - "системные администраторы" будут сотрудники двух организационных групп - "Сетевой инфраструктуры" и "Серверной инфраструктуры". Т.о. группа исполнителей может состоять из части организационной группы или из двух (частей) групп. 

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

Нравится

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

Начните с просмотра этого обсуждения

Начните с просмотра этого обсуждения

В платном дополнении «Task Control for bpm’online» есть в том числе и постановка задачи на функциональную роль. Если и не покупать, то можно поставить тестовую версию и посмотреть, какой подход авторы программы реализовали.

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

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

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

В моём понимании функциональная роль - подразделение или сотрудник состоящий в какой-то команде (возможно, созданной между отделами или внутри отдела), выполняющий узкоспециализированные действия. К примеру - инженер IT-подразделения, задействованный в проекте разработки сервиса. 

См. о функциональных ролях здесь.

Статью читал, спасибо, вопросы остались по прежнему. 

Помогите, пожалуйста, понять логику. 

Предположим, что у меня есть команда проекта, в которой состоят сотрудники различных подразделений, функциональная роль - "Группа сопровождения проекта X".

Поступает обращение от клиентов по "проекту Х", которое эскалируется до функционального подразделения.  

Вот тут основная проблема - как эскалировать кейс до функционального подразделения? 

Подразделение — это не функциональная роль, а организационная.

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

Получается, в контексте моего примера команда проекта должна быть организационной ролью? И из этого вытекает второй вопрос - само название "организационная роль" отношения к организационной структуре моей организации не имеет, чуть более, чем полностью? 

Что мешает включать в несколько организационных одновременно? Вы же сами говорите, что это подразделение.

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

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

Смущает название + наличие синхронизации с LDAP, из которого вытягивается иерархия доменной структуры. 

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

 

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

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

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

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

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

Для BPMonline Service Desk. Подскажите, как технически реализуется возможность сортировки и прав доступа новых обращений в зависимости от сервиса/подсервиса для конечного исполнителья. Т.е. чтобы ряд групп исполнителей мог видеть обращения исключительно указанной для нее специфики. Если возможно в качестве детальной инструкции. Спасибо!

Нравится

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

Добрый день.

В свойствах объекта ServiceRequest укажите значение колонки Группа и опубликуйте объект.

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

Не совсем то, что я хотел. Допустим, что есть 10 предоставляемых видов сервисов. 2 из них делает одна группа, 2 из них другая, 2 из них третья и так далее. В разделе обращений каждая из групп может видеть только обращения предназначенные именно им(зависимость от выбранного типа сервиса при создании обращения для конкретной группы). Может быть создать несколько папок до раздела обращений и на них дать права? Тем не менее как нацелить на них необходимые сервисы? Пожалуйста, подскажите.

Если вопрос удобства, то корректнее всего было бы создать динамические группы с фильтрами по сервисам, выбранным в инциденте/запросе на обслуживание.
Если вопрос безопасности, то необходимо дописывать логику на сохранении записи. В объекте ServiceRequest, в процессе, на событии ServiceRequestInserted в задании-сценарии ServiceRequestInsertedScriptTask дописать insert, наподобие уже существующего:

var portalUsersSysAdminUnitUId = new Guid("f858d1b9-334b-e111-b408-00155d054c02");
Guid recordUId = Entity.PrimaryColumnValue;
int defPosition = 0;
var defaultSourceUId = new Guid("f41e0268-e324-4228-9e9e-5cb7cc906398");
var nowParameter = new QueryParameter("now", DateTime.Now, "DateTime");
var currentUserContactIdParameter = new QueryParameter("currentUserId", UserConnection.CurrentUser.ContactId);		
for (int operation = 0; operation <= 2; operation++) {
	var insertRight = new Insert(UserConnection)
		.Into("SysServiceRequestRight")
			.Set("CreatedOn", nowParameter)
			.Set("CreatedById", currentUserContactIdParameter)
			.Set("ModifiedOn", nowParameter)
			.Set("ModifiedById", currentUserContactIdParameter)				
			.Set("RecordId", Column.Parameter(recordUId))
			.Set("SysAdminUnitId", Column.Parameter(portalUsersSysAdminUnitUId))
			.Set("Operation", Column.Parameter(operation))
			.Set("RightLevel", Column.Parameter(true))
			.Set("Position", Column.Parameter(defPosition))
			.Set("SourceId", Column.Parameter(defaultSourceUId))
		as Insert;
	insertRight.Execute();
}

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

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

Guid groupId;
Guid subserviceId = Entity.SubserviceId;
switch (subserviceId.ToString()) {
	case "d79f2070-f36b-1410-f18a-0050ba5d6c38": //если такой-то подсервис
	groupId = new Guid("f15d4059-e23e-4ed9-9041-88a12736c031"); //то, даем права такой-то группе
	break;
	case "jf75j070-f36b-1410-f18a-hr7dj45d6c38": //а если такой-то подсервис
	groupId = new Guid("r45d4059-e23e-4ed9-9041-88a12736c741"); //то, даем права другой группе
	break;
	default: //условие по умолчанию
	groupId = new Guid("6e0a1b5e-7738-4a9c-9d2d-995f62e51e26"); //даем права группе такой-то
	break;
}
var defaultSource = new Guid("f41e0268-e324-4228-9e9e-5cb7cc906398");
var now = new QueryParameter("now", DateTime.Now, "DateTime");
var currentUserContactId = new QueryParameter("currentUserId", UserConnection.CurrentUser.ContactId);		
for (int operation = 0; operation <= 2; operation++) {
	var insertRight1 = new Insert(UserConnection)
		.Into("SysServiceRequestRight")
			.Set("CreatedOn", now)
			.Set("CreatedById", currentUserContactId)
			.Set("ModifiedOn", now)
			.Set("ModifiedById", currentUserContactId)				
			.Set("RecordId", Column.Parameter(Entity.PrimaryColumnValue))
			.Set("SysAdminUnitId", Column.Parameter(groupId))
			.Set("Operation", Column.Parameter(operation))
			.Set("RightLevel", Column.Parameter(true))
			.Set("Position", Column.Parameter(0))
			.Set("SourceId", Column.Parameter(defaultSource))
		as Insert;
	insertRight1.Execute();
}
Показать все комментарии
email
задача
исполнитель
Технические вопросы
Разработка

С некоторого времени у пользователей, не являющихся администраторами, не отправляются сообщения о назначении задачи исполнителям. Выдается сообщение "Сообщение не отправлено. Неверный шаблон или адрес". В отладчике нашел, что почему-то "AddressesList" пустой (AddressesList.Count = 0) . Под администратором все работает.
Где искать ошибку?

Нравится

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

Добрый день, Станислав!

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

Права на шаблон "Напоминание о задаче" у всех пользователей на чтение. Такие же права на внутренние контакты.

Пожалуйста, укажите название и номер версии продукта, тип СУБД, версию ОС и MSOffice. Попытаюсь воспроизвести.
Если ничего не помогает, рекомендую обращение в службу поддержки.

Terrasoft Sales 3.1.0.16 на SQL2000. Ошибка воспроизводится на Windows XP и 2003. Office 2003. В Outlook отключена надстройка Terrasoft CRM Add-Inn. У пользователя отключена привязка и автопривязка в отправке и приемке (сейчас доступ к модулю E-mail у пользователей отключен).

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

То, что данный функционал работает у администратора, но не работает у пользователя имеющего необходимые права доступа — очень странно.
В процессе тестирования так и не удалось воспроизвести описанную Вами проблему.

Хочу заметить, что список адресов формируется при выполнении функции [GetMailAddressesByContactID] скрипта [scr_MailUtils].
Вполне возможно, что не выбирается электронный адрес выбранного контакта в [sq_ContactMails], который используется в этой функции.
Рекомендуется запустить утилиту [Profiler] (размещение по умолчанию "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\profiler.exe") и посмотреть какой именно запрос выполняется.
Важно, чтобы фильтр [CommunicationTypeID] в этом запросе был включён и в качестве значения был указан ID типа средства связи - E-mail. Разумеется, и [ContactID] также должен соответствовать контакту, которому отправляется сообщение.

Terrasoft Support Team

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