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

关于在Notes视图拖拽文件/O365附件创建带附件文档的方案咨询

可行的替代方案分享(针对Notes 10.0.1FP4拖拽文件创建带附件文档需求)

我之前在Notes 10.x环境下处理过类似的需求,官方确实没有直接的开箱即用文档,不过有几个经过验证的替代方案可以实现目标:

方案1:利用Notes视图的拖拽事件编写LotusScript处理

Notes客户端的视图支持QueryDragDrop事件,我们可以通过编写该事件的LotusScript代码,捕获拖拽进来的文件/O365附件,自动创建新文档并嵌入附件:

  1. 打开Notes Designer,找到目标视图,进入视图的事件编辑界面
  2. 选择QueryDragDrop事件,编写如下核心代码片段:
Sub QueryDragDrop(Source As Variant, X As Long, Y As Long, Ctrls As Variant, _
                  Accepted As Integer)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim newDoc As NotesDocument
    Dim item As NotesItem
    Dim filePaths As Variant
    Dim i As Integer
    
    Set db = session.CurrentDatabase
    
    ' 捕获拖拽的文件路径(支持多文件)
    filePaths = Source.Files
    If Isempty(filePaths) Then Exit Sub
    
    ' 创建新文档
    Set newDoc = db.CreateDocument
    newDoc.Form = "你的表单名称" ' 替换为实际要使用的表单
    Call newDoc.Save(True, False)
    
    ' 将拖拽的文件逐个嵌入为附件
    For i = Lbound(filePaths) To Ubound(filePaths)
        Call newDoc.EmbedObject(EMBED_ATTACHMENT, "", filePaths(i), "Attachment")
    Next
    
    Call newDoc.Save(True, False)
    Accepted = True ' 标记拖拽事件已处理
End Sub

这个方案能实现原生拖拽的体验,不过要注意O365附件拖拽时,Notes会先将附件临时下载到本地,所以代码中获取的是本地临时文件路径,处理逻辑是通用的。

方案2:通过Power Automate联动O365与Notes

如果你的场景更偏向O365附件的集成,可以用Power Automate(原Microsoft Flow)搭建自动化流程:

  • 触发条件:当O365 Outlook/OneDrive中有新附件添加到指定位置(或用户手动触发)
  • 操作步骤:
    1. 获取附件的内容和元数据
    2. 使用Notes的REST API(或COM组件,客户端环境下)连接到Notes数据库
    3. 创建新的Notes文档,并将O365附件的内容作为附件嵌入到文档中

这个方案适合需要跨平台同步的场景,不过需要配置Notes的API访问权限,以及确保Power Automate能访问到你的Notes环境。

方案3:自定义工具栏/侧边栏按钮简化操作

如果拖拽的必要性不是特别强,可以做一个更简单的替代:在Notes客户端添加自定义按钮,用户选中文件/O365附件后点击按钮,自动创建带附件的文档:

  1. 在视图的操作栏添加一个新按钮
  2. 编写LotusScript代理,实现以下逻辑:
Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim newDoc As NotesDocument
    Dim uiWorkspace As New NotesUIWorkspace
    Dim filePaths As Variant
    
    Set db = session.CurrentDatabase
    ' 弹出文件选择对话框(支持多选)
    filePaths = uiWorkspace.OpenFileDialog(True, "选择要添加的文件", "*.*", "", "")
    If Isempty(filePaths) Then Exit Sub
    
    Set newDoc = db.CreateDocument
    newDoc.Form = "你的表单名称"
    Forall fp In filePaths
        Call newDoc.EmbedObject(EMBED_ATTACHMENT, "", fp, "Attachment")
    End Forall
    Call newDoc.Save(True, False)
    
    Messagebox "新文档已创建并添加附件", MB_INFO
End Sub

这个方案实现成本低,用户容易上手,不需要处理复杂的拖拽事件逻辑。

注意事项

  • 确保运行代码的Notes客户端有足够的权限创建文档和添加附件
  • 对于O365附件的拖拽,Notes会自动将其下载到本地临时目录,所以方案1的代码可以直接处理
  • 如果是Web版Notes,上述客户端端的方案不适用,需要考虑基于浏览器的拖拽事件处理和Notes REST API结合

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:47:28