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

执行Replace Design并隐藏公式后Lotus Notes DB无法创建文档

解决Lotus Notes隐藏设计后无法创建文档的问题

核心问题原因

勾选“Hide formulas and LotusScript”执行刷新设计时,数据库内所有带公式/LotusScript的元素(包括按钮动作、表单创建逻辑)会被加密隐藏,即便是Editor或Manager权限的用户也无法执行这些隐藏的公式,最终导致按钮点击无响应、菜单选表单时触发“formula is hidden”错误。

可行解决方案

1. 用代理替代按钮公式

把按钮里的@Command([Compose])逻辑迁移到隐藏代理中:

  • 在模板里新建LotusScript代理,实现创建文档的逻辑,示例代码:
    Sub Initialize
        Dim ws As New NotesUIWorkspace
        Call ws.ComposeDocument("","","目标表单名称")
    End Sub
    
  • 设置代理运行权限为“以代理签名者身份运行”,确保签名者在目标数据库拥有足够权限。
  • 修改按钮动作为调用该代理:@Command([ToolsRunMacro];"代理名称")。
  • 重新对目标数据库执行刷新设计并勾选“Hide formulas and LotusScript”——代理代码会被隐藏,但用户仍能通过按钮触发代理执行创建操作。

2. 调整表单创建逻辑适配隐藏规则

如果要保留表单在菜单中的显示:

  • 检查模板中表单的属性,确保“在菜单中显示”已勾选,同时清空表单的“默认创建公式”(若有自定义公式,隐藏后会直接触发报错)。
  • 若必须依赖自定义创建逻辑,同样把逻辑转移到代理中,让用户通过代理触发创建,而非直接从菜单选择表单。

3. 用角色控制设计访问(替代完全隐藏)

若不需要彻底隐藏所有设计元素,可通过角色限制设计可见性:

  • 在模板中给所有设计元素设置“设计访问列表”,仅允许指定的开发角色查看设计。
  • 刷新目标数据库时不勾选“Hide formulas and LotusScript”,而是通过数据库ACL的角色控制,让外部公司用户无法查看/修改设计,但能正常执行公式和脚本。

注意事项

  • 所有代理必须由权限足够的用户签名,否则普通用户运行时会触发权限错误。
  • 测试时务必使用普通用户账号验证流程,确保功能正常的同时,设计元素确实处于隐藏不可查看状态。

内容的提问来源于stack exchange,提问作者Alberto Iñiguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:09