You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Domino主组成员的其他群组归属并生成指定CSV?

实现Domino群组成员所属其他群组查询并导出CSV的最优方案

最优选择:LotusScript 实现

针对大量成员的处理需求,LotusScript是最灵活可控的方案——它能轻松处理嵌套群组展开、精准过滤目标群组、自定义CSV输出格式,完全匹配你的需求。

核心实现步骤

  1. 打开Domino系统目录(names.nsf)
  2. 读取Main_Group的所有成员(自动展开嵌套群组,避免遗漏)
  3. 遍历每个成员,查询其所属的所有群组,排除Main_Group本身
  4. 按要求格式整理数据,写入CSV文件

示例代码片段

Sub Initialize
    Dim session As New NotesSession
    Dim dbDir As NotesDatabase
    Dim groupDoc As NotesDocument
    Dim memberList As Variant
    Dim userName As String
    Dim personDoc As NotesDocument
    Dim groupsList As String
    Dim csvFile As Integer
    Dim csvLine As String
    
    ' 打开Domino目录数据库
    Set dbDir = session.GetDatabase("", "names.nsf")
    If Not dbDir.IsOpen Then dbDir.Open("", "names.nsf")
    
    ' 定位Main_Group文档
    Set groupDoc = dbDir.GetView("Groups").GetDocumentByKey("Main_Group", True)
    If groupDoc Is Nothing Then
        Msgbox "未找到Main_Group群组"
        Exit Sub
    End If
    
    ' 展开群组所有成员(包含嵌套群组)
    memberList = groupDoc.GetItemValue("Members")
    memberList = session.Evaluate("@ExpandGroups(" & memberList(0) & ")", groupDoc)
    
    ' 创建并打开CSV输出文件
    csvFile = Freefile()
    Open "C:\DominoMemberGroups.csv" For Output As csvFile
    ' 写入CSV表头
    Print #csvFile, "UserName;DominoGroups"
    
    ' 遍历每个成员处理数据
    Forall mem In memberList
        ' 提取纯用户名(去掉组织后缀)
        userName = Strleft(mem, "/")
        ' 获取用户对应的个人文档
        Set personDoc = dbDir.GetView("People").GetDocumentByKey(mem, True)
        If Not personDoc Is Nothing Then
            groupsList = ""
            ' 读取用户所属群组,排除Main_Group
            Forall grp In personDoc.GetItemValue("Groups")
                If grp <> "Main_Group" Then
                    groupsList = IIf(groupsList = "", grp, groupsList & "," & grp)
                End If
            End Forall
            ' 生成CSV行并写入
            csvLine = userName & ";" & groupsList
            Print #csvFile, csvLine
        End If
    End Forall
    
    Close csvFile
    Msgbox "导出完成,文件路径:C:\DominoMemberGroups.csv"
End Sub

其他方案的局限性

公式视图方案

  • 无法自动展开嵌套群组,只能处理直接成员;
  • 难以实现排除Main_Group的逻辑过滤,也无法直接输出指定格式的CSV,仅适合简单的成员列表展示,不满足你的复杂需求。

现成Notes数据库

Domino自带的names.nsf没有原生支持这种定制化导出的功能,第三方工具需要额外部署,灵活性和可控性远不如自定义LotusScript脚本。

内容的提问来源于stack exchange,提问作者Baku Bakar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:20:41