本文介绍了“值更新”服务的概念,即在字段值改变时自动执行指定服务,适用于单一字段触发的场景。同时,阐述了实体服务规则的作用,通过定义规则处理复杂逻辑,提高执行效率。还列举了多种常用示例应用配置,并分享了前提条件不生效的解决方法及进阶开发技巧,包括自定义表达式函数、执行SQL等。最后,提供了基础资料与辅助资料字段取值的常见写法及案例链接。
概述
值更新:顾名思义当前字段的字段发生改变后,自动执行指定服务。“值更新”就是该类服务的执行时机触发点。
一般需要当前字段上勾选属性“即时触发值更新”,在焦点离开当前字段时就触发相关值更新服务。
适用于“单一字段触发的”、“值更新时机触发”的场景,例如,选择物料字段后,分别携带物料的基本单位、计量单位等属性到指定字段。这种场景就时候用值更新配置实现。
入口:单据字段属性上“值更新服务”
实体服务规则:表单的执行错综复杂,一个字段的改变引起一堆字段变化,将所有的逻辑变成一个个规则,复杂的事情都交给平台去处理:自动合并规则批量执行提高效率、智能执行减少重复执行,并且提供对动态语言的解析(IronPython)
例如,为了完成“当物料没有填写时,锁定数量”的简单需求,需要考虑物料值更新事件、新增行事件、单据加载事件等多种时机点的处理。采用实体服务规则,定义一个规则就可以解决,在调用服务时,指定该服务加载、新增行、值更新时机点要触发执行即可。
入口:单据头、子单据头、单据体、子单据体等实体上都有属性“实体服务规则”,根据你需要处理的目标字段所在实体,在对应实体上配置实体服务规则。
常用示例
应用配置 | ||
1、判断条件中,如何比较字段值 | 2、日期字段计算 | 3、多选基础资料如何判断是否为空 |
4、判断分录行是否新增的 | 5、级联值更新 | 6、表达式中的汇总计算 |
7、操作服务的前置条件 | 8、表达式的系统变量 | 9、统计单据体已录数据的总行数 |
10、数值字段取绝对值 | 11、有条件的进行合计 | 12、实体服务规则中的辅助资料 |
13、求平方求立方 | 14、小数取整 向下取整、四舍五入、向上取整 | 15、表达式使用in操作 |
16、基础资料的过滤场景 | 17、基础资料.联动查询(GetValue) | 18、获取分录行的最大日期 |
19、获取单据体首行的某个字段的值 | 20、保存前校验单据体的某列数据是否全部相等 | 21、单据体满足条件的基础资料字段合并到单据头文本字段 |
22、实现有效期至=生产日期+保质期-1天的效果 | 23、当单据体存在满足某种条件的分录时隐藏某个字段 | 24、获取基础资料的分组数据 |
25、表达式不支持中文字符? | 26、操作提示信息 | 27、获取[基础资料].[辅助资料]的值 |
28、获取日期的年月日 | ||
精彩分享 | ||
前提条件不生效该怎么办(jiaxu_lin分享) | 遍历单据体获取数据(周少斌分享) | |
进阶开发 | ||
1、自定义表达式函数 | 2、执行SQL并返回值 | 3、python插件之单据插件实现加载值更新事件 |
4、中文环境获取英文词条 | 5、表达式测试说明 |
典型场景:
1、基础资料与辅助资料字段取编码、名称经常写错,而且看示例有多种写法。
关于辅助资料、基础资料取其属性字段有多种写法,这里提供最常见的写法(便于初学者记忆),并将基础资料与辅助字段进行对比说明。
如有涉及基础资料.基础资料或者基础资料.辅助资料等第二层属性的获取,需要了解一个基本因素。
一级节点【基础资料】的数据包,为该基础资料的所有引用属性的精简数据包。
二级节点【辅助资料】的数据包,是格式固定的精简数据包,仅包含内码、编码和名称三个固定属性。
【二开案例.表达式.前置条件.获取[基础资料].[辅助资料]的值】https://vip.kingdee.com/article/190161562286809856
推荐阅读