我需要在 BD(管理员 db kinnd)中创建一个视图,向我显示所有其他数据库的模板版本!谁能帮我解决这个问题!?
2 回答
您不需要为此创建数据库,已经有一个。它称为“catalog.nsf”,包含您想要的信息。您只需要创建一个视图并稍微修改选择公式:原始:
SELECT @IsAvailable(ReplicaID)& @IsUnavailable(RepositoryType)& !(DBListInCatalog = "0")
新的:
SELECT @IsAvailable(ReplicaID)& @IsUnavailable(RepositoryType)
这样您就可以看到所有数据库,即使是那些通常在目录中不可见的数据库。
您要查找的信息位于“DbInheritTemplateName”- 字段中。
如果您想自己编写代码,您可以遍历catalog.nsf 中的所有文档并从那里读取它,或者您使用NotesDBDirectory,遍历它并读取NotesDatabaseClass 的“DesignTemplateName”- 属性。
目录示例代码:
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
正如 Panu 所说,数据库目录提供了服务器上所有数据库的列表。您使用服务器目录任务来创建数据库目录。Catalog 任务使目录文件 (CATALOG.NSF) 以 CATALOG.NTF 模板为基础,并将适当的条目添加到目录的 ACL。目录任务运行时,服务器上的所有数据库都包含在目录中。
为了帮助用户在整个组织中定位数据库,或跟踪每个数据库的所有副本,您必须在您的一个服务器上设置域目录(将多台服务器的数据库目录中的信息组合在一起的目录) . 无论您是否计划实施 Domino 的域搜索功能,都可以设置域目录。
除了允许用户查看特定服务器上的数据库之外,目录还提供有关数据库的有用信息。对于视图中的每个数据库,Database Entry 文档提供文件名、副本 ID、设计模板、数据库活动、复制、全文索引和 ACL 等信息,以及让用户浏览或添加数据库的按钮到他们的书签。此外,该文档还显示了一个指向数据库的 Policy (About This Database) 文档的链接,对于无权访问的数据库用户,他们可以通过向数据库管理员发送电子邮件请求来查看该文档。
有关更多详细信息,请参阅 Domino 管理帮助。