2. 旧核心系统认知

做产品参数迁移,第一步不是写脚本,而是把旧核心系统“看透”。旧核心往往运行了十几年甚至二十多年,它的架构、数据组织和参数语义,直接决定了迁移的难度、风险点和映射策略。本章从架构特点、参数存储方式、常见参数类型与业务含义三个层面,建立对旧核心的系统性认知。

一、旧核心架构特点:集中、耦合、批处理驱动

旧核心系统(常被称为“老核心”“主机核心”)大多诞生于集中式架构时代,其典型特征可以归纳为以下几点:

  • 集中式单体架构:存款、贷款、卡、总账等模块运行在同一套应用与数据库实例中,模块间通过内部调用或共享表直接交互,边界模糊。
  • 紧耦合:产品参数与交易逻辑、账务逻辑深度绑定,很多参数并非“配置”,而是硬编码在程序分支或存储过程中。
  • 批处理驱动:日终批量(如计息、计提、结息、对账)是核心业务的主要执行方式,参数变更往往在日终或日初生效。
  • 字符终端与定长报文:柜面通过终端界面操作,系统间通过定长报文或文件交换,字段长度、精度、编码规则严格受限。
  • 数据库以关系型为主:常见 DB2、Oracle、Sybase,表结构高度范式化或反范式化并存,字段命名多用缩写。
理解旧核心的“批处理生效”特性非常关键:迁移窗口、参数生效时点、数据一致性校验,都必须围绕批量作业的节奏来设计。

二、产品参数存储方式:从参数表到硬编码

旧核心中“产品参数”并非集中存放,而是分散在多种载体中。迁移前必须逐一识别,否则会出现“参数漏迁”或“语义错迁”。常见存储方式如下:

存储方式 典型载体 迁移关注点
参数表 产品定义表、利率表、费率表、期限表 主键、生效日期、版本、状态字段
代码表/字典表 产品码、币种、账户类型、交易码 编码含义、映射关系、是否可扩展
配置文件 应用配置、批量参数、开关项 环境差异、默认值、覆盖规则
存储过程/程序分支 计息逻辑、费率计算、限额判断 隐式参数、硬编码阈值、条件组合
定长报文/接口定义 字段位置、长度、精度 精度截断、符号位、填充规则

下面是一段典型的旧核心参数表查询示例,用于定位某产品的利率参数:

SELECT PROD_CODE, CCY, RATE_TYPE, RATE_VAL,
       EFF_DATE, EXP_DATE, STATUS
FROM   T_PROD_RATE
WHERE  PROD_CODE = 'SB001'
AND    CCY       = 'CNY'
AND    STATUS    = 'A'
ORDER BY EFF_DATE DESC;

查询结果中,EFF_DATE 与 EXP_DATE 构成时间区间,STATUS 表示启用状态。迁移时必须保留这种“时间切片”语义,否则新核心可能取到错误版本。

三、常见参数类型与业务含义

旧核心的产品参数种类繁多,但按业务含义可归为几大类。理解每一类的业务作用,是建立映射规则的前提。

  • 产品定义参数:产品码、产品名称、账户类型、币种、起存金额、期限类型,决定“这是什么产品”。
  • 利率参数:基准利率、浮动方式、浮动值、利率类型(固定/浮动)、计息方式(单利/复利),决定“利息怎么算”。
  • 费率参数:手续费、管理费、提前支取费、费率计算基数与收取方式,决定“费用怎么收”。
  • 期限与到期参数:存期、到期处理方式(转存/转活期/销户)、自动转存标志,决定“到期怎么办”。
  • 限额与风控参数:单笔限额、日累计限额、透支额度、冻结规则,决定“能做多大”。
  • 账务与核算参数:科目号、内部账户、核算码、计提标志,决定“账记到哪里”。
常见误区:把“利率参数”简单理解为一行数值。实际上利率往往由基准、浮动方式、浮动值、生效区间、客户等级等多个字段共同决定,漏掉任一维度都会导致迁移后计息错误。

四、案例与复盘:一次参数漏迁的排查

某银行迁移定期存款产品时,新核心上线后发现部分账户利息少算。排查过程如下:

  1. 对比新旧核心同一账户的计息结果,定位差异出现在“提前支取”场景。
  2. 回溯旧核心参数表,发现提前支取利率存放在 T_PROD_RATE 中 RATE_TYPE='ADV' 的记录里。
  3. 迁移映射表只映射了 RATE_TYPE='STD' 的标准利率,遗漏了 'ADV' 类型。
  4. 补充映射规则并重跑迁移,差异消除。

复盘结论:旧核心用同一张表的不同 RATE_TYPE 承载多种利率语义,迁移前必须做“参数类型枚举盘点”,而不是只按表名映射。

旧核心产品参数存储分布与迁移映射 旧核心参数载体 参数表(利率/费率) 代码表/字典表 配置文件/开关 存储过程/硬编码 定长报文定义 参数业务类型 产品定义参数 利率参数 费率参数 期限/到期参数 限额/账务参数 迁移映射动作 枚举参数类型 建立字段映射 保留时间切片 校验精度与编码 回归计息/计费

通过这张分布图可以看到,旧核心参数从“载体”到“业务类型”再到“迁移动作”是一条完整的链路。任何一环缺失,都会在迁移后以业务差错的形式暴露出来。因此,在动手迁移之前,先完成参数盘点、类型枚举和映射设计,是本章最核心的落地要求。