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

11/04/2014

Лёгкое программирование под Autodesk Vault. Часть 9

НазадСодержаниеДалее


Добавление групп представляет собой довольно простую операцию – для этого достаточно осущзествить вызов соответствующего метода AddGroup(). Самым проблематичным в данной ситуации является получение всех требуемых параметров, а именно идентификаторов ролей и хранилищ.

Коды требуемых хранилищ можно получить по их именам при помощи метода GetKnowledgeVaultsByNames. ID ролей по именам можно получить путём фильтрации всех объектов по требуемым критерию «Name»:

Код - PowerShell: [Выделить]
  1. Where {$Проверочный_Массив -contains $_.Поле_Объекта}

Собственно, полный код программы:

Код - PowerShell: [Выделить]
  1. Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
  2. $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
  3. $groupName = 'New group'
  4. $atype = 'ActiveDir' # or 'Vault'
  5. $isActive = $true
  6. $emailDL = 'newGroup@email.com'
  7. $roleNameArray = "Редактор документа (уровень 2)", "Диспетчер ERP"
  8. $vaultNameArray = "Vault", "Vault Test-Drive"
  9. # Получаем ID хранилищ по именам
  10. $vaultIdArray = $g_login.WebServiceManager.FilestoreVaultService.GetKnowledgeVaultsByNames($vaultNameArray).Id
  11. # Получаем ID ролей по именам
  12. $roleIdArray = ($g_login.WebServiceManager.AdminService.GetAllRoles() | Where {$roleNameArray -contains $_.Name}).Id
  13. #Создаём группу
  14. $newGroup = $g_login.WebServiceManager.AdminService.AddGroup($groupName, $atype, $isActive, $emailDL, $roleIdArray, $vaultIdArray)
  15. # Выводим результат
  16. $newGroup | Out-GridView -Title 'Новая группа'

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

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

Опубликовано 11.04.2014
Отредактировано 06.08.2014 в 15:04:05