新付款单从钉钉同步到金蝶云星空:采购业务付款的策略实战
这个策略解决什么问题
某零售企业在钉钉上跑采购付款审批,审批通过的付款单需要落到金蝶云星空生成正式付款单,这样财务才能做核销、做账。审批在钉钉,记账在金蝶,两边不打通,就会出现「审批流已经走完、但财务系统看不到这张单」的局面。这条策略的目标就是把钉钉侧已完结的付款流程实例,按 20 分钟一轮的节奏抓回到金蝶云星空,做成可核销的付款单。
数据流向与字段映射
整体流向是 钉钉 → 轻易云数据集成平台(Qeasy)→ 金蝶云星空,中间不落业务库,只做字段映射与组装。
源端(钉钉)调用的是宜搭流程实例查询接口 v1.0/yida/processes/instances,按 pageNumber / pageSize 分页拉取,业务主键取流程实例的 title,流程实例 processInstanceId 作为幂等依据,开启 idCheck 做去重。
中间层在 Qeasy 里完成字段清洗,核心映射见下表:
| 业务含义 | 钉钉侧字段 | 中间层处理 | 金蝶云星空侧字段 |
|---|---|---|---|
| 单据编号 | 流程标题 title | 拼接 (FKD) 后缀 | FBillNo |
| 业务日期 | 毫秒时间戳 | FROM_UNIXTIME(ts/1000,'%Y-%m-%d') | FDATE |
| 单据类型 | 常量 | 直接落库 | FBillTypeID = FKDLX01_SYS |
| 业务类型 | 常量 | 直接落库 | FBUSINESSTYPE = 2 |
| 币别 | 常量 | 直接落库 | FCURRENCYID = PRE001 |
| 往来单位类型 | 常量 | 直接落库 | FCONTACTUNITTYPE |
目标端(金蝶云星空)走 batchSave 批量保存,id 作为返回主键,同样开启 idCheck,避免重复入库。
在轻易云上如何配置
在 Qeasy 上配置这条策略,关键点有四个:
- 数据源注册:分别登记钉钉和金蝶云星空两个平台实例,注意私有化环境需要走内网接入点,不要用公网默认地址。
- 元数据挂载:源端 metadata 用
QUERY类型,目标端 metadata 用EXECUTE类型,接口分别是宜搭流程实例查询和金蝶batchSave。 - 字段映射编排:把上表里的映射关系在 Qeasy 的映射画布里画出来,日期、时间戳、单位类型这种「带转换」的字段,务必用函数节点或自定义表达式,不要放在常量里。
- 编码映射集中管理:币别
PRE001、单据类型FKDLX01_SYS、业务类型2这类常量,建议放进轻易云的「全局字典」,后续如果客户要切换组织或币别,改一处即可,避免散落在多个策略里。
我们做过的项目里,「编码映射集中管理」是最容易被忽视的一项。客户第一次上线时往往随手写在策略里,半年后想换币别或新增组织,结果发现 26 条策略里散落着十几个不同的写法和备注。
实施步骤
- 第一次全量触发:手动执行一次,带上起始页与较大的 pageSize,把历史已完结的付款流程实例补齐,生成金蝶侧付款单。这一步主要看映射是否正确、单据编号是否会重复。
- 设定增量起点:把 Qeasy 的「上次同步游标」落到这一次全量的最大
processInstanceId,之后调度只取更新的实例。 - 调度频率:参考素材里给出的
*/20 * * * *,即每 20 分钟一轮。对采购付款这种业务量不大、但又要求当天能到账的场景,20 分钟是性价比比较高的频率,既能保证时效,又不会把目标端的batchSave打满。 - 异常重试与告警:建议在轻易云里把网络超时、字段缺失、
batchSave返回错误这三类分别配置告警通道,前两类一般自动重试就能恢复,第三类要人工介入核对金蝶侧是否已经有半成品单据。
稳妥的做法是 先全量,再增量,最后常驻调度,三步顺序不能颠倒;很多客户现场出问题,都是「还没核对全量数据就已经切到定时调度」造成的。
踩坑复盘
- 时间戳忘了除以 1000:钉钉宜搭返回的是毫秒时间戳,直接
FROM_UNIXTIME(ts)会落到 1970 年。这里一定要显式/1000。 - 单据编号重复:钉钉侧
title本身可能重复,如果不拼接(FKD)之类的业务后缀,在金蝶侧会触发编号唯一约束,导致batchSave整批失败。 idCheck没打开:流程实例processInstanceId没有去重,一旦调度重试或人工手动重跑,就会在金蝶侧生成重复付款单,后续核销环节对不上账。- 币别/单据类型用硬编码散落在策略里:典型的错误做法。后期维护成本极高,务必用轻易云的全局字典统一管理。
- 20 分钟一轮忽略了金蝶侧批大小限制:如果一次拉回几百张单,
batchSave会被服务端限流。建议在 Qeasy 里把单批控制在 50 张以内,超出自动拆批。
适用场景与不适用场景
适用:钉钉宜搭做采购付款审批、金蝶云星空做总账记账,需要把已完结的付款流程沉淀为正式付款单的企业;采购业务量适中、对当日到账有要求。 不适用:审批与记账在同一系统内(无须集成);或业务量极大(单日上千张)、需要秒级实时落账的场景,这种建议走消息队列直推,而不是 20 分钟轮询。