From 6a08b99ed8f8c71c2f859001ea3d48764a82cd3e Mon Sep 17 00:00:00 2001 From: iven Date: Sat, 11 Apr 2026 16:22:32 +0800 Subject: [PATCH] fix(workflow): reject ServiceTask at runtime instead of silently stalling ServiceTask was accepted by the parser but fell through to the wildcard branch in the executor, creating an active token that never progresses. Now returns a clear error so users know the feature is not yet implemented rather than debugging a stuck flow. --- crates/erp-workflow/src/engine/executor.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/erp-workflow/src/engine/executor.rs b/crates/erp-workflow/src/engine/executor.rs index 3fe4f88..3b7d426 100644 --- a/crates/erp-workflow/src/engine/executor.rs +++ b/crates/erp-workflow/src/engine/executor.rs @@ -245,8 +245,14 @@ impl FlowExecutor { ) .await } + NodeType::ServiceTask => { + // ServiceTask 尚未实现:无法自动执行服务调用,直接报错 + return Err(WorkflowError::Validation( + format!("ServiceTask ({}) 尚未实现,流程无法继续", node.name), + )); + } _ => { - // UserTask / ServiceTask / 网关(分支)等:创建活跃 token + // UserTask / 网关(分支)等:创建活跃 token let new_token_id = Uuid::now_v7(); let now = Utc::now();