补充复现案例 C(2026-06-10,与案例 B 同模式)
同一业务流、同一部署环境,又出现一例:钉钉 task 已 COMPLETED,同请求内无 syncToTable,且无 ERROR。
环境(与主帖一致)
| 项 | 说明 |
|---|---|
| 产品 | Jit 平台 WorkflowSvc + 钉钉 processCentres 同步 |
| 业务审批流 | workflows.paymentRegistrationApproval(付款单-审批) |
| 关联模型 | models.registrationOfPayments |
| 集成 | 钉钉 OA 审批 / 待办同步(platformSwitch: 1) |
现象
| 案例 | 付款单号(业务号) | 卡住时间 | 卡住节点 | 数据 ID |
|---|---|---|---|---|
| C | FK******002 | 2026-06-10 09:14:58 | iYWlUS(审计复核) | 987 |
节点为流程最后一档审批(下一节点应为 EndNode),链路片段:
… → 出纳(qVTmcA) → 付款复核(uYWHXs) → 审计复核(iYWlUS) → EndNode
用户侧:审计复核点「同意」后,审批历史有记录,但流程未完结,实例仍停在 iYWlUS。
请求特征(正常 Web 端,非案例 A 的 token:None)
POST …/workflows/services/WorkflowSvc/doHandle
args: {
workflowName: workflows.paymentRegistrationApproval,
handleType: 2,
nodeId: iYWlUS,
rowData: { id: 987, paymentOrderNumber: FK******002, … } // 完整 row
}
token: [JWT 存在,已省略]
日志链路(requestId: 41b57fc0d4984bc58f10e62512d178f4)
[09:14:58] upsert registrationOfPayments pk=987
[09:14:58] insert DataHistoryModel pk=186406
[09:14:58] insert WorkflowHistoryModel pk=57867
[09:14:58] third request: …/oauth2/accessToken
[09:14:59] third request: …/processCentres/tasks
{ processInstanceId: \[PI-C\], tasks: \[{ taskId: \[TASK-C\], status: COMPLETED, result: AGREE }\] }
[09:15:02] App exit completed // 约 3 秒后结束
缺失步骤(相对「最后一节点成功结束」):
- 无第二条 WorkflowHistory(成功案例在 EndHandle 前通常会再写一条)
- 无钉钉
processCentres/instancesCOMPLETED - 无
EndHandle do - 无
workflows syncToTable(状态应为「已通过」) - 无
server.logERROR / Exception
与同单据「中间节点成功」对比
09:02:28 同一实例、上一节点 uYWlUS(付款复核) 审批成功,日志完整:
钉钉 COMPLETED → syncToTable(currNodeId=iYWlUS)-> WorkflowTaskModel → 钉钉新待办
09:14:58 同一 processInstanceId: [PI-C]、task [TASK-C] 在 COMPLETED 之后,未触发 syncToTable / EndHandle------与主帖 案例 B 一致。
关键对比表(并入主帖汇总)
| 步骤 | 成功案例(中间节点) | 案例 C(iYWlUS) |
|---|---|---|
| 完整 rowData | 是 | 是 |
| JWT token | 有 | 有 |
| DataHistory | 有 | 有 |
| WorkflowHistory | 有 | 有 |
| 钉钉 COMPLETED(tasks) | 有 | 有 |
| syncToTable | 有 | 无 |
| 流程结束 / 下一节点 | 有 | 无(应 EndHandle + 已通过) |
| server.log ERROR | - | 无 |
与案例 B 差异:B 卡在中间节点(缺下一待办);C 卡在最后审批节点(缺 EndHandle + 已通过)。断点模式相同:tasks COMPLETED 之后引擎未推进且无 ERROR。
复现线索(供平台排查,内网保留完整值)
| 占位符 | 含义 | 值(脱敏) |
|---|---|---|
| requestId | 案例 C | 41b57fc0d4984bc58f10e62512d178f4 |
| 实例 C | workflow instanceId | 12034 |
| [PI-C] | 钉钉 processInstanceId | WEnaZOs3TFm9R0OmnnY0ig0*********** |
| [TASK-C] | iYWlUS 待办 taskId | 101725944749 |
| WorkflowHistory | 本次同意记录 | 57867 |
| DataHistory | 本次 | 186406 |
| 日志文件 | server.log(2026-06-10 09:14:58 段) |
09:15 之后多次 getWorkflowDataStoreList / getWorkflowHistory 查询,实例 12034 仍为 nodeId: iYWlUS。
建议与主帖并案
- 案例 A / B / C 均符合「有 tasks COMPLETED、无 syncToTable、无 ERROR」,建议同一根因排查。
- 请确认:tasks COMPLETED 返回后,何种分支会跳过 syncToTable / EndHandle;失败时为何不落 ERROR。
- 若需未脱敏
[PI-C]、JWT、row 快照,可通过工单提供 requestId + 时间戳。