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

Salesforce Visual Flow锁定与不可修改托管包部署技术咨询

关于Salesforce Visual Flow锁定与托管包的问题解答

好问题!我来分两部分给你拆解清楚:

一、能否将Visual Flow部署为托管包,实现类似Apex的锁定效果?

完全可以!当你把Visual Flow添加到Managed(受管)托管包中并上传后,安装该包的目标组织用户将无法查看或修改Flow的核心逻辑(比如流程中的元素、连线、公式配置等),只能按照你预设的方式调用这个Flow,这和托管包中的Apex代码的保护机制是一致的。

不过要注意两个细节:

  • Flow的运行权限(比如哪些用户能调用)可以在安装后的组织中调整,但核心的流程定义是被完全锁定的。
  • 如果你用的是Unlocked(解锁)托管包,那Flow是可以被修改的,只有Managed包才能实现真正的锁定隐藏。

二、若选择通过Apex实现,如何创建锁定的托管包?

如果你的需求是用Apex封装业务逻辑(或者封装Flow的调用)并通过托管包锁定,步骤如下:

  1. 准备可部署的Apex代码
    编写你的Apex类,确保代码语法正确,并且满足Salesforce的部署要求(比如测试覆盖率达到75%以上)。如果是要封装Flow调用,可以用Flow.Interview类来实现,示例代码:

    public class FlowInvoker {
        public static void runMyLockedFlow(Id recordId) {
            Map<String, Object> flowParams = new Map<String, Object>{'RecordId' => recordId};
            Flow.Interview.MyLockedFlow flowInterview = new Flow.Interview.MyLockedFlow(flowParams);
            flowInterview.start();
        }
    }
    

    这里的MyLockedFlow是你要调用的Flow API名称,把这个Apex类和Flow都加到托管包里即可。

  2. 配置命名空间(必填)
    Managed托管包必须绑定命名空间。在Setup中搜索「Namespace Prefix」,注册一个新的命名空间或者选择已有的命名空间(每个Org只能有一个命名空间)。

  3. 创建Managed托管包

    • 在Setup中搜索「Packages」,点击「New」按钮。
    • 填写包的基本信息(名称、描述),在「Package Type」中选择「Managed」。
    • 点击「Add Components」,选择你要添加的Apex类、Flow(如果有的话)以及其他依赖组件(比如自定义对象、权限集等),然后保存。
  4. 上传托管包
    进入包的详情页面,点击「Upload」按钮:

    • 设置版本号(比如1.0.0)、版本描述,选择上传的环境(Sandbox或Production)。
    • 完成上传后,系统会生成安装链接,你可以把这个链接分享给需要安装的组织。
  5. 验证锁定效果
    在测试Org中安装这个托管包后,尝试查看其中的Apex类或Flow:

    • Apex类的源码会被隐藏,无法查看或修改。
    • Flow只能看到名称和基本信息,无法打开编辑页面查看内部逻辑。

额外提示

  • 如果你只是想保护Flow逻辑,直接把Flow放到Managed托管包里就足够了,不需要额外用Apex封装,除非你需要更灵活的调用方式(比如从触发器、LWC中调用)。
  • 不要混淆Managed和Unlocked包:Unlocked包主要用于内部团队协作,允许安装后修改;Managed包才是用于对外分发、锁定组件的正确选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:28:36