首页 技术 正文
技术 2022年11月12日
0 收藏 885 点赞 3,697 浏览 2034 个字

本篇参考:https://trailblazer.salesforce.com/ideaview?id=08730000000BroxAAC

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

我们在项目中可能会有类似的需求: 甲方爸爸在看了某个表的数据详情页以后说, 这个页面整体符合需求了,但是我们业务上希望的是,当页面中的某个状态为某些值情况下展示某个或者某些section或者展示某些字段,不满足的情况下,section展示或者相关字段展示也没有用,因为业务不看。你们实施团队能不能实现这种的啊?

此时作为开发人员可能只有两条路:

1. 告诉甲方爸爸,这个是salesforce的标准的 page layout,标准功能实现不了这种需求,要么就不做这个需求了吧,也不影响使用;
2. 告诉甲方爸爸,啊,这种需求必须能做,只是需要开发,但是我们可以搞定。

作为开发来说,我们肯定是想往1来推,标准的page layout保证了稳定性以及高可配,方便后续的维护,如果遇见很tough的客户,我们就只能进行了自定制之路。当然,以后如果有类似的需求以后,我们可能就可以通过配置的方式搞定,使用的就是我们今天的主角: Dynamic Form

一. Dynamic Form
我们知道 salesforce 一直致力于 no code / less code的宗旨, 同样的,针对类似的需求,salesforce推出了 dynamic form去最大化的适配动态表单的需求。

有几点优势:

  1. 和 page layout 进行了分离,在 lightning app build的record page进行配置,section / field 想放在哪里放哪里,不像原来只能按照 page layout展示而展示;
  2. 可以通过 visibility rule 去 设置 field / section的展示与隐藏的逻辑;

有几点需要注意:

1. dynamic form 目前只支持自定义的 object,标准 object暂时不支持,期待后续的release可以不断的进行拓展;
2. dynamic form 影响的不只是用户所看见的详情页面,当用户进行编辑或者新建/克隆等操作时,同样会遵循 visibility rule。

二. Dynamic Form的使用

1. Dynamic Form只允许在 Lightning App builder中进行使用,当我们找到一个 lightning record page(new/ edit),选择 record detail组件,右侧会展示 Upgrade Now的按钮

2. 通过下图就可以看出来 dynamic form的三大核心功能。

3. dynamic form不会改变 page layout

4. dynamic form有三个维度: accordion / section / field。我们按照需求可以进行不同维度的配置,不同的维度可以进行不同的配置,可看图中描述。

5.  field级别除了可以设置显隐以外,还可以设置UI的行为

6. 这里我们做一个简单的demo, is draft为true, goods price隐藏,这里我们针对 goods price设置 field visibility,点击 Advanced 按钮,我们可以看到 设置除了记录字段级别以外,还可以根据 user / permission维度来控制

7. 我们进行了一个 Field Visibility简单配置,点击done即完成了一个配置

结果演示:

1. is draft为false, goodsprice正常展示

2. is draft为true,goodsprice动态的隐藏。

 三. 现在项目是否应该用 Dynamic Form

尽管dynamic form很强大,但是我们不是项目中有类似需求就直接上来,如果不对其进行认真的评估,很容易后期出差错,累死自己和团队。所以在是否应该使用之前,我们需要先了解几点:

1. 目前只针对自定义表使用,标准的表不支持,如果客户对UI要求严格,可能达到整体功能不统一;

2. dynamic form拥有很多的 limitation,这些都是在文档中有介绍的,比如不支持 blank space,一个section一个列最多100个字段等等,我们在使用以前一定需要先了解limitation是否影响到了我们的红线;

3. dynamic form经历了去年的beta到今年的正式发布,还是有很多的known issue,官方也列出来了。在使用以前一定先看一下 known issue是否会影响到我们的使用。

总结:dynamic form作为一个高可配的动态表单,相信后续的升级完善以后,对于管理员来说会越来越得到使用,对于开发来说也是一个很好的功能。针对开发来说,使用以前了解好限制,找好workaround方案。 篇中只是简单的描述了一下 dynamic form的使用,实际上会更加强大,感兴趣的小伙伴可以自己来玩了。篇中有错误欢迎指出,有不懂欢迎留言。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,913
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,438
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,252
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,063
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,695
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,733