状态流转与自定义工作流

需求、缺陷、子需求各自在哪里改状态,按钮为什么是灰的,槽位认领,以及给项目配自己的工作流

适用角色:所有项目角色;配置工作流需「管理工作流配置」 · 最后更新:2026-08-11 · 约 6 分钟

项目里的三类对象——需求、缺陷、需求下的子需求——状态变更都走同一套工作流引擎:每一步流转有权限守卫、有留痕、可回溯。但三者的操作入口不在一处,这篇先把入口说清楚,再讲项目管理员怎么定制自己的工作流。

三类对象,三个入口

  1. 需求:进需求详情的「需求流程」区——点当前状态徽章(带 ▾)展开可去的状态,或点下面那排流转按钮。详见需求评审与流转。
  2. 缺陷:进「缺陷」页,在看板上把卡片拖到目标状态列,或点卡片上的状态点选一条出边;也可以打开缺陷详情,用「流程」区里的流转按钮。全项目只有缺陷页有看板。
  3. 子需求:子需求没有独立页面,它挂在需求详情概览里的清单上,那份清单是只读的。要改子需求状态,去「甘特排期」——在图上点中那一行,右侧检查器的「流程」区就是它的流转入口。

不管从哪个入口进,列表里只出现从当前状态出发的动作;选中目标状态,需要时填原因,原因会进入对象动态供回溯。默认缺陷/子需求流程里的「取消」强制填写原因,并进入已取消终态;完成或已取消后再次取消会明确返回 422,不会静默当成成功。流转后状态立即生效;如果工作流配了处理人路由,「当前处理人」会随之切换,轮到的人会收到站内通知。

按钮为什么是灰的

灰色动作代表「流转路径存在,但当前被拦住」。悬停能看到人话原因,常见三类:

权限不足
你的角色在这个模块的访问级别不够——找项目管理员在「项目设置 → 权限设置」调,级别与模块的对应关系见成员与角色。
必填字段为空
目标状态要求某个字段先填好(比如缺陷关单前要填处理结论)。
不能连续经手
工作流配置了「同一人不能连续两步经手」的岗位分离守卫,换个人来执行。

槽位与认领

工作流可以给状态配角色槽位(比如「开发」「QA」):槽位里是一组候选人,谁来处理靠认领。

自定义工作流(项目管理员)

内置工作流不够用时,在「项目设置 → 工作流」自己配:

  1. 新建模板:可从系统种子模板起步,也可从空白开始。一个模板服务一类对象——需求,或缺陷与子需求。
  2. 编辑草稿:增删状态、连流转边、配守卫(权限/必填字段/岗位分离)与槽位路由。草稿随便改,不影响线上。
  3. 校验并发布:发布前引擎会校验图的完整性(可达性、终态等);发布产生一个新版本,在途对象平滑迁移——已有卡片按映射落到新状态集,不丢数据。
  4. 绑定类型:把模板绑定到对象类型上,之后这类对象走新工作流。

常见问题

改了工作流,旧卡片会怎样?
发布时你会先看到迁移预览:每个旧状态映射到哪个新状态、影响多少张卡。确认后一次性平滑迁移,历史动态保持不变。
我用 API Token 调流转接口被拒?
早期用 all scope 签发的 token 可能不含工作流管理权限。在「项目设置 → API Token」重新生成即可;token 的实际权限永远不会超过你本人当下的角色权限。
需求和缺陷的工作流是一套吗?
同一个引擎、各自的模板。需求默认走内置 7 状态流程,缺陷与子需求默认走 6 状态流程(含需要原因的「已取消」终态),都可以被自定义模板替换。
为什么子需求只能在甘特图上改状态?
子需求是需求下的执行拆解,没有自己的列表页;甘特图是它唯一有流转入口的地方。需求详情里的子需求清单只做进度回显,点不动状态。
Workflow 正在加载…