Лёгкое программирование под Autodesk Vault. Часть 8
Для получения группы необходимо вызвать один из методов Get*:
Операция |
Объект |
Метод |
AllGroups |
GetAllGroups |
|
Group |
ById |
GetGroupById |
ByName |
GetGroupByName |
|
Groups |
ByIds |
GetGroupsByIds |
ByNames |
GetGroupsByNames |
|
GroupInfo |
ByGroupId |
GetGroupInfoByGroupId |
GroupInfos |
ByGroupIds |
GetGroupInfosByGroupIds |
ChildGroupIds |
ByGroupId |
GetChildGroupIdsByGroupId |
MemberGroups |
ByGroupId |
GetMemberGroupsByGroupId |
ParentGroupIds |
ByGroupId |
GetParentGroupIdsByGroupId |
Самый простой – это GetAllGroups(), который возвращает все группы. После этого вы можете вывести все объекты, либо отфильтровать необходимые. В PowerShell фильтрацию можно осуществить при помощи командлета Where-Object:
- Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
- $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
- # Получаем все группы
- $allGroups = $g_login.WebServiceManager.AdminService.GetAllGroups()
- # Осуществляем выборку
- # Выводим результаты
- $activeGroups | Out-GridView -Title "Активные группы"
Зная ID, либо имена групп, можно получить конкретную группу.
- Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
- $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
- $GroupID = 1
- $GroupName = 'Все пользователи'
- $GroupsIDs = 1,6
- $GroupsNames = 'Все пользователи', 'Конструкторы'
- # Получаем группы по имеющимся данным
- $group1 = $g_login.WebServiceManager.AdminService.GetGroupById($GroupID)
- $group2 = $g_login.WebServiceManager.AdminService.GetGroupByName($GroupName)
- $group3 = $g_login.WebServiceManager.AdminService.GetGroupsByIds($GroupsIDs)
- $group4 = $g_login.WebServiceManager.AdminService.GetGroupsByNames($GroupNames)
- # Выводим результаты
- $group1 | Out-GridView -Title ("Группа с ID=" + $GroupID)
- $group2 | Out-GridView -Title ("Группа с именем=" + $GroupName)
- $group3 | Out-GridView -Title ("Группы с ID=" + $GroupsIDs)
- $group4 | Out-GridView -Title ("Группы с именами=" + $title)
Однако класс Group не хранит исчерпывающую информацию по группе. Существует расширяющий его класс GroupInfo. Получить экземпляры объектов этого класса также можно при помощи вызова методов.
- Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
- $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
- $GroupID = 1
- $GroupsIDs = 1,6
- # Получаем информацию по группам на основании имеющихся данных
- $groupInfo = $g_login.WebServiceManager.AdminService.GetGroupInfoByGroupId($GroupID)
- $groupsInfos = $g_login.WebServiceManager.AdminService.GetGroupInfosByGroupIds($GroupsIDs)
- # Выводим результаты
- $groupInfo | Out-GridView -Title ("Группа с ID=" + $GroupID)
- $groupsInfos | Out-GridView -Title ("Группы с ID=" + $GroupsIDs)
Поскольку группы находятся в определенных отношениях друг с другом, есть смысл иметь доступ к этим связям.
- Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
- $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
- $GroupID = 1
- # Получаем перечень непосредственных родительских групп
- $parentGroups = $g_login.WebServiceManager.AdminService.GetParentGroupIdsByGroupId($GroupID)
- $parentGroups | Out-GridView -Title ("Непосредственная родительская группа для группы с ID=" + $GroupID)
- # Получаем перечень непосредственных дочерних групп
- $memberGroups = $g_login.WebServiceManager.AdminService.GetMemberGroupsByGroupId($GroupID)
- $memberGroups | Out-GridView -Title ("Непосредственные дочерние группы для группы с ID=" + $GroupID)
- # Получаем перечень всех дочерних групп рекурсивно
- $childGroups = $g_login.WebServiceManager.AdminService.GetChildGroupIdsByGroupId($GroupID)
- $childGroups | Out-GridView -Title ("Все дочерние группы для группы с ID=" + $GroupID)
Автор перевода: Дмитрий Емельянов
Обсуждение: http://adn-cis.org/forum/index.php?topic=667
Опубликовано 11.04.2014Отредактировано 06.08.2014 в 15:04:34