salesforce零基础学习(一百三十三)ListView的button思考

本篇参考:

salesforce零基础学习(九十五)lightning out

salesforce零基础学习(一百一十)list button实现的一些有趣事情

https://help.salesforce.com/s/articleView?language=en_US&id=sf.mass_quick_actions_considerations.htm&type=5

https://trailhead.salesforce.com/content/learn/modules/autolaunched-scheduled-flows/run-autolaunched-flow-from-custom-button

https://developer.salesforce.com/docs/component-library/bundle/lightning:isUrlAddressable/documentation

Salesforce虽然功能很强大,但是需要吐槽的就是ListView创建custom button操作。本篇整理一下目前可以进行ListView以及Related ListView的Button的操作。

一. Mass Quick Action

1. 介绍

通过Mass Quick Action,用户可以从ListView或者 Related ListView最多一次创建或者修改100条记录。为了了解客户修改了哪些信息,salesforce会在保存以前提供一个window弹出用来展示需要更新的字段信息。

需要注意的是: 只有 Create A Record 以及 Update a Record这两种Action Type支持Mass Quick Action.

2. Demo

  1. 需求是Account列表有Mass Edit按钮,点击可以批量修改Account的Active以及Rating字段值。 从下方gif中我们可以看到,此种类型必须要求同一种Record Type,否则无法使用。

2)我们将Demo中的Mass Quick Action进行修改,设置一下Predefined Value,我们发现尽管这两个字段在UI上默认展示,但是提示没有字段变更,所以更新以后我们发现数据没有什么变化。这个设计是很不讨巧的并且很容易让人有疑惑。

3. 优缺点和考虑点

优点:

  • 和主流的UI相符合,Popup当页弹出;
  • 可配置,实施方便。

缺点:

  • 只能用于单一的Record Type;
  • 只支持 Create Record以及Update Record,如果需求很复杂,无法通过此种方式实施。

考虑点:

  • 此种方式必须最低选择一条记录,即使是创建记录的情况,也需要选择,编辑场景OK,创建的场景容易有歧义;
  • 针对UI上的字段的Predefined Value不好使并且有歧义,针对有默认值情况,可能需要用户自己选择;
  • 没有较多的可扩展性。

二. Flow

1. 介绍

通过Screen Flow或者 autolaunched flow,基于官方的隐藏的ids变量可以获取到选择到的数据进行操作。Flow可以实现选择数据或者不选择数据情况下的多条数据操作。比如批量创建某个表的数据,或者选择某些数据进行相关操作。通过Custom Button调用Flow的URL便可以执行Flow,通过retUrl参数可以设置Flow执行完成后的链接。

2. Demo

我们还是以上个场景的需求进行举例,通过flow方式来实现。因为需要进行UI操作,我们可以选择Screen Flow,当然如果直接设置默认值不需要有UI的话,我们可以选择 autolaunched flow。这里我们只介绍Screen Flow的场景, autolaunched感兴趣的小伙伴自行尝试。

1) 创建Flow: 我们通过下方gif可以查看设计思路。 先创建一个Screen接收两个选择的内容。之后对选择的id数据进行迭代,迭代的每个item中设置Account信息并且将AccountList添加Account,最后一步进行AccountList的更新操作即可。

这里需要注意一点: 参数ids大小写敏感,一定要写成ids并且设置为multiple value即collection。

2)基于Flow的URL配置custom button,这里我们可以看一下官方提供的trailhead进行更好地理解。

3. 优缺点和考虑点

优点:

  • 可扩展性增强
  • 基于配置,快速实现
  • 跨record type数据可以一起操作

缺点:

  • UI不够友好:通过上方的gif,我们可以看到UI上不是popup,而是跳转到一个新的页面进行操作,而且还需要动态考虑跳转以及报错的情况,必要的时候需要aura进行一些处理保证更加友好,比如toast以及navigation等。

考虑点:

  • 没有选择数据情况下如何更好的提示用户
  • 数据失败或者数据成功情况下,官方没有提供action来进行用户友好操作,如果想要特别灵活,需要使用一定的开发内容。

三. 通过Lightning Out来实现

1. 介绍

我们可以通过visualforce page来获取到ids信息并且list button支持apex page相关配置,如果我们还想通过lwc/aura组件来构建UI情况下, 我们可以考虑lightning out。

2. Demo

参考上方以前的文章内容,有具体的demo实现。

3. 优缺点和考虑点

优点:

  • 可扩展性强
  • 跨Record Type数据可以一起操作

缺点:

  • UI不够友好:通过上方的gif,我们可以看到UI上不是popup,而是跳转到一个新的页面进行操作。
  • 部分功能不支持lightning out,需要增加测试成本。

考虑点:

  • 目前是beta版本,尚未GA。

四. 通过Lightning Aura来实现(部分功能)

1. 介绍

如果我们没有获取选中Id的需求,只是批量数据创建的场景,可以使用Aura来实现。Aura实现 isURLAddressable接口。然后通过URL方式进行访问,从而实现操作方式。

2. Demo

我们想批量创建Lead数据,基于指定的命名规则来操作然后批量保存。部分代码实现如下:

MassCreateLead.cmp

复制代码
<aura:component implements="lightning:isUrlAddressable">
    demo used, please add component to finish this
</aura:component>    

放在列表以及效果如下:

3. 优缺点和考虑点

优点:

  • 可扩展性强
  • 跨Record Type数据可以一起操作

缺点:

  • UI不够友好:通过上方的gif,我们可以看到UI上不是popup,而是跳转到一个新的页面进行操作。
  • 无法获取到选择数据的Id,仅用于创建数据场景。
  • 不支持Experience Cloud

**总结:**篇中总结关于ListView的Button创建以及使用场景,有错误地方欢迎指出,有不懂欢迎留言。如果大家有其他的更好的方法欢迎留言。

相关推荐
zero.zhang5 天前
Salesforce AI Specialist篇之 Einstein Trust Layer
salesforce学习·ai 学习
zero.zhang2 个月前
Salesforce Sales Cloud 零基础学习(五) My Labels的使用
salesforce学习·admin学习·sales cloud
zero.zhang2 个月前
salesforce零基础学习(一百四十)Record Type在实施过程中的考虑
salesforce学习·self learning·admin学习
zero.zhang4 个月前
salesforce零基础学习(一百三十九)Admin篇之Begins/Contains/Starts With 是否区分大小写
salesforce学习·admin学习
zero.zhang5 个月前
salesforce零基础学习(一百三十八)零碎知识点小总结(十)
salesforce学习·self learning·admin学习
zero.zhang5 个月前
salesforce零基础学习(一百三十七)零碎知识点小总结(九)
salesforce学习·admin学习
zero.zhang5 个月前
salesforce零基础学习(一百三十六)零碎知识点小总结(八)
lightning学习·lwc·salesforce学习·admin学习
zero.zhang6 个月前
salesforce零基础学习(一百三十五)项目中的零碎知识点小总结(七)
lwc·salesforce学习·self learning
zero.zhang7 个月前
Salesforce LWC学习(四十九) RefreshView API实现标准页面更新,自定义组件自动捕捉更新
lightning学习·lwc·salesforce学习
zero.zhang9 个月前
Salesforce LWC学习(四十六) record-picker组件浅谈
lightning学习·lwc·salesforce学习