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并在默认浏览器中打开。如图:

对于文件,如下:

当然,你还可以更进一步,把这个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);
} } }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
完整代码已经发布到了Github.com, 请到https://github.com/ADN-DevTech/Vault_Thinclient_Integration 下载。
Vault插件示例--Vault Explorer与Thin Client的集成。的更多相关文章
- 如何编写Vault插件扩展Vault Explorer的功能
今天练习了一下Vault Explorer的扩展程序,基本上是Vault SDK中的HelloWord示例程序.如果你刚刚开始接触Vault的二次开发,希望对你有帮助. 开始之前,你需要安装Vault ...
- 使用Autodesk Vault插件向导轻松创建Vault插件
Vault SDK帮助文档中已经详细描述了怎么创建Vault插件,不过还是太麻烦了,首先要添加必要的引用,修改程序集属性,添加vcet.config文件,实现必要的接口,最后还要手动把生成的文件拷贝到 ...
- 【ABP框架系列学习】模块系统(4)之插件示例开发
0.引言 上一篇博文主要介绍了ABP模块及插件的相关知识,本章节主要开发一个插件示例来学习如何创建一个插件,并在应用程序中使用.这个命名为FirstABPPlugin的插件主要在指定的时间段内删除审计 ...
- Apache Ignite 学习笔记(二): Ignite Java Thin Client
前一篇文章,我们介绍了如何安装部署Ignite集群,并且尝试了用REST和SQL客户端连接集群进行了缓存和数据库的操作.现在我们就来写点代码,用Ignite的Java thin client来连接集群 ...
- jQuery插件示例笔记
插件的种类 封装对象方法的插件 将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作. //注意,为了更好的兼容性开始前有个分号 ;(function($){ //此处将$作为匿名函数的 ...
- Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器client(5) 小结
经过不断试用与改动,这个查看器终于还是完毕了设计.实现.查看器,顾名思义,没有编辑功能:说的白一点,仅仅是一个以OpenStreetMap为底图的显示装置罢了.和专业GIS相比,这款基于插件的Open ...
- 【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
问题描述 创建一个Java Console程序,用于使用Azure Key Vault Secret.在VS Code中能正常Debug,但是通过mvn clean package打包为jar文件后, ...
- Eclipse一个打开文件夹目录插件——Open In Explorer
MyEclipse开发的都常用到其中一个"Open In Explorer"的小插件,可以直接在Windows资源管理器中打开选中文件所在的目录,工具虽小,但我们经常需要用到它 由 ...
- BeatSaber节奏光剑插件开发官方教程2-简单的插件示例
原文:https://wiki.assistant.moe/modding/example-mod 一.在开始之前 1 确保你已经看过教你如何添加插件模板的教程,且你已经使用插件模板创建了一个新项目 ...
随机推荐
- 没有R.java问题找不到getActionBar()方法
android项目,可是项目中没有重要的R.java,并且报错,说是找不到getActionBar()方法,上网寻找原因,终于寻得解决方法: 1.解决项目中没有R.java问题.在Eclipse ...
- storm坑之---同步问题
最近在做一个监控系统,用来监控网站上各个业务功能的调用量以及处理时间,以便及时发现问题,及时处理.做这种实时统计处理系统,自然首先想到了storm,于是现学现用,自然遇到了一些坑,而且不少是网上也难以 ...
- JAVA 设计模式 观察者模式
用途 观察者模式 (Observer) 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象. 这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 观 ...
- SQL Server安全(1/11):SQL Server安全概述
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- 意译:《JVM Internals》
译者语 为加深对JVM的了解和日后查阅时更方便,于是对原文进行翻译.内容是建立在我对JVM的认识的基础上翻译的,加上本人的英语水平有限,若有纰漏请大家指正,谢谢. 原文地址:http://blog.j ...
- PHP的数据类型总结
最近开始学习php,下面是我总结的数据类型,画的思维导图: 注意:查看图片要调大浏览器的缩放比例(我也不知道为啥图片上传之后显示这么小,不清晰): 上面太大看不清,我就分别截图:
- [译]学习IPython进行交互式计算和数据可视化(二)
第一章:开始使用IPython 在本章中,我们首先进行一遍IPython的安装过程,在大概浏览一下IPython提供的功能.IPython提供了一个高度优化的Python控制台和Notebook.除此 ...
- C#2.0 to 4.0
//xmlElement.set_InnerText(value); xmlElement.InnerText = value; ).ToCharArray());//Convert.ToChar(s ...
- ASP.NET MVC 请求流程:Route
1.RouteTable RouteTable翻译过来的意思就是路由表,一个Web应用程序具有一个全局的路由表,该路由表通过System.Web.Routiing.RouteTable的静态只读属性R ...
- Android使用SAX解析XML(3)
主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...