在 Salesforce 中,如果想在「Opportunity > Opportunity Products」列表页面上增加一个“批量删除产品”的按钮,并实现勾选多条产品后统一删除,大体可以考虑以下几种实现思路。由于环境和版本(Classic / Lightning)不同,具体操作也略有差异,下面分别做介绍。
一、在 Lightning 环境中实现
1. 使用 Flow + 自定义按钮/自定义操作(推荐做法)
-
创建 Flow(屏幕流 Screen Flow)
- 在 Flow 中先添加一个“获取记录”(Get Records)元素,用于获取 Opportunity Product(即
OpportunityLineItem
)的数据。 - 在界面上提供一个可供多选的列表控件(可以使用 Data Table 或者 Checkbox 的方式),让用户勾选需要删除的 Opportunity Products。
- 用户确认后,调用“删除记录”(Delete Records)元素删除选中的记录。
- 在 Flow 中先添加一个“获取记录”(Get Records)元素,用于获取 Opportunity Product(即
-
创建自定义按钮/操作(Action)
- 在「对象管理 > Opportunity > Buttons, Links, and Actions」中,点击“New Action”或“New Button or Link”。
- 如果使用的是 Lightning Action,则可以选择调用刚才创建好的 Flow(Screen Flow)。
- 将此按钮/操作添加到页面布局(Page Layout)或 Lightning Record Page 中,让用户能够在 Opportunity 的页面上点击打开。
-
效果
- 用户在 Opportunity Record Page 里点击该自定义操作(或按钮),弹出 Flow 屏幕,看到与该 Opportunity 相关的所有 Products 列表,勾选需要删除的产品,确认后执行删除。
注意要点
- Flow 中最好先做一下权限或错误处理,比如如果没有选择任何产品,也要提示用户。
- 如果列表数据量非常大,使用可分页的方式或者限制查询的数量也是值得考虑的。