首页/开发/系统分析与架构设计速查/批量文件与结算集成

批量文件与结算集成

企业间常见批量集成形态:按周期交换文件(SFTP 或对象存储),配合校验文件、断点续传与幂等装载;可靠性与可审计性优先于时延。

批文件集成是什么

按周期交换文件是企业间最古老也最稳的集成形态:双方约定目录、命名与格式,通过 SFTP 或对象存储投递数据文件,配合校验文件说明完整性,接收方做幂等装载。它的优化目标是可靠性与可审计性而非时延,因此适合结算对账、批量发薪、监管报送这类允许小时级延迟、但绝不能丢数或重复的业务。

一条文件链路的完整形态

发送方先生成数据文件,再生成含行数、金额合计与哈希值的校验文件,最后投递一个完成标记文件;接收方轮询到标记文件后才开始处理,按批次号幂等入库,处理完毕后按同样机制回传回执。链路上任一步失败都能按文件粒度重跑,重跑不会产生重复数据,人工只需处理回执对账后的差异,这就是批文件模式长期存活的原因。

基本信息

传输方式SFTP 传文件,或对象存储分片上传配合服务端校验
完整性随单校验文件(笔数或行数、金额合计、哈希)与完成标记文件
装载要求按文件号与批次号幂等,失败重跑不产生重复数据
时间约束约定交换窗口与截止时间,超时未达即触发异常流程
格式约定字符集、换行符、日期格式与小数精度需在样例文件上对齐

断链排查顺序

环节检查方法
投递查看对端目录是否出现完成标记文件,判断是否根本没发出去
完整性比对校验文件中的笔数与哈希值是否与数据文件一致
解析字段错位多由分隔符与转义引起,需核对字符集与换行符
装载查批次号是否已入库,区分重复投递与漏处理两种情况
回执核对回执记录与本地处理结果,差异转入人工队列

典型使用场景

  • 与银行、税务、监管机构做周期性对账与数据报送
  • 与上下游交换结算明细、库存流水与运单数据
  • 大批量历史数据迁移,一次性投递比逐条调用接口更省时
  • 对方不具备稳定的实时接口能力,只能提供目录交换

文件命名与投递约定

文件命名与投递约定
ORD_20261013_001.dat    # 数据文件:业务_日期_序号
ORD_20261013_001.chk    # 校验文件:笔数、金额合计与哈希
ORD_20261013_001.done   # 完成标记:对端见到才允许处理
# 装载按批次号幂等:重复投递只覆盖不追加
批文件联调的返工多数来自格式约定不清:字符集、换行符、日期格式、金额小数位与空值表示,要在样例文件上逐项确认后再开发。
重跑能力必须提前设计:装载按文件号与批次号幂等、回执按同机制回传,否则一次中断就留下重复或缺失数据,人工修复成本远高于开发投入。

易错点

  • 没有完成标记文件,接收方读到只传了一半的数据文件,产生残缺批次且难以察觉
  • 重跑装载未做幂等,数据重复累积,对账时需要逐笔人工核对
  • 传输通道加密但文件本身可被替换,未附摘要或签名,存在篡改风险
  • 交换窗口与截止时间没有约定,超时无人处置,业务日切后才暴露缺数
  • 字符集与小数精度未对齐,金额字段解析出偏差,账目长期对不平

数据来源与参考

  • 《Enterprise Integration Patterns》(Hohpe & Woolf):文件传输章节
  • EDI 集成通行实践文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌