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

受控基础资料预置出厂数据实现

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

受控基础资料预置出厂数据实现

## 1 业务场景 - 管控策略有两个模型维护组织和数据的关系;对于旧模型,平台会冗余维护使用范围表、使用登记表和排除表,新模型,平台会冗余维护一张组织位图表。这些表都是在受控基础资料元数据重建的时候动态生成,**禁止业务线或者二开直接通过SQL语句直接操作和访问**。 - 如果业务线或者二开需要在出厂的时候就预置好一些数据,但是因为不能直接访问冗余表,对于这种需要预置数据的场景,就需要提供统一的预置入口。 - 系统升级的时候,SQL的执行是优先于元数据重建的,所以SQL执行的时候,上面提到的冗余表是不存在的,所以统一入口中的逻辑不仅要支持把预置的组织和数据的关系写入到平台冗余表中,还需要处理冗余表的创建工作。 ## 2 解决方案 - 平台定义统一入口:`kd.bos.servicehelper.basedata.BaseDataServiceHelper#presetCtrlOrgUseRangData`,入口参数说明如下: 1. `dbKey` 数据库路由标识 2. `entity` 受控资料实体标识 3. `tableName` 基础资料主表名称 4. `dataOrgMap` 需要预置的数据和组织的信息, K:数据Id,V:创建组织Id 5. `isTreeType` 是否树形基础资料,树形:true, 非树形:false - 业务预置数据时,在预置脚本XML后边提供脚本升级服务,升级服务中调用平台的统一入口实现数据写入冗余表。 ## 3 业务预置数据关键操作 - 步骤一:编写好预置数据SQL脚本,如:`kd_6.0.0_bos_bd_supplier_insert.sql` ```sql DELETE FROM t_bd_supplier WHERE FID = 10003999736; INSERT INTO t_bd_supplier(FID,FENABLE,FCREATEORGID,FSTATUS,FCTRLSTRATEGY,FNAME,FNUMBER, ...) VALUES (10003999736,'1',100000,'C','6','LT-1110-3999736','LT-1110-3999736', ...); ``` - 步骤二:开发脚本升级服务,实现`IUpgradeService`并重写`afterExecuteSqlWithResult`方法,服务中调用平台的统一入口 ```java package kd.bos.bd.upgrade; import java.util.HashMap; import java.util.Map; import kd.bos.service.upgrade.IUpgradeService; import kd.bos.service.upgrade.UpgradeResult; import kd.bos.servicehelper.basedata.BaseDataServiceHelper; public class BusinessUpgradeServiceImpl implements IUpgradeService { @Override public UpgradeResult afterExecuteSqlWithResult(String ver, String iteration, String dbKey, String sqlFileName) { // 资料实体标识,由业务根据实际情况指定 String entity = "bd_supplier"; // 受控基础资料类型对应的主表名,由业务根据实际

受控基础资料预置出厂数据实现

## 1 业务场景- 管控策略有两个模型维护组织和数据的关系;对于旧模型,平台会冗余维护使用范围表、使用登记表和排除表,新模型,平台会...
点击下载文档文档为doc格式

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

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