ADN Club > Vault API

Как получить свойства текущего файла?

<< < (2/2)

Пашин Евгений:
Так вроде сработало, но я не уверен, что правильно задал параметр:


--- Код - vb.net [Выбрать] ---    Public Sub Get_Lifecycle_Changes(ByVal sender As Object, ByVal e As Autodesk.Connectivity.WebServices.UpdateFileLifeCycleStateCommandEventArgs)        Dim Connection As Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection = VltApp.Connection        Dim WebManager As Autodesk.Connectivity.WebServicesTools.WebServiceManager = Connection.WebServiceManager        Dim allUsers() As Autodesk.Connectivity.WebServices.User = WebManager.AdminService.GetAllUsers()         For Each mUsr As Autodesk.Connectivity.WebServices.User In allUsers            Dim newUsr As New vltUser            With newUsr                .firstName = mUsr.FirstName                .lastName = mUsr.LastName                .name = mUsr.Name                .userEmail = mUsr.Email                .userId = mUsr.Id                .userIsActive = mUsr.IsActive            End With            VltUsers.allUsers.Add(newUsr)        Next        MsgBox("Вы только что изменили состояние жизненного цикла") ' Here is message that user changed the state of lifecycle of selected file        Dim nf As New Main(VltUsers)        nf.ShowDialog()         'Dim selection As id = e.FileMasterIds 'CurrentSelectionSet.First() ' ???????????????????????????????????????????????????? Is not working        Dim fileProperties As Autodesk.Connectivity.WebServices.PropInst() = WebManager.PropertyService.GetPropertiesByEntityIds("FILE", New Long() {e.FileMasterIds(0)})  'For a selected file        'Dim folderProperties As Autodesk.Connectivity.WebServices.PropInst() = WebManager.PropertyService.GetPropertiesByEntityIds("FLDR", New Long() {FileID}) ' For a selected folder        MsgBox(e.FileMasterIds(0))    End Sub
Прошу меня поправить, если что!

Пашин Евгений:
Решение оказалось не совсем простым, но всё же получилось:


--- Код - vb.net [Выбрать] ---Imports Autodesk.Connectivity.Explorer.ExtensibilityImports Autodesk.Connectivity.Extensibility.Framework <Assembly: ApiVersion("10.0")><Assembly: ExtensionId("F184B08F-C81C-46F6-A58F-55BD9991F28F")>Public Class VENs    Implements IExplorerExtension    Public Property VltApp As IApplication ' Пришлось создать публичный параметр для доступа к приложению    Public Function CommandSites() As IEnumerable(Of CommandSite) Implements IExplorerExtension.CommandSites        Return Nothing    End Function    Public Function CustomEntityHandlers() As IEnumerable(Of CustomEntityHandler) Implements IExplorerExtension.CustomEntityHandlers        Return Nothing    End Function    Public Function DetailTabs() As IEnumerable(Of DetailPaneTab) Implements IExplorerExtension.DetailTabs        Return Nothing    End Function    Public Function HiddenCommands() As IEnumerable(Of String) Implements IExplorerExtension.HiddenCommands        Return Nothing    End Function    Public Sub OnLogOff(application As IApplication) Implements IExplorerExtension.OnLogOff    End Sub    Public Sub OnLogOn(application As IApplication) Implements IExplorerExtension.OnLogOn        ' Создание соединения        Dim Connection As Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection = application.Connection        ' Подключаем менеджер сервисов        Dim WebManager As Autodesk.Connectivity.WebServicesTools.WebServiceManager = Connection.WebServiceManager        ' Устанавливаем значение параметра для доступа к приложению        VltApp = application        ' Регстрируем обработчик события UpdateFileLifecycleStateEvents.Post и привязываем его к процедуре, которая его обработает        AddHandler Autodesk.Connectivity.WebServices.DocumentServiceExtensions.UpdateFileLifecycleStateEvents.Post, AddressOf Get_Lifecycle_Changes    End Sub    ' Процедура обработки события    Public Sub Get_Lifecycle_Changes(ByVal sender As Object, ByVal e As Autodesk.Connectivity.WebServices.UpdateFileLifeCycleStateCommandEventArgs)        ' Создание соединения        Dim Connection As Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection = VltApp.Connection        ' Подключаем менеджер сервисов        Dim WebManager As Autodesk.Connectivity.WebServicesTools.WebServiceManager = Connection.WebServiceManager        ' Определяем все версии файлой текущего/выделенного файла                      Dim files As Autodesk.Connectivity.WebServices.File() = WebManager.DocumentService.FindLatestFilesByMasterIds(e.FileMasterIds)        ' Получаем значения всех свойств текущей (надеюсь, что 0 - индекс текущего файла) версии файла        Dim values As Autodesk.Connectivity.WebServices.PropInst() = WebManager.PropertyService.GetPropertiesByEntityIds("FILE", New Long() {files(0).Id})        ' Перебираем все свойства в цикле и выводим в сообщении их имя и значение        For Each vl As Autodesk.Connectivity.WebServices.PropInst In values            ' Имя свойства            Dim propName As String = WebManager.PropertyService.GetPropertyDefinitionInfosByEntityClassId("FILE", New Long() {vl.PropDefId})(0).PropDef.DispName            ' Значение свойства            Dim propValue As String = vl.Val.ToString            ' Сообщение            MsgBox(propName & vbCrLf & propValue)        Next    End Sub    Public Sub OnShutdown(application As IApplication) Implements IExplorerExtension.OnShutdown    End Sub    Public Sub OnStartup(application As IApplication) Implements IExplorerExtension.OnStartup    End SubEnd ClassЯ умышленно не стал вводить сокращения в коде.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии