大分录跨页模式,海量数据高效处理

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

大分录跨页模式,海量数据高效处理

熟悉苍穹的朋友都知道,分录管理依赖前端,仅能处理当前页的过滤、排序、合计。


而随着业务的发展,分录数据越来越多,出现十万级、百万级的分录,这就不得不需要开启分页来平衡性能。然而,在数据跨页的情况下,大分录操作效率与体验问题越来越突出。


为支撑海量分录数据的全量处理需求,苍穹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


划重点

【大分录跨页模式】支持在分页的情况下全量数据的过滤、排序、合计等功能,解决了内存数据无法进行过滤操作的行业难题,突破性技术方案助力大分录操作体验升级。


#往期推荐#

# 批量录入,让弹性域数据录入更轻松

表达式函数自定义,让函数扩展更简单

可视化自动检测调度任务,帮你高效定位异常问题

调度中心全新整体看板:高效治理、快速诊断




更多精彩内容,“码”上了解!↓


大分录跨页模式,海量数据高效处理

熟悉苍穹的朋友都知道,分录管理依赖前端,仅能处理当前页的过滤、排序、合计。而随着业务的发展,分录数据越来越多,出现十万级、百万级的...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息