Dynamics 365 Business Rule的Scpoe问题

    Business Rule是个好东西,可以减少很多开发量,将一些简单的功能通过配置就可以实现,但在用这个功能的过程中因为了解不透也可能带来麻烦。

    本篇要分享的是关于Business Rule中的Scope问题,在这个功能刚出来之前规则只对Form生效,但不知道哪个版本开始加入了Entity这个Scope,Entity的加入有好有坏,看你使用是否恰当。

    可以看到下图中这个rule,设置了entity scope,并且设置了字段的隐藏于显示,因为开发人员的粗心,本身一个if else显示与隐藏的规则,结果都设置成了显示,导致的结果是本身隐藏的一个Section就因为这条业务规则,哪怕修改一个完全无关的字段保存后都会使的这个本该隐藏的Section显示。

Dynamics 365 Business Rule的Scpoe问题

     因为这个问题被苦苦折磨半天,Rule的Scope设置成了Entity是后端执行,也就是在保存时页面会触发这个Rule,并且我截图中的Rule设置了Comments始终显示,导致页面随便修改一个字段保存就会触发这个rule,该隐藏的Section就显示出来了。

    所以如果是Scope是Form的rule一般是在你页面字段change的时候或者是load的时候会执行,而Scope是Entity的Role是在Save完执行,现在页面的Save不会执行Form Load,如果有些逻辑是在你保存完生效,可以考虑Entity Scope的Business Rule.