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

摘要:
AutodeskVault2014的订阅包中有一个名为ThinClient的组件。ThinClient实际上在VaultServer端设置了一个网站。用户可以使用浏览器直接查看vault数据,而无需安装VaultExplorer软件。现在使用ThinClient,您可以直接向领导发送ULR连接,“领导,这是我最近的更改,请批准。”现在编写一个插件来实现VaultExplorer和ThinClient的集成。我们的目标是为文件夹和文件添加右键菜单,生成ThinClientULR,并在默认浏览器中打开它。

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 下载。

免责声明:文章转载自《Vault插件示例--Vault Explorer与Thin Client的集成。》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇视图家族之视图工具集viewsetswindows下使用python googleprotobuf下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微软的坑:Url重写竟然会引起IIS内核模式缓存不工作

万万没有想到!当初为了解决使用负载均衡时记录客户端IP地址的问题,在IIS URL Rewrite Module中增加了一条URL重写规则(详见迁入阿里云后遇到的Request.UserHostAddress记录IP地址问题):3 <rewrite> <allowedServerVariables> &...

HttpClient的get和post方式提交数据的使用

/** * Http工具类 */ public class HttpUtil { // 创建HttpClient对象 public static HttpClient httpClient = new DefaultHttpClient(); public static final String BASE_URL =...

Scrapy实战篇(八)之Scrapy对接selenium爬取京东商城商品数据

 本篇目标:我们以爬取京东商城商品数据为例,展示Scrapy框架对接selenium爬取京东商城商品数据。 背景:   京东商城页面为js动态加载页面,直接使用request请求,无法得到我们想要的商品数据,故需要借助于selenium模拟人的行为发起请求,输出源代码,然后解析源代码,得到我们想要的数据。 第一步:设置我们需要提取的字段,也就是在Scrap...

url传值的长度限制解决办法

今天写到两个页面传值,刚开始通过url上加参数进行传值, var strLink = "my.asp?str1=" + str1List + "&str2=" + str2List ;var iHeight = 600; // 高度var iWidth = 1000; // 宽度var iTop = (window.screen.availHei...

vue-cli 引入axios及跨域使用

使用 cnpm 安装 axios cnpm install axios --save-dev 安装其他插件的时候,可以直接在 main.js 中引入并 Vue.use(),但是 axios 并不能 use,只能每个需要发送请求的组件中即时引入为了解决这个问题,有两种开发思路,一是在引入 axios 之后,修改原型链,二是结合 Vuex,封装一个 aci...

nginx 配置的一些参数

/etc/nginx/nginx.conf worker_rlimit_nofile#;      --指定一个worker 进程所能打开的最大文件描述符数量worker_rlimit_sigpending#;    --指定每个用户能够发往进程的信号的数量 性能优化相关的配置  1.work_processes      --worker 进程的个数,通...