我需要在BD(admin db kinnd)中创建一个视图,向我展示所有其他数据库的模板版本! 任何人都可以帮我这个!?
答案 0 :(得分:2)
您不需要为此目的创建数据库,已有一个。它被称为“catalog.nsf”并包含您想要的信息。您只需要创建一个视图并稍微修改选择公式: 原文:
SELECT @IsAvailable(ReplicaID)& @IsUnavailable(RepositoryType)& !(DBListInCatalog = "0")
新:
SELECT @IsAvailable(ReplicaID)& @IsUnavailable(RepositoryType)
通过这种方式,您可以看到所有数据库,甚至通常在目录中看不到的数据库。
您要查找的信息位于“DbInheritTemplateName” - 字段中。
如果您想自己编写代码,可以运行catalog.nsf中的所有文档并从那里读取它,或者使用NotesDBDirectory,运行它并读取“DesignTemplateName” - NotesDatabase的属性 - 班级。
目录的示例代码:
Dim dbCatalog as NotesDatabase
Dim dc as NotesDocumentCollection
Dim doc as NotesDocument
Dim strTemplate as String
Set dbCatalog = New NotesDatabase( "YourServerName" , "catalog.nsf" )
Set dc = dbCatalog.Search( "@IsAvailable(ReplicaID)& @IsUnavailable(RepositoryType)", Nothing, 0 )
Set doc = dc.GetFirstDocument()
While not doc is Nothing
strTemplate = doc.GetItemValue( "DBInheritTemplateName" )(0)
'- do whatever you want: create a document in your database, create a list...
Set doc = dc.GetNextDocument(doc)
Wend
NotesDBDirectory的示例代码
Dim dbDirectory as New NotesDBDirectory( "YourServerName" )
Dim db as NotesDatabase
Dim strTemplate as String
Set db = dbDirectory.GetFirstDatabase( DATABASE )
While not db is Nothing
strTemplate = db.DesignTemplateName
'- do whatever you want: create a document in your database, create a list...
Set db = dbDirectory.GetNextDatabase
Wend
答案 1 :(得分:1)
正如Panu所说,数据库目录提供了服务器上所有数据库的列表。您使用服务器目录任务来创建数据库目录。 Catalog任务将目录文件(CATALOG.NSF)基于CATALOG.NTF模板,并将相应的条目添加到目录的ACL中。目录任务运行时,服务器上的所有数据库都包含在目录中。
为了帮助用户在整个组织中查找数据库,或者跟踪每个数据库的所有副本,您必须设置一个域目录 - 一个将多个服务器的数据库目录中的信息组合在一起的目录 - 在一个目录上你的服务器无论您是否计划实施Domino的域搜索功能,都可以设置域目录。
除了允许用户查看特定服务器上的数据库之外,目录还提供有关数据库的有用信息。对于视图中的每个数据库,数据库条目文档提供信息,如文件名,副本ID,设计模板,数据库活动,复制,全文索引和ACL,以及允许的按钮用户浏览数据库或将其添加到书签。此外,该文档显示数据库的策略(关于此数据库)文档的链接,对于未授权访问的数据库,他们可以通过向数据库管理器发送电子邮件请求来查看。
有关详细信息,请参阅Domino Admin帮助。