Определение отдела сотрудника по пользователю
Определить отдел, в котором работает сотрудник, можно с помощью приведенного ниже сценария (сотрудник задан в контекстной переменной 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;