最近要做一个模版推送工具,domino有自己的模版管理工具,比如定义一个NTF跟NSF关联,服务器每天晚上会自动更新,但是用户不满足于这个,因为用户公司的数据库实在太多了,服务器也好几台,实在有点乱,最糟糕的情况是,当这个数据库都有一部分是相同的设计,通常为公司开发的核心代码,当这些代码要变更的时候就要在所有的数据库都部署一遍,耗时耗精力,还容易出错。因此用户希望可以把模版集中管理,放在一个地方,取消服务器每天定时刷新的任务,最终定下一个方案。
将数据库分级,第一级为核心模版库,第二级为一般模版库,第三级数据库
核心模版库存放所有数据库共有的设计,比如代理,类库等。按核心代码变更后,用核心模板库作为模版,推送到各个模板库,而各个模板库关联了最终的应用数据库,在用模版库推送到数据库,这样实现模版的统一管理。模版库刷新数据库,domino有自带的命令,load conver.但是将核心模版库推送到模版库。
但是核心模板库的设计如何推到模版库,命令会把模版多余的设计删掉,现在只能用代理将核心模版库的设计拷到模板库
一,domino的文档
domino的一个数据库里的内容都是以文档的形式存放的,文档分为设计文档和数据文档,数据文档就是我们用视图过滤过来可以看到的,而设计文档是我们看不到的文档,一个表单,一个视图,一个代理一个图标都是一条文档,甚至domino的一些配置说明都是一条文档,domino有一些特殊的文档是存放数据库信息,比如ACL,
二.设计元素的显示 创建显示特殊文档的视图:$FormulaClass的奥秘 ,但是仅仅这样还不足与区别各个设计,$FormulaClass 设为4后就得到了表单,子表单,图片,帧结构集等设计元素。但是每个设计元素都包含有一个域$Flags,可以从这个域值中区别具体的设计元素,这个值往往存的是这个设计元素的一些设置,比如P表示刷新的时候不刷新此设计元素,各个设计元素与$Flags值如下
Design Element Name
|
Note Class (hex)
|
Selection Formula (as of version 8.5)
|
Form
|
Form (4)
|
!@Matches($Flags; "*{UWy#i:|@Kgz}*")
|
View
|
View (8)
|
!@Matches($Flags; "*{FG^}*")
|
Folder
|
View (8)
|
@Contains($Flags; "F")
|
Agent
|
Filter (200)
|
!@Matches($Flags; "*{QXstmz{}*")
|
Image
|
Form (4)
|
@Contains($Flags; "i")
|
Subform
|
Form (4)
|
@Contains($Flags; "U")
|
Outline
|
Filter (200)
|
@Contains($Flags; "m")
|
Frameset
|
Form (4)
|
@Contains($Flags; "#")
|
Page
|
Form (4)
|
@Contains($Flags; "W")
|
Script Library (excluding Web Service Consumers)
|
Filter (200)
|
@Matches($Flags; "*{sh}*") & !@Contains($FlagsExt; "W")
|
Stylesheet
|
Form (4)
|
@Contains($Flags; "=")
|
Theme
|
Form (4)
|
@Contains($Flags; "g") & @Contains($Flags; "`")
|
Composite Application
|
Form (4)
|
@Contains($Flags; "|")
|
Wiring Properties
|
Form (4)
|
@Contains($Flags; ":")
|
Web Service Consumer
|
Filter (200)
|
@Contains($FlagsExt; "W") & @Matches($Flags; "*{sh}*")
|
Web Service Provider
|
Filter (200)
|
@Contains($Flags; "{")
|
XPage
|
Form (4)
|
@Contains($Flags; "g") & @Contains($Flags; "K")
|
Custom Control
|
Form (4)
|
@Contains($Flags; "g") & @Contains($Flags; ";")
|
File Resource
|
Form (4)
|
@Contains($Flags; "g") & !@Matches($Flags; "*{~K[];`}*")
|
Hidden File Resource (created by XPage build)
|
Form (4)
|
@Contains($Flags; "g") & @Contains($Flags; "~") & !@Matches($Flags; "*{~K[];`}*")
|
Shared Field
|
Field (400)
|
N/A
|
Shared Action
|
Form (4)
|
@Contains($Flags; "y")
|
Database Icon
|
Icon (10)
|
N/A
|
Help About Document
|
Help About (2)
|
N/A
|
Help Using Document
|
Help Using (100)
|
N/A
|
Database Script
|
Filter (200)
|
@Contains($Flags; "t")
|
Data Connection
|
Filter (200)
|
@Contains($Flags; "k")
|
Navigator
|
View (8)
|
@Contains($Flags; "G")
|
Applet
|
Form (4)
|
@Contains($Flags; "@")
|
Shared Column
|
View (8)
|
@Contains($Flags; "^")
|
DB2 Access View
|
Form (4)
|
@Contains($Flags; "z")
|
Stored full-text query
|
Filter (200)
|
@Contains($Flags; "O")
|
Agent Data Note
|
Filter (200)
|
@Contains($Flags; "X")
|
Database ACL
|
ACL (40)
|
N/A
|