Vault插件示例--Vault Explorer与Thin Client的集成。

简介:


Autodesk Vault 2014的Subscription 包中有一个组件叫做Thin Client。这个瘦客户端有着全新的界面,又给了我们一个全新的选择。ThinClient实际是在Vault Server端架设了一个web站点,用户只需要浏览器就可以直接查看Vault数据,而不需安装Vault Explorer软件。当然也不消耗License,就不用掏钱了,哈哈、

除了省费用外,关键还是方便,比如我们在设计流程中需要主管领导审核,我们需要主管领导安装Vault Explorer客户端。而且每次设计更改完毕后请领导审批时还要费很多口舌,“领导,您进到XX目录的XX子目录,然后找到我改的xx文件,您看合适不?”现在有了ThinClient,直接给领导一个ULR连接,“领导,这是我最近的更改,妥否请批示。”是不是简单的很多?

 

现在就写一个插件来实现Vault Explorer和Thin Client的集成。我们的目标是为文件夹和文件添加右键菜单,生成Thin Client的ULR并在默认浏览器中打开。如图:

image  image

对于文件,如下:

image image

 

当然,你还可以更进一步,把这个ULR保存到数据库中,或者你的ERP系统等,从而实现Vault和其他系统的集成。

你可以使用Vault 插件向导来创建这个插件,下面是核心代码:

    void ThinClientUrlCmd_Execute(object sender, CommandItemEventArgs e)
    {

      WebServiceManager webMgr = currentConnection.WebServiceManager;

      ISelection selectedItem = e.Context.CurrentSelectionSet.FirstOrDefault<ISelection>();
      if (selectedItem != null)
      {
        Uri serverUri = new Uri(webMgr.InformationService.Url);
        string url;

        if (selectedItem.TypeId == SelectionTypeId.File)
        {
          File file = webMgr.DocumentService.GetLatestFileByMasterId(selectedItem.Id);
          if (file == null)
          {
            return;
          }

          string[] ids = webMgr.KnowledgeVaultService.GetPersistentIds(
            VDF.Vault.Currency.Entities.EntityClassIds.Files,
           new long[] { file.Id },
           Autodesk.Connectivity.WebServices.EntPersistOpt.Latest);

          string id = ids[0];
          id = id.TrimEnd('=');
          url = string.Format("{0}://{1}/AutodeskTC/{1}/{2}#/Entity/Details?id=m{3}=&itemtype=File",
               serverUri.Scheme, serverUri.Host, currentConnection.Vault, id);

          //Open with default broswer
          Process.Start(url);

          //copy url to clipboard
          Clipboard.SetText(url);
        }

        if (selectedItem.TypeId == SelectionTypeId.Folder)
        {
          Folder folder = webMgr.DocumentService.GetFolderById(selectedItem.Id);
          if (folder == null)
          {
            return;
          }

          string[] ids = webMgr.KnowledgeVaultService.GetPersistentIds(
            VDF.Vault.Currency.Entities.EntityClassIds.Folder,
            new long[] { folder.Id },
            Autodesk.Connectivity.WebServices.EntPersistOpt.Latest);

          string id = ids[0];
          id = id.TrimEnd('=');
          url = string.Format("{0}://{1}/AutodeskTC/{1}/{2}#/Entity/Entities?folder=m{3}=&start=0",
            serverUri.Scheme, serverUri.Host, currentConnection.Vault, id);

          //Open with default broswer
          Process.Start(url);

          //copy url to clipboard
          Clipboard.SetText(url);
        }



      }



    }

 

完整代码已经发布到了Github.com, 请到https://github.com/ADN-DevTech/Vault_Thinclient_Integration 下载。

作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。




本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/p/3552995.html ,如需转载请自行联系原作者
相关文章
|
3天前
|
前端开发 关系型数据库 MySQL
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
|
3天前
|
XML 开发框架 .NET
ASP.NET COR3.1 集成日志插件NLog
ASP.NET COR3.1 集成日志插件NLog
38 0
|
7月前
|
Java 数据库连接 数据库
MyBatis与Spring集成&常用注解以及AOP和PageHelper分页插件整合
MyBatis与Spring集成&常用注解以及AOP和PageHelper分页插件整合
55 0
|
3天前
|
传感器 存储 监控
示例一、集成温度传感器(DS1820)温度特性
示例一、集成温度传感器(DS1820)温度特性
13 1
|
3天前
|
Android开发
Android 高通平台集成无源码apk示例
Android 高通平台集成无源码apk示例
17 0
|
3天前
|
传感器 前端开发 Android开发
【Flutter 前端技术开发专栏】Flutter 中的插件开发与集成
【4月更文挑战第30天】本文探讨了Flutter插件开发的关键技术和实践,包括插件作为连接Flutter与原生功能桥梁的角色,开发流程(定义接口、实现原生代码、打包发布),以及集成方法(添加依赖、初始化)。文中提到了多媒体、传感器和文件系统等常见插件类型,并以相机插件为例说明开发步骤。此外,还强调了版本兼容性、性能优化和错误处理的注意事项,推荐了开发工具和资源。随着Flutter的发展,插件开发将更加重要,未来有望形成更丰富的生态系统。
【Flutter 前端技术开发专栏】Flutter 中的插件开发与集成
|
3天前
|
监控 Java 测试技术
持续集成与持续部署:原理、实践与代码示例
持续集成与持续部署:原理、实践与代码示例
27 3
|
3天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
42 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
3天前
|
存储 监控 数据可视化
如何统计员工每日工作量:使用Groovy编写一个JIRA插件来与项目管理集成,实时追踪员工的工作量
本文介绍了如何使用Groovy编写JIRA插件以实时追踪员工工作量。通过示例代码展示了如何捕获和打印任务工作日志,以及如何集成到项目管理中,确保数据在员工花费时间时自动记录。此外,还说明了如何设置定时任务将工作量数据提交到公司网站,从而优化团队管理和决策。
172 2
|
7月前
|
Java 数据库连接 测试技术
Spring与MyBatis集成 AOP整合PageHelper插件
Spring与MyBatis集成 AOP整合PageHelper插件
38 0

热门文章

最新文章