【IT168 技术文章】
问题:
我们的Support Team维护着不同地区各个部门的十几个Domino应用,这些应用都采用外接数据库Access DB和Oracle DB。由于某种原因,User要求连接数据库的UserID和Password可以变更,由于UserID和Password在开发时已作为Const固化在Agent 和公式@DbColumn、 @DbLookup中,所以每次变更时,不得不使用Lotus Designer逐个应用逐个Form、Agent等,一一打开变更,一不小心就漏掉了,十分麻烦。于是,我们想到一个方案:配置文件。配置文件要满足:
1)对UserID和Password的变更,只需要修改配置文件即可完成。
2)不需要Lotus Designer开发环境。
3)格式清晰,易于修改维护。
鉴于以上,我们把配置文件格式定为XML。
在Domino R5中,对XML的处理,有两种方式: (1) 采用Java来处理; (2) Lotus Script来处理。
通常采用Java Agent来处理XML文档。由于连接数据库的Agent是Lotus Script Agent,所以不得不采用Lotus Script来处理XML。
环境:
Win2k、Domino R5、 Lotus Designer R5、Visual Basic 6.0
方案:
我们知道Lotus Script没有直接处理XML文档的函数、方法。但是Lotus Script和Visual Basic融合的非常好,VB代码不需要做太多修改就可以在Lotus Script Agent中使用。我们知道在VB中使用MSXML处理XML文档。所以我们先在VB中使用MSXML处理XML文档,以此作为原型,再进行修改,移植到Lotus Script Agent中。
一、 定义XML文件
我们将其命名为DBConfig.xml,放在Lotus\domino\目录下。它由一个根元素<DATABASE>,DATABASE有一个以上的<APPLICATION>子元素,APPLICATION有一个属性name,并且有三个子元素,<USERID>、<PASSWORD>、<TNS>,这三个元素都没有属性。
文件 : \Lotus\domino\DBConfig.xml
内容 :
<?xml version="1.0" encoding="utf-8"?>
<!-- For Database username password etc. -->
<DATABASE>
<!-- App 1 -->
<APPLICATION name="APP1">
<USERID>UID1</USERID>
<PASSWORD>PWD1</PASSWORD>
<TNS>TNS1</TNS>
</APPLICATION>
<!-- App 2 -->
<APPLICATION name="APP2">
<USERID>UID2</USERID>
<PASSWORD>PWD2</PASSWORD>
<TNS>TNS2</TNS>
</APPLICATION>
<!-- App 3 -->
<APPLICATION name="APP3">
<USERID>UID3</USERID>
<PASSWORD>PWD3</PASSWORD>
<TNS>TNS3</TNS>
</APPLICATION>
</DATABASE>