电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-2211

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

小编推荐

余额模型在供应链库存及核算等业务中使用越来越广泛,但因为客户实际应用场景千差万别,对于余额模型的扩展需求大量存在于实际业务中,那如何进行规范的扩展,有效规避开发中各种异常情况?


该案例以采用余额模型开发的即时库存余额表为例,深入介绍了余额模型扩展的具体步骤及相应规范和注意事项,相信有了此案例宝典,余额模型的二开扩展将更加丝滑顺畅。


撰稿人:金蝶-古乃亮

【温馨提示:因企业业务场景存在不同程度的差异,此案例仅供参考,请根据现场实际业务情况探讨最优解决方案,并在上线前进行充分验证。】


一、业务背景

业务现状

目前供应链库存及核算,所有余额表都是采用余额模型来实现的,但是标品发布的余额表的管理维度是固定的,到了实际客户场景中,因为行业不同,管理方式不同,余额表要管理的维度差异非常大,这就需要余额模型来支撑这个扩展。

说明:余额模型是一个抽象的模型框架,即时库存余额表则是采用余额模型开发出来的一个具体的余额表,其关系类似单据模型与采购入库单的关系,通过模型来开发才能让具体的余额表具备模型自带的各种能力,如:扩展能力。

客户诉求

基于以上业务现状,大约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,能有效的进行开发产物版本管

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

小编推荐余额模型在供应链库存及核算等业务中使用越来越广泛,但因为客户实际应用场景千差万别,对于余额模型的扩展需求大量存在于实际业务...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信