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

求批量修改前缀为GD的Lotus群组类型脚本:从仅邮件(3)改多用途(0)

批量修改Lotus Domino指定群组类型的脚本实现

当然有办法搞定这个需求!我之前刚好帮同事写过类似的脚本,专门用来批量处理这类有特定命名规则的Lotus群组,下面就分享给你:

核心脚本(LotusScript代理)

这是一个可以直接在Domino Designer中部署的代理脚本,精准匹配你的需求:

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim groupType As Integer
    
    ' 指向当前打开的通讯录数据库(一般是names.nsf)
    Set db = session.CurrentDatabase
    ' 获取通讯录里的群组视图
    Set view = db.GetView("Groups")
    
    ' 遍历所有群组文档
    Set doc = view.GetFirstDocument()
    While Not(doc Is Nothing)
        Dim groupName As String
        groupName = doc.GetItemValue("ListName")(0)
        
        ' 严格匹配前两位为"GD"(忽略大小写和前后空格)
        If Left(Trim(Ucase(groupName)), 2) = "GD" Then
            groupType = doc.GetItemValue("GroupType")(0)
            
            ' 仅修改类型为"仅邮件(3)"的群组
            If groupType = 3 Then
                Call doc.ReplaceItemValue("GroupType", 0)
                Call doc.Save(True, False)
                Print "已更新群组: " & groupName & " (类型从3→0)"
            End If
        End If
        
        Set doc = view.GetNextDocument(doc)
    Wend
    
    MsgBox "批量修改完成!", MB_OK, "操作提示"
End Sub

操作步骤

    1. 打开Domino Designer,打开你的通讯录数据库(通常是names.nsf)
    1. 新建一个代理,选择「LotusScript」语言,运行方式设为「手动运行」
    1. 把上面的代码粘贴进去,保存代理
    1. 回到Notes客户端,打开通讯录,找到这个代理并运行即可

关键细节提醒

  • 匹配逻辑:用Left(Trim(Ucase(groupName)), 2)是为了避免大小写差异(比如gd、Gd)和群组名前后空格导致的漏匹配
  • 群组类型对应值:Lotus Domino里GroupType字段的标准取值:
    • 0 = 多用途群组
    • 3 = 仅邮件群组
  • 安全建议:建议先在测试环境跑一遍,或者先导出符合条件的群组做备份,再执行批量修改,避免误操作

如果你偏好命令行或者其他方式,也可以基于Domino的REST API来实现,但上面的LotusScript代理是最直接、最常用的方案。

内容的提问来源于stack exchange,提问作者Robert Lewi Kiedrowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:03:45