人兜底也要问**行标识**:主键问不到就写不进台账
A6「生成正式报价单」转人兜底时只问了出参的值(unitPrice / leadTime), 没问报价单号 —— 而 quote_no 是 formal_quote 的主键之一。结果人填完照样落不了地: 放行合并时被非空约束挡下(实测:null value in column "quote_no")。 `fallbackFields` 改为**键与值一起问**:出参声明里的主键路径,凡作用域里没有的都要问; 上游已给过的不再重复问。与前面「出参契约属于步、不属于执行者」是同一条: 这一步该产出的**行**和**值**,换谁来做都得齐。 gates: tsc / eslint / depcruise / 399 测试 全绿 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -210,7 +210,7 @@ export function createFlowRunner(deps: FlowRunnerDeps): FlowEngineService {
|
||||
reason: error,
|
||||
// 兜底的人要交的东西,和这一步**本来该产出的东西**同形:
|
||||
// 出参契约是步的契约,不因换谁来做而变(统一执行契约)。
|
||||
fields: fallbackFields(step),
|
||||
fields: fallbackFields(step, await deps.data.view(taskId)),
|
||||
},
|
||||
});
|
||||
await deps.listeners.register({
|
||||
|
||||
Reference in New Issue
Block a user