前提条件的适用位置原创
金蝶云社区-jiaxu_lin
jiaxu_lin
11人赞赏了该文章 2,508次浏览 未经作者许可,禁止转载编辑于2019年09月14日 22:44:59
summary-icon摘要由AI智能服务提供

金蝶云星空产品中,多处可设置条件判断,涵盖值更新事件、实体服务规则、表单服务规则、校验规则、工作流条件及系统参数等。不同场景下的条件判断逻辑各异,需区分执行条件与计算赋值的区别,注意操作加载字段的影响,并利用校验表达式的特性简化逻辑。

【概述】

在金蝶云星空产品里面,有许多可以填写条件进行判断,这些判断的逻辑都是大同小异的。以下的几个例子列出来的典型的比较多的位置,可能还存在遗漏的位置,欢迎在评论下补充~

【例子】

一、值更新事件的前提条件

详述:值更新事件的前提条件是典型的一个前提条件的位置,当条件中返回为真时则执行服务。在这其中有个小的点,就是其实只要符合为真的条件即会执行,无需考虑不符合条件时怎样操作。请注意,此处需重点区分下:

值更新事件的前提条件与值更新事件中的计算定义公式的值并填写到指定列服务是不一样的。

计算定义公式的值并填写到指定列的服务,是通过计算后用于给某个字段赋值,因此不适用我们整个例子中所讲的逻辑。

image.png

二、实体服务规则的规则条件

详述:位于实体服务规则中的规则条件相比较值更新事件能够达到的效果更新加丰富,设置规则条件时,若需要考虑到满足条件时执行服务,不满足时也要执行服务时,则务必要注意当符合和不符合前提条件时的情况是怎样的,否则可能会出现自己无法理解的效果。

image.png

三、操作的校验规则的表单服务规则和服务端服务的服务的前置条件

详述:与关联的保存、提交、审核等表单操作所关联的表单服务规则和服务端服务也都有可以写前提条件的位置。但是,要注意一个点,经常有人问:为什么我在审核操作挂了一个自动下推的服务,不加条件可以生效,加了条件则不能生效?这个是由于有些操作例如审核操作,为了保证审核单据性能,并不会在操作服务上门加载所有无关字段,此时审核时则无法依据相关的字段来实现判断的服务,这种情况下需要单独做二次开发在审核操作上加载需要判断的字段。因此,并不是所有的操作上门都可以写前置条件,请依据自行测试的效果来判断。

image.png

image.png

四、校验规则中关于单据合法性校验的校验表达式

详述:单据合法性校验的校验表达式,实际上也是前提条件判断的一种形式,只不过该种判断有一个特殊之处,在于多了一个校验表达式为真的复选框功能。在地方的神奇之处在于,能够根据用户选择的形式来写前提条件。以下举几个逻辑小例子来解释这种有趣之处:

(1)例如,我想要实现,当表头的三个复选框abc都勾选时则报错:

那么应该勾选校验表达式为真时提示,设置表达式为复选框a=1 And 复选框b=1 And 复选框c=1

这种情况下,因为我只需要判断三个复选框都勾选的时候就立即报错,所以一定要勾选校验表达式为真时提示。

(2)但是,假如我想要实现,当表头的三个复选框abc,只要三个复选框少勾选1个则保存报错

此时,若还是用勾选校验表达式为真的方式去写表达式,意味着你要举个所有符合条件的例子,那么就是:

a勾选,bc不勾选;

ab勾选,c不勾选;

ac勾选,b不勾选;

... ...

这样去列举情况的话实在是太繁琐啦,那么此时可以这样变通实现,我们只需要提取这个问题的相反事件即可。

只要三个复选框少勾选1个则保存报错=(三个复选框都勾选则保存报错)的相反事件

那么我们应该这样设置不勾选校验表达式为真时提示,设置表达式为复选框a=1 And 复选框b=1 And 复选框c=1。


以上就是校验表达式勾选与不勾选的效果,在某些特殊业务场景下,能够方便我们写更简单的表达式

image.png

五、工作流流转条件中的高级条件、参与人结点中的参与人的方案或者前置条件中的条件、流程配置中心中启动条件

详述:工作流凡是涉及到高级条件的位置都是属于根据条件来判断,满足条件则执行后续的服务例如流转到下一结点、解析参与人、启动工作流等

image.png

image.png

image.png

六、采购管理系统参数中按条件实现控制

详述:此处也是一处根据用户填写的条件后,当符合条件则执行后面的检查价格来源服务,逻辑思路与前提条件类似,写的时候需要自行到BOS中查找对应单据的字段英文标识

image.png

七、其余标记为写前置条件或者前提条件的地方(例如基础资料的高级过滤等)

image.png


图标赞 11
11人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!