本文介绍了“周总”在金蝶云·星空中分享的多种实用技巧,包括正则表达式的应用、Python表达式的常用技巧、IN操作符的高阶应用等,以及工作流设计和数据库优化的技巧。同时,提供了进入“创见者MVP工作室”与MVP交流学习的福利活动。内容详实,适合金蝶云·星空用户提升技能和效率。
对于这样的开篇,小伙伴们是不是感觉非常熟悉?没错~这些帖子的作者就是创见者MVP、爆款创作达人,人称“周总”、自称“社区刘德华”的二开牛人,相信不少小伙伴已在社区看过他写的帖子。
今天,小编就来给大家盘一盘,“周总”那些年爆肝输出的精华内容,涨技能、提效率,绝对不容错过!
【福利活动】:
干货内容看不够?应用起来有疑惑?想跟大佬进一步沟通?
点击进入“创见者MVP工作室”,与MVP线上唠嗑,一起涨知识、学技能。
PS:热心用户还有机会获得金币奖励哦! 点击前往>>
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
补充说明:那么,赋值表达式的正确写法和关键注意事项有哪些呢,结合金蝶云·星空系统的应用与大家分享一下。
敲回车换行后,再写下另一段赋值表达式;可同时为N个字段按行依次进行赋值,那么,所需换行符的个数为N-1,或者说,所需要进行换行的次数为N-1。
每个被赋值字段标识的左边(行首),空格一定要人为清除掉!一定要检查完全清除干净了!不然会报错!(重要的事情说三遍)。
在存在多行赋值表达式的情况下,每行表达式的末尾右边的空格,最好也清除干净,不然也可能有报错风险。
1、技巧1-当前审批者可在单据上指定下一节点流程处理人
详情内容:请点击>>
【需求背景】:
在流程设计中,经常遇到这样的需求:
1、流程节点需要支持人为指定下一节点的流程参与人。
2、流程节点参与人,需要从业务单据的字段中获取,还需要把这些参与人记录在单据上。
3、人为指定流程参与人,还需要支持圈(限)定可选择的范围。
【实现思路】:
这3类需求,均能通过工作流设计器(或审批流设计器)及BOSIDE配置实现。实现思路是“在单据上添加必选员工字段,流程节点通过此字段获取处理人”。
2、技巧2-启动“申请反审核工作流”完成后自动执行反审操作
详情内容:请点击>>
【需求背景】:
近段时间遇到了这样一个需求:
单据需要经过流程审批通过之后,才允许执行反审核、禁用、作废等操作。例如这位用户的提问:请问系统有没有可以在作废这个按钮上启动审批流,审批通过后才可以作废的功能。
【实现思路】:
金蝶云·星空在流程设计方面,有审批流与工作流两种实现方式,巧用工作流可以完成各类复杂需求的实现。
接下来以【星空付款单反审核必须走“反审核工作流”,流程顺利通过后自动反审核付款单】为例,讲解实现此类需求的设计实现步骤。
3、技巧3-复杂组织结构下设计出简洁清晰、通用性强的工作流
详情请点击:请点击>>
【需求背景】:
企业在实践中,经常会遇到这样的问题和需求:
不同流程提交人在相同流程中,所需经过的节点数量、审批人数,都不尽相同,由于流程提交人所处的部门层级、岗位不同,所需经历的审批节点数量也会动态变化。这种情况,结合目前金蝶云·星空工作流功能,如何设计出清晰简洁、通用性强的工作流?
【实现思路】:
一、流程参数设定:
1、设置【工作流设计器】[流程设置]中的"自动执行控制"参数(结合实际情况按需勾选);
2、再勾选[审批动作设置]中"高级选项"页签中的参数“未解析出处理人时,自动跳过”。
二、流程设计:
在完成了上述两项参数设定后,接下来就是配套设计合理的流程了;
假设有三级部门,流程可这样设计:开始节点-->直接上级审批(发起人直接上级)-->二级审批(上一步处理人直接上级)-->一级审批(上一步处理人直接上级)-->财务主管审批(财务主管岗位)……
1、立竿见影的数据库优化四步曲,及定时自动优化方案
详情内容:请点击>>
【需求背景】:
金蝶云·星空(数据库239GB大小)系统,在执行成本计算时,在某一步卡住了1.5小时。经过长时间的摸排分析,最终形成了一套可行的数据库性能优化方法,并付诸实践,故障立刻被搞定,效果立竿见影,性能提升明显。
【实现思路】:
--第1步.重建索引,整理碎片
--第2步.更新统计信息,以利于SQL Server后台优化执行计划
--第3步.压缩索引以提升I/O性能(注意,这里并不是收缩数据库,而是压缩索引)
--第4步.压缩数据表以提升I/O性能(注意,这里并不是收缩数据库,而是压缩物理表)
补充说明:/*可一次全部执行,不必分4次。4段语句均为执行全库扫描与优化,故耗时会很久。执行期间将会拖慢金蝶系统性能,强烈要求必须放在系统空闲时执行。SQL源代码请见文尾附件
推荐阅读