本篇参考:

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创建以及使用场景,有错误地方欢迎指出,有不懂欢迎留言。如果大家有其他的更好的方法欢迎留言。

salesforce零基础学习(一百三十三)ListView的button思考的更多相关文章

  1. salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce

    本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...

  2. salesforce 零基础学习(五十三)多个文件生成一个zip文件(使用git上封装的代码)

    此篇参考git代码:https://github.com/pdalcol/Zippex 学习salesforce可以访问一个朋友的网站:https://www.xgeek.net 首先感谢git上提供 ...

  3. salesforce 零基础学习(三十九) soql函数以及常量

    在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己 ...

  4. salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)

    上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件 ...

  5. salesforce零基础学习(七十三)ProcessInstanceWorkItem/ProcessInstanceStep/ProcessInstanceHistory浅谈

    对于审批流中,通过apex代码进行审批操作一般都需要获取当前记录对应的ProcessInstanceWorkitem或者ProcessInstanceStep然后执行Approval.process操 ...

  6. salesforce 零基础学习(三十八)Translate 的使用(国际化处理)

    本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...

  7. salesforce 零基础学习(三十七) DML及Database方法简单描述

    在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...

  8. salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

    有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们 ...

  9. salesforce 零基础学习(三十)工具篇:Debug Log小工具

    开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示.假 ...

  10. salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)

    我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录 ...

随机推荐

  1. windows安全中心打不开

    解决win11打不开安全中心的问题!!! 许多用户在最近都升级了Windows11系统,而且不少用户最近在使用Win11的时候发现自己打不开Windows安全中心 操作方法: 管理员权限打开Power ...

  2. Java杂记————object.getClass()和object.class以及Java中的toString()方法的的区别

    不说废话,直接上干货: (注意大小写:object为对象,Object为类) 1,object.getClass()它是Object类的实例方法,返回一个对象运行时的类的Class对象,换句话说,它返 ...

  3. 打开页面就能玩?ZEGO 发布行业首套 Web 端在线 KTV 解决方案

    近些年,在线K歌行业逐渐开始规模化发展,活跃用户不断破新高,据 ZEGO 即构科技研究院数据显示,2021 年中国在线 K 歌用户规模逾 5.2亿,网民渗透率达到 50%. 凭借着极大的便利性和娱乐性 ...

  4. 【爬虫案例】用Python爬取知乎热榜数据!

    目录 一.爬取目标 二.编写爬虫代码 三.同步讲解视频 3.1 代码演示视频 3.2 详细讲解视频 四.获取完整源码 一.爬取目标 您好,我是@马哥python说,一名10年程序猿. 本次爬取的目标是 ...

  5. Redis从入门到放弃(2):数据类型

    在Redis中,数据以键值对的形式存储.Redis支持五种主要的数据类型,每种类型都有不同的用途和特性. 本文将介绍Redis的五种数据类型:字符串(string),哈希(hash),列表(list) ...

  6. XCTF-favorite_number

    题目 (xctf.org.cn) 判断,既要数组强等于,又要首元素不等:php有下标越界溢出漏洞,因此0可以通过整型溢出得到 绕过if判断 playload:stuff[4294967296]=adm ...

  7. PyQt5调用主窗口

    import sysfrom ui.MainWindow import Ui_Form from PyQt5.QtWidgets import QApplication, QMainWindowcla ...

  8. Jmeter使用jp@gc-stepping thread group做性能测试

    扩展插件 下载地址:http://jmeter-plugins.org/downloads/all 将JMeterPlugins-Standard.jar复制到jmeter的lib目录下的ext目录下 ...

  9. Amiya 前端UI

    最近在使用一个基于Ant Design 二次封装的组件 Git文档地址 Index - Amiya (gitee.io)

  10. 一个可将执行文件打包成Windows服务的.Net开源工具

    Windows服务一种在后台持续运行的程序,它可以在系统启动时自动启动,并在后台执行特定的任务,例如监视文件系统.管理硬件设备.执行定时任务等. 今天推荐一个可将执行文件打包成Windows 服务的工 ...