ADN Open CIS
Сообщество программистов Autodesk в СНГ

17/08/2015

Состояние объекта - Свойство Master

Master - это одно из свойство объекта Item.Оно содержит DMS ID элемента, ID рабочего пространства, владельца, дополнительные пользовательские владельцы и дополнительные владельцы групп. В этой статье мы рассмотрим каждый из них.

DMS ID элемента

item.master.dmsID возвращает DMS ID элемента, который доступен только для чтения и имеет тип Number .

ID рабочего пространство элемента

item.master.workspaceID возвращает идентификатор рабочего пространства, которому принадлежит элемент, который доступен только для чтения и имеет тип Number .

Владелец элемента

item.master.owner возвращает пользовательский объект User, который содержит информацию о пользователе, например, владелец, имя, адрес электронной почты, телефон, лицензии и т.д.Это все, что вам нужно знать о {2}Userobject{/2} в данный момент.Будет отдельный пост, в котором сосредоточимся на нем.

Свойство владельца является редактируемым, так что мы можем обновить владельца элемента с помощью сценария.

Код - JavaScript: [Выделить]
  1. var newOwner = Security.loadUser(‘newOwnerUserId’); // Загрузить пользователя с ID
  2. item.master.owner = newOwner;  // обновить владельца

Здесь мы используем Security.loadUser ('newOwnerUserId'), чтобы получить нового пользователя-владельца.Функция принимает идентификатор пользователя: возвращает объект, User представляющий пользователя .Объект TheSecurity может быть использован для обработки пользователей, групп и ролей.Это будет подробно описано в следующей статье. В этой статье, мы должны знать только, как использовать функцию loadUser и функцию loadGroup .

Мы также можем клонировать владельца от другого элемента, например:

Код - JavaScript: [Выделить]
  1. item.master.owner = loadItem(1234).master.owner;

Дополнительные пользователи-владельцы элемента

item.master.additionalOwners дает нам массив объектов User.Чтобы добавить дополнительные пользователей-владельцев, мы должны передать каждый объект пользователя в этот массиве.

Код - JavaScript: [Выделить]
  1. var newAdditionalUserOwner = Security.loadUser(‘UserId’);
  2. item.master.additionalOwners.push(newAdditionalUserOwner);

Чтобы удалить всех дополнительных пользовательских владельцев, мы можем сделать это:

Код - JavaScript: [Выделить]
  1. item.master.additionalOwners.length = 0;

Чтобы найти и удалить частных дополнительных пользователя владельцем, мы можем использовать сращивание,

Код - JavaScript: [Выделить]
  1. var ownerToRemove = Security.loadUser(‘UserId’); 
  2. var index = item.master.additionalOwners.indexOf(ownerToRemove); 
  3. if (index > -1) { // если пользователь существует в массиве 
  4. item.master.additionalOwners.splice(index, 1); 
  5. }

Если мы хотим, отправить уведомление по электронной почте для всех дополнительных пользователей владельцев, мы могли бы использовать такой код:

Код - JavaScript: [Выделить]
  1. var additionalOwners = item.master.additionalOwners; 
  2. for (var index in additionalOwners) { 
  3.     var email = new Email(); 
  4.     email.to = additionalOwners[index].email; 
  5.     email.subject = "Owner Notification"; 
  6.     email.body = "Please update current workflow."; 
  7.     email.send(); 
  8. }

Дополнительные группы владельцев элемента

item.master.groupAdditionalOwners возвращает массив объектов Группа.Мы могли бы использовать ту же процедуру, что мы использовали для объекта пользователя выше, чтобы делать действие добавить/удалить /очистить над массивом группы. Разница лишь в том, что мы работаем на объектом Group вместо User.Чтобы получить объект Group нам нужно useSecurity.loadGroup('Имя группы').Эта функция принимает строку имени группы в качестве входных данных; возвращает объект Group.

Примечания

Когда мы пишем код сценария, мы часто должны знать идентификатор пользователя для конкретного пользователя.(Функция Security.loadUser ('UserId'), приведена выше в примере).Но найти Идентификатор пользователя является сложной вещью, так вот простой способ, чтобы получить его быстро. Вы вначале должны перейти на страницу "Users" [Administration -> Security -> Users]. Затем после нажатия имя пользователя в столбце "User Name", вы найдете ID пользователя скрытый в адресе нового окна.

ID этого пользователя: "A1mMw". Теперь вы можете использовать Security.loadUser ('A1mMw') для того, чтобы загрузить объект User для этого пользователя в сценарии.

Чтобы использовать функцию Security.loadGroup ('Group Name'), мы должны знать имя группы.Поиск имя группы в PLM очень простой. На странице групп [Administration -> Security -> Groups], каждый из отображаемых имен в колонке "Name" является только входной переменной, которая нужна для этой функции.

 

Источник: http://justonesandzeros.typepad.com/blog/2015/06/item-object-master-property.html

 

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=2997

Опубликовано 17.08.2015
Отредактировано 08.09.2015 в 10:56:05