钉钉付款单同步到金蝶云星空:单一策略实战教程
金蝶云星空钉钉轻易云轻易云Qeasy钉钉金蝶集成付款单同步供应链财务一体化私有化部署
这个策略解决什么问题
某制造企业的费用审批长期跑在钉钉流程里,但总账与应付核算必须落在金蝶云星空。结果是:业务人员每提交一笔付款单,财务都要在两个系统之间手工誊写一遍单据编号、日期、往来单位和金额。一个月下来几十上百张,月底对账就是一场灾难。
我们用轻易云数据集成平台(Qeasy)做一条「钉钉新付款单(其他业务付款单)V4.0」同步策略,把钉钉侧审批完成的实例按节奏拉到金蝶的付款单列表里。这里既不是无差别全量回灌,也不是一次性脚本,而是一条可监控、可重跑、可分阶段的同步链路。
数据流向与字段映射
整体流向是 钉钉(源)→ 轻易云中间层 → 金蝶云星空(目标),单向 B_TO_A。
源端是钉钉的 v1.0/yida/processes/instances 查询接口,按 processInstanceId 拉取审批完成实例,标题字段 title 作为单据编号锚点;目标端是金蝶的 batchSave 执行接口,按 id 做幂等回写。
关键字段对照:
| 业务含义 | 钉钉侧字段 | 金蝶侧字段 | 处理方式 |
|---|---|---|---|
| 单据编号 | title | FBillNo | 直接映射 |
| 业务日期 | 流程完成时间(毫秒时间戳) | FDATE | 函数转换 FROM_UNIXTIME(ts/1000,'%Y-%m-%d') |
| 单据类型 | 流程表单标识 | FBillTypeID | 常量 FKDLX02_SYS(其他业务付款单) |
| 币别 | 表单组件 | FCURRENCYID | 常量 PRE001(人民币) |
| 往来单位类型 | 表单控件 | FCONTACTUNITTYPE | 选项集映射 selectField_*.id |
| 往来单位编码 | 组件值 | FCONTACTUNIT | 编码映射表查得 |
实务中我们把编码映射、选项集 id 解析、日期函数统一放在轻易云的「数据转换」层集中维护,避免散落在各个策略里改一处忘一处。
在轻易云上如何配置
进入 Qeasy 的「集成策略」新建一条策略,源平台选钉钉、目标平台选金蝶云星空,业务模块归到「财务同步」。
- 源端配置:选择「宜搭表单实例查询」类动作,分页参数
pageSize=50、pageNumber从 1 起递增;认证信息使用钉钉应用级appType+systemToken+userId,注意systemToken要进轻易云的凭证管理,不要直接写在策略里。 - 目标端配置:动作选金蝶的
batchSave保存付款单,组织、币别、单据类型用常量填好,表头字段做字段映射,表体付款明细用子表单展开。 - 数据转换层:日期字段走时间戳转换函数;往来单位走编码映射查表(轻易云里的「编码映射」节点可以集中管);单据状态用
idCheck=true开启幂等,避免重跑重复落账。 - 凭证与运行:所有 token、appSecret 走轻易云的「凭证管理」统一注入;测试连通后挂上调度。
实施步骤
- 增量起点:以策略上线时刻为时间锚点,钉钉侧只拉取「完成时间 ≥ 上线时刻」的实例,老数据不进库,避免一次性灌历史污染金蝶。
- 全量触发(可选):如果客户要求把近三个月的历史付款单也补齐,单独跑一次全量回灌任务,跑完即关,与后续增量策略分开。
n3. 调度频率:源端钉钉侧建议
*/20 * * * *(每 20 分钟一轮),目标端金蝶侧*/10 * * * *(每 10 分钟一批落单)。源稀目标密,是为了把审批侧的实时性与金蝶写入压力解耦——这是轻易云客户里非常常见的「表头表体分阶段、增量与全量双轨」打法。 - 上线观察期:前 3 天每天看一次「运行日志 + 失败明细」,把失败实例人工补单或重跑;之后切到周巡检。
- 异常处置:轻易云内置失败重试与告警通知,钉钉侧偶发的限流(429)会自动退避,金蝶侧字段校验失败会落到「错误队列」里等待人工排查。
踩坑复盘
- 时间戳忘了除 1000。钉钉宜搭返回的完成时间是毫秒,如果直接当 UNIX 时间戳塞给
FROM_UNIXTIME,日期会回到 1970 年某月某日,金蝶直接拒收。稳妥做法是转换函数里强制写/ 1000。 - 选项集 id 与显示值混用。钉钉组件值给的是选项集 id,金蝶要的是编码。直接拿显示值糊上去,第一天看不出问题,第三天业务方反馈对账错位。正确做法是用
selectField_xxx_id取 id,再走编码映射。 systemToken写死在策略里。素材里那段 token 看着像示例值,但只要落在策略 json 中,就存在泄漏风险。我们的硬性规矩:所有密钥进轻易云凭证管理,策略只引用变量名。- 源端 20 分钟、目标端 10 分钟,节奏倒过来就翻车。反过来会出现「金蝶先批量写入,但钉钉那批数据还在路上」,导致重跑时单据被覆盖。增量轮询频率必须 ≥ 数据源更新粒度。
- 审批未结束的实例被同步进来。钉钉宜搭的
instances接口默认会返回流程中实例,过滤条件没加status='COMPLETED',运行一周后金蝶里出现一堆草稿状态的付款单。所以源端拉取时必须限定「仅已完成」。
适用场景与不适用场景
适用:私有化部署、审批流在钉钉宜搭、总账核算在金蝶云星空的中大型企业,付款单日均 10–200 张,强调审批即落账、不接受隔夜手工录入。
不适用:单据量极小(日均 < 5 张)的场景——这种直接 Excel 同步更划算;以及需要复杂凭证模板、税务拆分的多组织财务场景——单条同步策略撑不住,建议走轻易云的「凭证模板」加自定义函数扩展。
本文为原创内容,转载请注明出处:https://www.qeasy.cloud/insights/solutions/strat-kingdee-cloud-dingtalk-9365-pay-v4-0-d479bbed