欢迎光临
个人知识库,ERP、IT知识分享和应用

善用表达式、巧做流程设计、数据库优化四部曲….这些相见恨晚应用技巧,你值得拥有!

编辑于2022年4月21日 11:32:10

image.png

对于这样的开篇,小伙伴们是不是感觉非常熟悉?没错~这些帖子的作者就是创见者MVP、爆款创作达人,人称“周总”、自称“社区刘德华”的二开牛人,相信不少小伙伴已在社区看过他写的帖子。

 

今天,小编就来给大家盘一盘,“周总”那些年爆肝输出的精华内容,涨技能、提效率,绝对不容错过!

 

【福利活动】:

干货内容看不够?应用起来有疑惑?想跟大佬进一步沟通?

点击进入“创见者MVP工作室”,与MVP线上唠嗑,一起涨知识、学技能。

PS:热心用户还有机会获得金币奖励哦!

 

 

 

未命名_自定义px_2022-04-14+18_01_28.png

 

1、正则表达式的应用技巧:对用户输入的值进行复杂判断与实时校验

详细内容:请点击>>  

在金蝶云·星空中,“保存、提交、审核、空格”之类的操作,是可配置校验规则的,校验规则服务中有一项“正则表达式严重”,可以对用户输入的值进行复杂判断与实时校验。

下面以“生产订单-修改”为例,演示以下6项需求案例的实现:

案例1:不允许输入标点符号和中文(例如序列号字段、批号字段)。

案例2:仅允许输入数字。

案例3:仅允许输入英文和数字。

案例4:仅允许输入英文、数字和中文。

案例5:仅允许输入合法邮箱地址。

案例6:仅允许输入合法手机号。

 

补充说明:肯定有小伙伴好奇,什么是正则表达式?

这里可以先对它进行一个简单定义:用一串简短的表达式,遵循特定的语法,就能向计算机清晰传达,你想要什么值、不想要什么值。比如:不允许输入标点符号和中文(例如序列号字段、批号字段);仅允许输入数字;仅允许输入英文和数字……

 

 

2、Python表达式的常用技巧:遍历单据体获取数据,进行统计/加工/判断

详细内容:请点击>>  

 

金蝶云·星空许多地方可以通过设置Python表达式来实现功能需求,无需写插件、无需重启系统,即刻生效,真的很香很好用。

下面以“销售订单-新增”为例,演示下列6项需求案例的实现:

案例1:获取单据体文本字段多行集合,以指定分隔符拼成单行文本,赋值给单据头文本字段。

案例2:获取单据体文本字段多行集合,去除其中重复值后,以指定分隔符拼成单行文本,赋值给单据头文本字段。

案例3、4、5:对单据体字段多行集合进行判断,是否存在满足指定条件的行值?是否全部行值均满足指定条件?是否行值完全一致?

案例6:获取单据体【基础资料/辅助资料字段】多行集合,取出【基础资料/辅助资料字段】绑定实体属性(例如物料名称)的值集,以指定分隔符拼成单行文本,赋值给单据头文本字段。

补充说明:支持设置Python表达式的地方有:实体服务规则、值更新事件服务、操作校验规则、各类前置条件、工作流设计器、流程配置中心启动条件、单据转换、反写规则等。

 

 

3、IN操作符的高阶应用技巧:判断物料名称是否包含多个关键词

详情内容:请点击>>  

 

想要判断物料名称是否包含多个关键词

FMaterialId.FName <> null and  any(name in FMaterialId.FName for name in [‘电脑’,’笔记本’,’计算机’,’服务器’,’台式机’,’主机’,’工控机’])

注释:物料名称不为空,并且物料名称包含 [‘电脑’,’笔记本’,’计算机’,’服务器’,’台式机’,’主机’,’工控机’],则执行XXXX。

补充说明:

1.      上述表达式中的for…name…in循环遍历用法是精髓,属于“Python生成器推导式”。name为循环计数器,用于遍历并依次承载IN[]中的关键词,去逐次与FMaterialId.FName(物料名称)比较字符串包含关系。

2.      name也可以自行随意另取名称,但首尾两处一定要名称一致(两处蓝色字体部分要名称一致)。

3.      any(x)判断括号内的对象成员是否全部为 False,则返回 False,如果其中有1个为 True,则返回 True。若any(x)返回True,说明[]中的多个关键词与物料名称依次比较包含关系,至少有1个关键词被包含于当前行的物料名称中。在本例中,代表了该行物料名称被判定为属于IT电脑设备,需要执行“电脑详细配置型号字段必录”的操作校验(表单服务)规则:“合法性检查,字段必录”。

 

 

4、赋值表达式的正确应用及注意事项、关键知识点

详情内容:请点击>> 

在实体服务规则或值更新事件服务中,选择服务类型为【计算定义公式的值并填写到指定列】,一次性对多个字段依次赋值,常常会出现报错的风险。比如:

正确的写法(两行赋值表达式的左右两边均无多余空格,两行赋值表达式自然换行):

字段A=值A

字段B=值B

错误的写法(第1行赋值字段A的左边行首,有多余空格未清除):

字段A=值A

字段B=值B

有报错风险的写法(两行赋值表达式的行尾右边,有多余空格未清除):

字段A=值A

字段B=值B

 

补充说明:那么,赋值表达式的正确写法和关键注意事项有哪些呢,结合金蝶云·星空系统的应用与大家分享一下。

  1. 敲回车换行后,再写下另一段赋值表达式;可同时为N个字段按行依次进行赋值,那么,所需换行符的个数为N-1,或者说,所需要进行换行的次数为N-1。

  2. 每个被赋值字段标识的左边(行首),空格一定要人为清除掉!一定要检查完全清除干净了!不然会报错!(重要的事情说三遍)。

  3. 在存在多行赋值表达式的情况下,每行表达式的末尾右边的空格,最好也清除干净,不然也可能有报错风险。 

 

 

未命名_自定义px_2022-04-14+18_13_07.png

 

1、技巧1-当前审批者可在单据上指定下一节点流程处理人

详情内容:请点击>> 

【需求背景】: 

在流程设计中,经常遇到这样的需求:

1、流程节点需要支持人为指定下一节点的流程参与人。

2、流程节点参与人,需要从业务单据的字段中获取,还需要把这些参与人记录在单据上。

3、人为指定流程参与人,还需要支持圈(限)定可选择的范围。

【实现思路】:

这3类需求,均能通过工作流设计器(或审批流设计器)及BOSIDE配置实现。实现思路是“在单据上添加必选员工字段,流程节点通过此字段获取处理人”。

 

 

2、技巧2-启动“申请反审核工作流”完成后自动执行反审操作

详情内容:请点击>> 

【需求背景】:

近段时间遇到了这样一个需求:

单据需要经过流程审批通过之后,才允许执行反审核、禁用、作废等操作。例如这位用户的提问:请问系统有没有可以在作废这个按钮上启动审批流,审批通过后才可以作废的功能。

【实现思路】:

金蝶云·星空在流程设计方面,有审批流与工作流两种实现方式,巧用工作流可以完成各类复杂需求的实现。

接下来以【星空付款单反审核必须走“反审核工作流”,流程顺利通过后自动反审核付款单】为例,讲解实现此类需求的设计实现步骤。

 

3、技巧3-复杂组织结构下设计出简洁清晰、通用性强的工作流

 详情请点击:请点击>> 

【需求背景】:

企业在实践中,经常会遇到这样的问题和需求:

不同流程提交人在相同流程中,所需经过的节点数量、审批人数,都不尽相同,由于流程提交人所处的部门层级、岗位不同,所需经历的审批节点数量也会动态变化。这种情况,结合目前金蝶云·星空工作流功能,如何设计出清晰简洁、通用性强的工作流?

【实现思路】:

一、流程参数设定:

1、设置【工作流设计器】[流程设置]中的”自动执行控制”参数(结合实际情况按需勾选);

2、再勾选[审批动作设置]中”高级选项”页签中的参数“未解析出处理人时,自动跳过”。

二、流程设计:

在完成了上述两项参数设定后,接下来就是配套设计合理的流程了;

假设有三级部门,流程可这样设计:开始节点–>直接上级审批(发起人直接上级)–>二级审批(上一步处理人直接上级)–>一级审批(上一步处理人直接上级)–>财务主管审批(财务主管岗位)……

 

 

未命名_自定义px_2022-04-14+18_13_30.png

1、立竿见影的数据库优化四步曲,及定时自动优化方案

详情内容:请点击>> 

 

【需求背景】:

金蝶云·星空(数据库239GB大小)系统,在执行成本计算时,在某一步卡住了1.5小时。经过长时间的摸排分析,最终形成了一套可行的数据库性能优化方法,并付诸实践,故障立刻被搞定,效果立竿见影,性能提升明显。

 

【实现思路】:

–第1步.重建索引,整理碎片

–第2步.更新统计信息,以利于SQL Server后台优化执行计划

–第3步.压缩索引以提升I/O性能(注意,这里并不是收缩数据库,而是压缩索引)

–第4步.压缩数据表以提升I/O性能(注意,这里并不是收缩数据库,而是压缩物理表)

 

补充说明:/*可一次全部执行,不必分4次。4段语句均为执行全库扫描与优化,故耗时会很久。执行期间将会拖慢金蝶系统性能,强烈要求必须放在系统空闲时执行。SQL源代码请见文尾附件

未经允许不得转载:Blog.XiaoMing.Xyz » 善用表达式、巧做流程设计、数据库优化四部曲….这些相见恨晚应用技巧,你值得拥有!

登录

找回密码

注册