Немного о настройках ролей в RTC…
В 8-м выпуске журнала Андрей рассказывал в 2 частях о действиях Action в страницах NAV 2009. Но пока что мы даже вскользь не упомянули о настройке ролей Role Tailored Client (RTC) NAV 2009. Казалось бы - тривиальная вещь, но не все с ней знакомы. Постараемся вкратце компенсировать этот пробел в данной статье…
RTC был задуман как средство, использование которого позволит избежать многих проблем эпохи классического клиента, а так же внесет новые технологические преимущества:
- RTC поддерживает работу организации с ориентацией на роли и задачи, решаемые данными ролями;
- выполнение кода (бизнес-логики) происходит на промежуточном уровне, а не на клиенте как это было раньше. Как следствие, решена проблема регистрации COM, OCX компонентов;
- проектирование по принципу WYSIWYG (what you see is what you get) осталось в прошлом. Элементы страниц перечислены в порядке их отображения, а свойства, связанные с каждым элементом, используются для указания конкретных функций представления, но без каких-либо характеристик размера или расположения. Это открывает возможности для представления страницы разными клиентами без ограничений, накладываемых макетом;
- в RTC слой навигации отображает список рабочих областей, которые называются областями списков. По умолчанию в одном и том же окне один список заменяется другим. Возможен запуск страницы в отдельном окне. Помимо областей списков, слой навигации отображает Role Center и область Departments;
- ……………………
Вот как выглядит рабочая область сразу же после запуска RTC в демо-базе CRONUS:
Перед нами предстает заранее настроенный ролевой интерфейс. Возникает вопрос: почему именно данная роль отображается при запуске RoleTailored клиента? Для ответа на этот вопрос достаточно посмотреть изменения, которые были внесены в Codeunit 1. А именно:
Функция DefaultRoleCenter определяет ролевой интерфейс, который необходимо запустить по-умолчанию. Данная функция вызывает функцию DefaultRoleCenterID кодэюнита “Conf./Personalization Mgt.”. В свою очередь, функция DefaultRoleCenterID выполняет незамысловатый код, возвращая нам жестко прописанный номер страницы, которую надо запустить при запуске RTC:
Такой страницей является Page 9006 “Order Processor Role Center”. Именно ее мы и видим по-умолчанию в демо-базе при запуске RTC…
Резонно спросить: как настроить другую роль по-умолчанию? И, если это возможно, то как распределить роли по пользователям?
Настройка другой роли по-умолчанию возможна. Для этого необходимо воспользоваться классическим клиентом и перейти в меню Administration. Далее по порядку: Application Setup -> RoleTailored Client -> Profiles. Конечно, все эти шаги можно повторить и в RTC, но, как мне показалось, для первого ознакомления более удобным вариантом будет настройка посредством классического клиента:
Форма “Profile Card” отвечает за настройку профилей пользователей. К профилям привязываются роли. На форме “Profile Card” есть ряд ключевых полей:
- Profile ID, собственно, код профиля;
- Role Center ID – номер страницы с типом RoleCenter, связанной с данным профайлом;
- Default Role Center – установка галочки в этом поле означает, что именно данный профиль будет задействован по умолчанию. Попытка настроить 2 профиля с галкой Default Role Center не увенчается успехом: система проставит галочку для последнего профиля, и удалит ее для профиля предыдущего.
Предположим, что профиль “President - Small Business” – именно то, что нам нужно, с ним связан Role Center ID 9020. На последней картинке именно этот профиль отмечен в списке профилей как имеющий роль по умолчанию.
Теперь функция DefaultRoleCenterID кодэюнита “Conf./Personalization Mgt.” никаким образом не повлияет на выбор роли по-умолчанию. Чтобы убедиться в этом, достаточно перезапустить RTC:
Кстати, даже если вы по неосторожности удалите все профили, Навижин пересоздаст их при следующем запуске системы. За это отвечает все тот же кодэюнит “Conf./Personalization Mgt.”, вызываемый из CU 1…
И все бы ничего, если бы в нашей компании работал один только президент. Но такая ситуация исключена… Именно поэтому роли надо распределить по разным пользователям. И тут на помощь приходит форма/страница “User Personalization”, где, собственно, мы можем связать пользователя с любой ролью:
Как вы уже догадались, одному пользователю может соответствовать только одна запись в “User Personalization”.
В настройке ролей для RTC есть одно очень заметное неудобство: необходимость их постоянной перенастройки с целью тестирования разработчиком функционала под той или иной ролью. Но решение есть, хоть и нестандартное: http://dynamicsuser.net/blogs/waldo/archive/2010/07/13/select-role-when-logging-into-nav-2009-rtc.aspx
В своем блоге Eric Waters (aka Waldo) рассказывает о том, как можно прикрутить механизм выбора профиля/роли в момент запуска RTC.
Метки: Meling Roman, Роман Мелинг





