Tribon有很多COM接口,但是除了数据抽取、工程拷贝、打印之外的COM都没有在Tribon文档中提及,成为了“不能说的秘密”。但是有些COM即便没有文档,通过简单的尝试也能清楚如何使用。下面就介绍两个比较有用,或者说我知道怎么用的COM。在Visual Studio 2010中添加引用COM选项卡能够看到以TB开头的COM基本上都是Tribon提供的。我介绍的是tbprojectselect和tbruntime,望文生义就知道是工程选择和运行时。
tbruntime比较简单,里面有个TBEnvironment类,可以通过get_Variable方法获得Tribon环境变量,例如下面一段C#代码就是提取SB_PYTHON环境变量的值:
using TBRUNTIMELib;
TBEnvironment env = new TBEnvironment();
string value = env.get_Variable(“SB_PYTHON”);
tbprojectselect相对复杂一些,结合tbruntime可以写出完美的Tribon工程选择程序。Tribon工程选择后,会在本地Tribon安装路径Config文件夹下生成一个tbenvtable.sbd文件,该文件保存了所有当前工程的Tribon环境变量,其中_#INT#_PROJECTGROUP,_#INT#_PROJECT,SB_SUBPROJ三个变量保存了当前工程的组、工程和子工程,例如Tribon默认提供的本地工程三个值分别为:
Key | Value |
_#INT#_PROJECTGROUP | Local projects |
_#INT#_PROJECT | M3sp |
SB_SUBPROJ | null |
因为本地工程没有子工程,所以SB_SUBPROJ为空。
如果工程选择已经完成,可以读取上述三个变量来获取工程信息。若要调用工程选择,或者自动选择工程,就需要tbprojectselect里面的TBProjSelectClass了,下面的C#代码展示了如何用程序自动选择工程:
using TBPROJECTSELECTLib;
TBProjSelectClass proj = new TBProjSelectClass();
proj.SelectProjectBatch(string projGroup, string Project, string SubProject);
tbprojectselect里面还有一个TBPSOptions类,是用来指定Tribon服务器的,就是Project Selection中Options里面设置的项。如果您所处的环境有多个不同的Tribon服务器,这个功能非常有用。
使用COM的好处是能够在Tribon模块环境之外操作Tribon,很多程序是通过调用exe或者分析文件来实现选工程和获取Tribon环境变量的,比较起来COM更专业一些。
我封装了Tribon的这两个COM并扩展了一些常用变量的提取,增加了Batch Vitesse的C#实现。最终生成一个dll文件叫做TBMod.dll,通过引用该文件可在.net平台上操作Tribon了。源代码也是开放的,并且带有单元测试,测试用例是Tribon本地工程,我在Visual Studio 2010上测试通过。TBMod.dll在Debug下。