Определение отдела сотрудника по пользователю
Определить отдел, в котором работает сотрудник, можно с помощью приведенного ниже сценария (сотрудник задан в контекстной переменной context.Poljzovatelj).
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Контекстные переменные:
- context.Poljzovatelj – переменная типа Пользователь;
- context.NaimenovanieOtdela – переменная типа Строка.
Пространство имен:
1 | using EleWise.ELMA.API; |
Текст сценария:
1 | context.NaimenovanieOtdela = PublicAPI.Portal.Security.User.GetUserDepartments(context.Poljzovatelj).FirstOrDefault().Name; |
Пример сценария без использования PublicAPI
Для корректной работы сценария необходимо подключить пространство имен:
1 | using EleWise.ELMA.Security.Models; |
1 2 3 4 5 6 7 8 9 10 11 | var department = context.Poljzovatelj.OrganizationItems.ToArray() .Union(context.Poljzovatelj.OrganizationGroups) .Select(organizationItem => { var parentOrganizationItem = organizationItem.ParentItem; while (parentOrganizationItem != null && parentOrganizationItem.ItemType == OrganizationItemType.Department) parentOrganizationItem = parentOrganizationItem.ParentItem; return parentOrganizationItem.ParentItem != null ? parentOrganizationItem.ParentItem : null ; }) .Where(u => u != null ).FirstOrDefault(); context.NaimenovanieOtdela = department.Name; |