说一下项目中常见的甲方的需求。背景如下: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 即可。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iNxEzMwEjM0kTMtcTO0UzMyQzNxQTM5ATMyAjMtYjN5ATM58CX5ATMyAjMvwlN2kDMxkzLcd2bsJ2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
点击 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来控制,至于可以选择哪些字段来设置逻辑,可以自行尝试。篇中有错误地方欢迎指出,有不懂欢迎留言。
作者:zero
博客地址:http://www.cnblogs.com/zero-zyq/
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
个人下载了一些相关学习的PDF文件,如果需要下载请访问百度云 点击此处访问 密码:jhuy
如果文章的内容对你有帮助,欢迎点赞~
为方便手机端查看博客,现正在将博客迁移至微信公众号:Salesforce零基础学习,欢迎各位关注。