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

实践案例 | 多异构系统间高效系统集成方案

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

实践案例 | 多异构系统间高效系统集成方案

小编推荐


在项目交付的过程中,由于客户使用的系统各有不同,各系统的数据集成就成为项目上线的关键之一。


而在系统集成的过程中,部分老系统没有统一的基础数据接口,甚至部分基础数据无现成的接口,无法快速进行数据集成。


针对上述难点,金蝶云·苍穹—集成服务云可以提供高效的异构系统集成方案,降低后续问题排查运维的成本。


案例撰稿人:周国强。




业务背景


目前,A集团基于金蝶云·星瀚构建业务系统, 其中大量基础数据需要从老系统的基础数据集成,包括人员、组织、供应商、科目、核算维度、行名行号、结算方式和物料等20多种。但是,老系统没有统一的基础数据接口,甚至部分基础数据无现成的接口,无法快速进行数据集成。


上传图片

业务背景示例


面对如此庞大的基础资料,并且没有现成接口的背景下,如果选择让老系统开发缺失的接口,那么数据集成会面临三个主要问题:开发周期长问题定位麻烦开发效率低


因此,客户希望能提供快速集成基础资料的解决方案,无需耗费大量时间开发即可完成数据集成。


解决方案


面对以上场景, 使用金蝶云·苍穹—集成服务云直连老系统的数据库,可以快速集成基础数据到星瀚系统,无需耗费高额成本在老系统开发对应的接口,并且统一使用集成云进行集成,便于高效监控运维集成任务


下面,以基础数据中的人员集成为案例,具体介绍方案。


2.1 方案概述


人员信息的变化, 大致分为“新增”、“修改”、“启用”、“禁用”、“删除”这五类操作。


“新增”、“修改”这两个操作都可以调用人员的保存操作,保存操作会自动判断是“新增人员数据”还是“修改人员数据”,同时,在集成方案的目标数据处理中,可以根据源系统中人员的状态来禁用或启用对应的人员,所以“新增”、“修改”、“启用”、“禁用”这4类操作可以采用同一个集成方案进行处理。


人员“删除”操作在大多数企业内部一般不会存在,普遍是禁用失效人员信息,所以人员“删除”动作在人员集成方案中并不是必需的。故“删除”操作的集成方案选择和其他4类操作区别开, 并且对运维人员的后续运维管理工作来说, 也会更加清晰。


2.2 人员信息集成


第一步,在【集成管理】应用→【连接管理】→【连接配置】中,新增老系统数据库的连接类型,如下图:


上传图片


创建连接类型


第二步,在【集成管理】应用→【连接管理】→【数据源管理】中,创建数据源,其中【系统连接】选择第一步中创建的连接类型。


上传图片


创建数据源 


第三步,在【集成管理】应用→【集成元数据】→【集成对象】中,创建集成对象,包括老系统源对象和星瀚系统目标对象。


上传图片

创建源对象


上传图片

创建目标对象


第四步,在【集成管理】应用→【数据集成】→【数据集成方案】中,创建集成方案,如下图:


上传图片

创建数据集成方案


需注意的是,【字段映射】页签中,目标对象的【候选键】字段需在数据库中建立唯一的索引否则将严重影响同步性能,且存在目标数据重复的风险。此处设置“工号”字段为【候选键】字段。


上传图片

设置【候选键】字段示例


目标对象中的字段可以使用值转换规则或者转换脚本转换为符合目标系统的值,比如此处的“使用状态”, 在源系统中是1和2这两个枚举值, 但是目标系统中是0和1这两个枚举值, 所以可以使用“常量转换”类型的值转换规则转换,配置如下:


上传图片

常量转换配置示例


值转换规则的配置路径:【集成管理】应用→【数据集成】→【值转换规则】中,值转换规则需要根据实际场景选择, 根据具体字段和具体的来源数据而定, 并没有一个标准的转换规则。


另外,在转换脚本中,也可以对目标人员对象的字段做处理,转换脚本如下:


if(tar.number== null){return null;}
var sql = "SELECT top 1 fusertype as type from t_SEC_User@basedata where fnumber = ?";
var list = query_list($tar, sql, [tar.number], [VARCHAR]);
// 如果存在该用户,且用户类型不为1,忽略
if(list &&  list[0].type != '1') {
    tar.#_IGNORE_TAG = true;
}
var sql2 = "SELECT fcell,fforbidden,femail from t_pm_user where fpersonid = ?";
var list2 = query_list($src, sql2, [src.id], [VARCHAR]);
// 从人员关联的user表取数
if(list2) {
    tar.phone = list2[0].fcell;
  tar.email = list2[0].femail;
  if(list2[0].fforbidden == 1){
    tar.enable = 0;
  } else {
    tar.enable = 1;
    }
}


上传图片

转换脚本示例


在该脚本中,判断了人员的类型以及查询了人员的手机号和邮箱信息。目前,星瀚的人员类型有多种,类型编码为“1”的人员为职员类型,因为客户要求只同步职员类型的人员。


具体的处理脚本根据不同的场景按需选择, 灵活性很强。


在【目标数据处理】页签中,编辑人员禁用启用动作处理脚本,如下所示:


var sql = "select fenable from T_SEC_USER@BASEDATA where fnumber = ?";
var en = query_value($tar,sql,[tar.number

实践案例 | 多异构系统间高效系统集成方案

小编推荐在项目交付的过程中,由于客户使用的系统各有不同,各系统的数据集成就成为项目上线的关键之一。而在系统集成的过程中,部分老系统...
点击下载文档文档为doc格式

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

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