熟悉苍穹的朋友都知道,分录管理依赖前端,仅能处理当前页的过滤、排序、合计。
而随着业务的发展,分录数据越来越多,出现十万级、百万级的分录,这就不得不需要开启分页来平衡性能。然而,在数据跨页的情况下,大分录操作效率与体验问题越来越突出。
为支撑海量分录数据的全量处理需求,苍穹V6.0推出【大分录跨页模式】,使过滤、排序、合计功能不受分页限制,助力企业应对大分录业务挑战!
适用版本
该功能适用版本为金蝶云·苍穹V6.0.1以上
特性展示
1. 开启【分录跨页模式】的两种方式
(1) 针对单据及基础资料中的分录,可通过单据参数快速开启功能。
操作路径:公共设置->单据参数->选择单据->打开【单据体跨页模式】参数。
【单据体跨页模式】参数
(2) 针对动态表单中的分录,可通过插件参数开启功能。
插件方法:在createNewData(动态表单)、loadData(单据/基础资料)方法设置上下文参数开启,如下所示:
this.getModel().putContextVariable("MODEL_BOSENTRYSERVERFILTERSORT",true);
2. 实现效果
在上述单据参数中,我们以【采购预测计划】为例,一起看看开启单据参数前后效果的对比。
在【采购预测计划】的【计划明细】分录中,我们可以看到有2万的数据,100条/页,共分了200页。
此时,我们在表头过滤一个物料编码。
可以看到过滤后仍有200页,每页数据过滤结果单独呈现,无法汇总显示。
通过以上过滤的小场景可以看出,大分录无法跨页处理数据,操作效率非常低下,是用户分录体验的阻塞点。
下面我们打开【单据体跨页模式】参数,看看使用后的效果。
仍然是针对【采购预测计划】的【计划明细】分录进行过滤,该分录具有2万的数据,100条/页,共分了200页。
我们在表头过滤一个物料编码后,可以看到系统将搜索结果全部显示出来,不再出现多余分页。
使用【大分录跨页模式】,不仅可以进行全量过滤,更可以进行全量数据的排序、合计,以及批量填充过滤后的数据,大大提升大分录操作体验。
3. 扩展性支撑
依托于【大分录跨页模式】可全量处理分录数据的特性,可支撑更多的业务个性化场景,目前已抽象出一些插件事件供业务个性化场景使用。
扩展支撑一:给单据体设置初始过滤条件(前端过滤,用户可清除)
加载表单时,默认给单据体添加过滤条件,并且用户可以手动清除掉,主要目的是为了过滤一些不重要的信息,聚焦关键信息,提升用户体验。
给前端设置初始过滤条件,过滤条件会回显到前端。
可在插件afterBindData(单据/基础资料)、afterCreateNewData(动态表单)调用kd.bos.form.control.EntryGrid#getGridDataByFilter方法设置初始过滤条件,过滤规则参数设置参考过滤单据体的请求参数。
下图是使用kde脚本编辑器的示例:
扩展支撑二:插件设置单据体初始默认条件(后台过滤,用户不可清除)
支持了【单据体跨页模式】设置初始默认条件的功能,可通过插件设置初始过滤条件,达到单据体数据过滤的效果,典型场景为按照权限规则过滤单据体数据,使不同的用户查看不同的数据范围。
设置初始默认过滤条件,过滤条件不回显到前端(按需使用)
可在插件afterBindData(单据/基础资料)、afterCreateNewData(动态表单)调用kd.bos.form.control.EntryGrid#buildDefaultFilterRows方法设置初始默认过滤条件,下图是使用kde脚本编辑器的示例。
亮点价值
打破分录前后端数据孤岛:可同时做到海量数据支撑以及全量分录数据管理。
可复用性强:基于大分录跨页模式的实现方案,可复用实现分录行按权限显示、默认过滤分录数据等业务场景。
客户价值高:提升用户分录操作效率,为用户创造流畅的体验;同时也解决项目上的痛点问题,提升产品交付能力
海量分录操作效率提升:在使用【大分录跨页模式】之前,单次最多处理当前页的5000条数据;使用之后可处理跨分页的所有数据,不受分页限制。
性能与体验兼顾:在良好性能的前提下,提升分录操作体验。
常见问题
问:动态表单使用插件开启【分录跨页模式】,如何验证是否开启成功?
答:可通过以下两种方式验证
(1) 进入表单/单据/基础资料详情,在单据体表头进行过滤,有下图的getGridDataByFilter请求表示开启成功
[
{
"key":"entryentity", //分录标识
"methodName":"getGridDataByFilter", //调用方法
"args":[
[
{
"FieldName":["textfield"], //过滤字段
"Value":["3"], //过滤值
"Compare":["59"] //过滤比较符
}
]
]
}
]
(2) 当前分录可跨页过滤数据,即可表明跨页模式生效
问:分录具有超大数据时,如何提升页面加载速度?
答:单据分录有大量数据时(如超10w),建议开启分批处理模式,提升页面加载速度。
• 分批处理模式开启后,每次内存只加载5000条数据,当前操作只对这一批次进行处理,当翻到下一批次(5001~10000)时会提醒先保存前一批的数据,否则前一批的改动会丢失。
• 开启前要评估插件中有没有使用全量数据的逻辑,如果有需要改造,因为开启后每次内存只加载5000条数据。开启方法:在插件的loadData里添加如下上下文变量。
this.getModel().putContextVariable("MODEL_INIT_LOADSPLITPAGE",true);
问:使用【大分录跨页模式】有什么注意事项?
答:(1)单据体进行排序、过滤后,不允许进行【上移】、【下移】操作
(2)注意二开插件中对行改变的兼容
相关链接
分录跨页处理模式的详细内容可查看下方链接(持续更新)
https://vip.kingdee.com/article/494614332525652736?productLineId=29&isKnowledge=2#7
划重点
【大分录跨页模式】支持在分页的情况下全量数据的过滤、排序、合计等功能,解决了内存数据无法进行过滤操作的行业难题,突破性技术方案助力大分录操作体验升级。