【余额模型】实践案例 | 余额模型二开扩展通用实践案例

小编推荐
余额模型在供应链库存及核算等业务中使用越来越广泛,但因为客户实际应用场景千差万别,对于余额模型的扩展需求大量存在于实际业务中,那如何进行规范的扩展,有效规避开发中各种异常情况?
该案例以采用余额模型开发的即时库存余额表为例,深入介绍了余额模型扩展的具体步骤及相应规范和注意事项,相信有了此案例宝典,余额模型的二开扩展将更加丝滑顺畅。
撰稿人:金蝶-古乃亮
【温馨提示:因企业业务场景存在不同程度的差异,此案例仅供参考,请根据现场实际业务情况探讨最优解决方案,并在上线前进行充分验证。】
一、业务背景
业务现状
目前供应链库存及核算,所有余额表都是采用余额模型来实现的,但是标品发布的余额表的管理维度是固定的,到了实际客户场景中,因为行业不同,管理方式不同,余额表要管理的维度差异非常大,这就需要余额模型来支撑这个扩展。
说明:余额模型是一个抽象的模型框架,即时库存余额表则是采用余额模型开发出来的一个具体的余额表,其关系类似单据模型与采购入库单的关系,通过模型来开发才能让具体的余额表具备模型自带的各种能力,如:扩展能力。
客户诉求
基于以上业务现状,大约80%以上客户需要对标品预置的维度进行调整,标准产品余额表需要增加额外的管理维度。
需求场景描述
采用余额模型开发的余额表,能够很好支撑并实现这种扩展需求,因此,现选择以即时库存余额表为例进行具体需求场景的介绍。
某集团为快销品行业,其库存需要管理到门店、供应商等维度,此集团因其产品特点,其物料需要按箱号管理等各种差异化的需求,虽然标品余额表中已有20多个管理维度(组织、物料、保管者、仓库、仓位、生产日期……),但也无法直接满足客户的这种特殊场景需求,则需要二开增加库存管理维度来适配客户实际场景。因此就需要采用余额模型开发余额表,来实现类似此客户差异化的扩展需求,如下面所示:
标品 | A客户要增加 | B客户要增加 | 标品 | ||||||
组织 | 物料 | 仓库 | …… | 门店 | 供应商 | …… | 箱号 | …… | 数量 |
O-1 | M-1 | W-1 | A店 | A商 | X001 | 100 | |||
二、解决方案
下面以即时库存余额表增加箱号为例进行介绍:
整体思路
即时库存余额表只是一个用于记录实时库存数量的账表,其数据全部来源于出入库单据本身,在单据操作时发起余额的更新,按什么规则进行更新余额则要在余额更新规则中进行配置,因此需要扩展的内容主要包括即时库存余额表、库存出入库单据、余额更新规则。
详细步骤
1、 扩展余额表
1)打开【开发平台】-【供应链云】-【库存管理】扩展的应用,在余额模型页签下,找到【即时库存余额表】元数据,点击扩展,生成扩展元数据,如下图操作。

图1 即时库存余额表原厂元数据

图2 即时库存余额表扩展页面

图3 即时库存余额表扩展后元数据
2)进入元数据设计界面后,在普通维度面板中,添加箱号字段,这里以文本字段为例,添加字段后,并设置字段必要的属性即可,最后点击保存即可。
注意:在扩展字段过程中,字段类型要按实际需求确定,一般文本、基础资料居多。

图4 元数据界面设计步骤

图5 元数据界面设计步骤

图6 元数据界面设计保存
2、 扩展单据
通过余额更新规则,找到所有要更新即时库存余额表的单据,在对应的单据(如:采购入库单、销售出库单等)上采用相同的扩展方式,添加箱号字段即可。这里不做重复演示,一般项目中,由于单据本身的需求,往往已经扩展好了相关字段。
注意:单据上扩展的字段要和余额表上扩展的字段,字段类型,物理表字段类型,长度要保持一致,否则可以出现更新余额时类型不匹配。
3、扩展余额更新规则
1)在应用下打开【余额模型】-【更新规则】列表界面,筛选余额表=即时库存余额表的余额更新规则,逐条扩展,修改扩展的余额更新规则。下面以领料出库单为例演示:

图 7 余额更新规则列表

图 8 余额更新规则列表

图 9 余额更新规则配置界面
2)最后点击保存即可,其他余额更新规则,操作方式一样。
注意:扩展要启用,原厂的规则是不能禁用的。在运行时启用的扩展会与原厂规则合并。
4、 设计物理表,增加KSQL二开字段脚本
余额表新增了二开字段,示例中物理表字段为:fk_kdtest_boxno,找到即时库存余额表的物理表:t_im_inv_realbalance,新增字段的KSQL语句如下:

IF NOT EXISTS (SELECT 1 FROM KSQL_USERCOLUMNS WHERE KSQL_COL_TABNAME = 'T_IM_INV_REALBALANCE' AND KSQL_COL_NAME ='FK_KDTEST_BOXNO') ALTER TABLE T_IM_INV_REALBALANCE ADD (FK_KDTEST_BOXNO VARCHAR(80) DEFAULT ' ' NOT NULL ); |
在实际二开中,数据库类型是确定的,也可以使用数据库方言语法,单据的字段脚本原理一样,不重复演示。
5、构建输出二开补丁包
方式1:开发界面导出二开扩展安装包的方式
1)先添加扩展的即时余额表元数据,有单据一同扩展时也要添加进来。

图 10 应用导出向导
2)添加2.4步骤中的SQL脚本

图 11 应用导出向导

图 12 补丁包内容

图 13 补丁包内容
各包路径作用参考下面说明

图14 包路径说明
3)导出扩展的余额规则,zip包中的余额更新规则元数据,加入到安装包的detamodel/*/metadata/路径下即可。

图 15 余额更新规则导出

图 16 补丁包内容
方式2:使用GIT+集成工具构建输出的情况
只需要将上述余额更新规则导出文件里面的元数据文件,迁入到二开GIT仓库中扩展应用的detamodel/*/metadata/下即可,随构建工具输出即可。
注意:采用哪种方式,要结合项目实际情况,及生态伙伴有关部门支持情况,研发内部则是方式2。建议也是用方式2,能有效的进行开发产物版本管
【余额模型】实践案例 | 余额模型二开扩展通用实践案例
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



