费用常见业务规则问题3原创
9人赞赏了该文章
202次浏览
编辑于2024年05月14日 20:30:12
问题现象:
业务规则不生效
可能原因:
1.赋值代码被model.begininit()和model.endinit()包围。被这两个方法包围的赋值不会触发值更新事件,因此无法触发业务规则。用这两个方法包围的原因是避免出现值更新死循环,比如有标准逻辑给a字段赋值会触发propertychange更新b字段,b字段赋值触发propertychange更新a字段,如果不使用这两方法包围就会出现值更新事件的死循环。
(例如费用明细增行,自动赋值分录费用承担公司、部门时会用这两个方法包围,所以增行时用这两字段做为业务规则条件是不会生效的,只有增行后切换值才会生效)
2.新增单据时,在afterCreatenewdata方法里赋值,平台在构建完数据包时统一执行了规则,此时字段还没有值,在afterCreatenewdata给字段赋值不会触发值更新,不会触发业务规则。
(例如对公报销单的费用承担部门、公司、支付公司等字段,都在新增单据时afterCreatenewdata中赋了默认值,此时已这些字段为条件设置必录或者业务规则都是没法生效的)
解决方案:
目前暂时只能建议二开代码处理,后续看是否要优化支持,要向平台反馈
推荐阅读