salesforce零基础学习(一百零七)Dynamic Action

说一下项目中常见的甲方的需求。背景如下:Order在SF端生成以后,在status为completed以后,需要点击按钮同步到SAP或者其他的MDM,客户希望的是,如果 order的状态为 completed以后,才展示custom action / button,点击以后同步,如果状态为draft场景,则不展示。

我们的solution通常是告诉客户,action/ button 配置在page layout以后,无法进行移除,我们在点击按钮以后,可以先判断状态,如果状态不为completed以后,就给客户报一个错误,告诉客户当前状态不允许同步。尽管需求可以实现,但是总归不是客户最想要的。

当然,和上一篇博客的 dynamic form 相似,salesforce同样也针对此种类似的需求推出了 dynamic action。以后这种类似的需求就可以通过 dynamic action 快速高效的解决了。

一. Dynamic Action

Dynamic Action和dynamic form相同,启用以及配置的入口都是在 lightning app builder中,所以如果你的项目是classic的,肯定是用不了的。和 dynamic form的一点不同是,标准 object也是支持 dynamic action。 只需要在 highlights panel 点击以后,在右侧upgrade 即可。

点击 Upgrade Now按钮以后,可以有两种模式供选择,一种是从0开始配置action,另外一种是基于一个 page layout进行选择。 

 下图demo中是根据一个page layout进行配置。

 我们可以看到基于一个page layout配置的情况下,默认这个page layout的所有的action会自动带出来,如果选择另外一种,则此处为空内容。

 我们想要设置action的显隐只需要选中这个action,然后在 Set Action Visibility设置Filter即可。

 demo中我们设置 MyGuide这个action在当前 user的profile是 system administrator情况下展示。 

效果展示

我们以一个非admin账户登录,查看一个opportunity,发现这个quick action 并看不到 

 我们以一个管理员登录,发现是可以看到的。

 总结: dynamic action 可以尽最大限度的做一些显隐设置,当然,现在还达不到 当前user基于对当前记录的CRUD权限来控制。目前用的比较多的可能是基于当前记录的字段的值来控制,当然,我们也可以使用 user / permission来控制,至于可以选择哪些字段来设置逻辑,可以自行尝试。篇中有错误地方欢迎指出,有不懂欢迎留言。

posted @ 2021-09-14 21:13  zero.zhang  阅读(435)  评论(0编辑  收藏  举报