前提条件不生效该怎么办
值更新事件、实体服务规则不生效?工作流流转条件没作用?保存校验规则设置不成功?前提条件老是报错?遇到这些问题到底该怎么办???
很大可能是你的前提条件写的有问题啦!!!下面通过一系列讲解,并且附上最真诚的例子,帮助你写下百发百中的前提条件!!!
一、前提条件概述
1、前提条件是什么?
前提条件的判断一般根据给出的字段变量名通过一定的计算判断后返回True或False的值,系统依据True或者False来执行一系列后续的服务。例如,根据前提条件为物料编码不为空的判断来执行值更新事件,根据单据体的金额字段是否大于1万小于100万来判断工作流是否需要财务经理审核单据,这样都是前提条件所能够满足的业务场景。
2、前提条件的适用位置
注意,以下所有列举出来的位置,都是适用后面的前提条件逻辑规范,所以只需要了解相关的逻辑思路,就可以写一个条件放到所有可以适用的位置啦!!
(1)值更新事件的前提条件
(2)实体服务规则的规则条件
(3)操作的校验规则的表单服务规则和服务端服务的服务的前置条件
(4)校验规则中关于单据合法性校验的校验表达式
(5)工作流中的高级条件
(6)采购管理系统参数中按条件实现控制
(7)其余标记为写前置条件或者前提条件的地方(例如基础资料的高级过滤等)
各个位置的详细位置截图及解析见: https://wenku.my7c.com/article/146068
3、前提条件的常规排查
很多时候,许多客户或者开发同事在写值更新事件或者实体服务规则的时候,老是会问:为什么我的服务不生效?其实很多时候服务写对了,但是原因实际上是前提条件没有按照规范写导致服务一直不生效。建议若服务不生效的时候可按照如下步骤去排查:
(1)按照文章中查找对应元素类型字段前提条件的逻辑规范
(2)前提条件中需要判断的字段是否都勾选了即时触发值更新事件: https://wenku.my7c.com/questions/16208/answers/21418
(3)当设置的前提条件都不生效时(此方法适用第2小点提到的所有位置的不生效):
以上的步骤都已经检查不出问题,那么可通过专门在单据头增加一个文本字段,设置符合条件则执行计算定义公式的值并填写到指定列的服务:文本='1';设置不符合条件则执行计算定义公式的值并填写到指定列的服务:文本='',并在该条实体服务规则填写自己的前提条件。
若前提条件没有问题,那么正常是可以符合条件则令文本=1,若不符合条件则清空文本。通过这样的方式来判断服务不生效的问题原因:是由前提条件设置错误,还是服务设置错误。
二、基本元素类型
以下包含所有常用的基本的元素类型字段的前提条件设置规范,请准确自行判断在BOS中所加的字段的元素类型是什么,并依据元素类型去查找相关的设置规范,查看字段元素类型请参考:https://wenku.my7c.com/article/146069
1、文本
(1)如何判断文本为空:文本=null Or 文本='' Or 文本=' '
https://wenku.my7c.com/questions/16155/answers/21370
(2)如何判断文本不为空:文本<>null And len(文本.strip()) >0
https://wenku.my7c.com/article/146057
(3)判断文本字段里面是否包含某个字符:find('XXX')>=0,XXX代表所需要判断的具体文本。
https://wenku.my7c.com/questions/16150/answers/21367
(4)判断文本字段是否左包含、右包含某个字符:文本[0:2] = 'AA'
https://wenku.my7c.com/questions/16165/answers/21379
(5)如何判断文本的值:文本='XXX',XXX代表所需要判断的具体文本。
https://wenku.my7c.com/article/146058
2、单据状态:单据状态='XXX',XXX代表所需要判断的状态值。
https://wenku.my7c.com/questions/16231/answers/21438
3、单据类型:单据类型<>null And 单据类型.编码= 'XXX'
https://wenku.my7c.com/questions/16248
4、组织:组织<>null And 组织.编码='XXX'
https://wenku.my7c.com/questions/16187/answers/21399
5、基础资料、基础资料属性、多类别基础资料:基础资料<>null And 基础资料.属性 = 'XXX'
https://wenku.my7c.com/article/146065
6、多类别基础资料列表:多类别基础资料列表='XXX',XXX代表所需要判断的具体基础资料英文标识。
https://wenku.my7c.com/article/146056
7、单选辅助资料列表:单选辅助资料<>null And 单选辅助资料.编码='XXX'
https://wenku.my7c.com/article/146054
8、分组:分组<>null And 分组.Number = 'XXX'
https://wenku.my7c.com/questions/16251/answers/21457
9、用户、创建人:用户<>null And 用户.名称='XXX'
https://wenku.my7c.com/article/146063
11、日期
(1)大于某个固定日期:日期.ToString('yyyy-mm-dd')>='2019-06-01'
https://wenku.my7c.com/questions/16048/answers/21363
(2)两个元素类型为日期字段的比较:日期1>日期2
https://wenku.my7c.com/questions/16232/answers/21439
12、复选框:复选框=1
https://wenku.my7c.com/article/146062
13、下拉列表:下拉列表='XXX',XXX代表所查询的枚举项值。
https://wenku.my7c.com/questions/16238/answers/21444
14、数量、单价、金额、折扣率、打印次数:数量1>数量2
https://wenku.my7c.com/article/146064
三、特殊场景
1、判断分录行是否关联生成
https://wenku.my7c.com/questions/16246/answers/21452
2、判断两个单位间的换算类型
https://wenku.my7c.com/questions/16245/answers/21451
四、后记
以上内容若有疑问欢迎指正,以便及时做相关的调整、改正与更新。
补充一个小知识点:费用报销单审核自动下推发票,又想做判断条件的,需要取消掉费用管理的参数
否则自定义的自动下推条件还是不生效
如何判断文本不为空:文本<>null And len(文本.strip()) >0 或者 文本<>null And 文本<>'' And 文本<>' '两者都可以
判断多选下拉列表字段是否选择某一个枚举项:多选下拉列表字段的标识.find('枚举项值')!=-1
判断复选框字段勾选:FPayBox或者 FPayBox =1或者 FPayBox =true或者 FPayBox=True
判断复选框字段不勾选:FPayBox =0或者 FPayBox =false或者 FPayBox=False
判断单据有源单:ISDRAW()或者ISDRAW()=true或者ISDRAW()=True或者ISDRAW()=1
判断单据无源单:ISDRAW()=false或者ISDRAW()=False或者ISDRAW()=0
注意不可缺少()
不错
【emoji】
补充一个单选按钮/单选按钮组字段作为前置条件的使用,参考:https://vip.kingdee.com/article/24129
单选按钮可以看作是下拉列表的另外一种平铺显示方式,使用单选按钮组的字段标识做前提条件【emoji】
多谢分享
前提条件不生效该怎么办
本文2024-09-16 18:43:30发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23990.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf