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

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

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

小编推荐


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


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


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


案例撰稿人:周国强。




业务背景


目前,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],[VARCHAR]);
if(tar.enable == 0&&en == 1){
  tar.enable = 1;
  $action( "bos_user", ["disable"], tar,{'$':["number"],'entryentity':["position","dpt"]});
  tar.enable = 0;
}
if(tar.enable == 1&&en == 0){
  tar.enable = 0;
  $action( "bos_user", ["enable"], tar,{'$':["number"],'entryentity':["position","dpt"]});
  tar.enable = 1;
}
return $action("bos_user", ["save"], tar,{'$':["number"],'entryentity':["position","dpt"]});


2.

人员禁用启用脚本示例


第五步,在【集成管理】应用→【数据集成】→【启动方案】中配置启动方案,如下图所示:


上传图片

配置启动方案


2.3 人员信息删除


人员信息删除方案可以根据实际需求选择, 并不一定需要删除人员信息。一般而言,企业内只会做人员禁用


人员信息删除方案使用的集成对象和人员信息集成方案使用的集成对象是一致的,此处不再一一详细说明。


上传图片

配置字段映射


上传图片

配置目标数据处理方法


上传图片

配置启动方案


2.4 集成异常通知


针对人员集成异常的情况, 可以在集成云【数据集成】→【数据集成通知】中,配置星瀚系统内的消息通知,以提示运维人员及时处理,如下图所示:


上传图片

集成异常通知配置


2.5 许可自动分配与清理


许可自动分配。对于新增人员,可以在系统内配置自动分配许可,配置路径:【系统服务云】→【配置工具】→【系统参数】,选择左树【系统服务云】下的【基础服务】,打开“添加用户时自动分配许可“开关,如下图所示:


上传图片

许可自动分配配置


许可自动清理在人员同步的集成方案中,如果是已经被禁用的人员,会调用人员的禁用操作,禁用操作中已经包含了释放许可的逻辑,所以许可释放无需单独处理。


方案的复用价值


3.1 行业普适程度


该方案可作为星瀚系统的人员集成的通用集成框架, 只需根据不同业务系统调整对应的源系统集成对象及部分集成方案中的处理逻辑。


3.2 对客户的价值


1、快速集成基础数据


目前客户系统中, 大部分的基础数据都是使用集成云进行集成, 相比于传统的使用接口方式进行集成, 至少节省30%的工作量。


2、集成结果及监控可视化


通过集成云提供的日志记录及集成通知功能,将每一个人员信息数据的集成过程以及结果通知可视化,极大地降低了排查问题运维的成本。


注意事项


4.1 许可释放


虽然许可释放在禁用操作中自动完成了, 但是在许可分配用户列表中, 还是会有一条同步异常的许可分配记录。如果没有清理掉对应记录, 当已使用许可数量非常接近于购买许可数量时, 可能会导致新增用户自动分配许可失败。


上传图片

许可同步异常示例


针对该情况, 可自行使用定时任务, 删除lic_userlicensegroup元数据中, 同步异常的记录即可。


4.2 从金蝶系产品集成


如果人员等数据是从金蝶系的EAS或者星空产品中集成,可以使用标准的解决方案,下载位置为【集成服务云】→【资源中心】,如下图所示:


上传图片

资源中心示例




#往期推荐#

# 实践案例 | 打破信息孤岛,OA系统集成的方案落地与实践

# 实践案例 | 多异构系统间的数据集成

实践案例 | 系统集成-亿级库存数据同步与初始化

# 实践案例 | WebService服务,解决多系统集成问题


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


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

小编推荐在项目交付的过程中,由于客户使用的系统各有不同,各系统的数据集成就成为项目上线的关键之一。而在系统集成的过程中,部分老系统...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息