Определение отдела сотрудника по пользователю
Определить отдел, в котором работает сотрудник, можно с помощью приведенного ниже сценария (сотрудник задан в контекстной переменной context.Poljzovatelj).
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Контекстные переменные:
- context.Poljzovatelj – переменная типа Пользователь;
- context.NaimenovanieOtdela – переменная типа Строка.
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
context.NaimenovanieOtdela = PublicAPI.Portal.Security.User.GetUserDepartments(context.Poljzovatelj).FirstOrDefault().Name;
Пример сценария без использования PublicAPI
Для корректной работы сценария необходимо подключить пространство имен:
using EleWise.ELMA.Security.Models;Текст сценария:
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;