3. 工作流设计器实战

Jira 内置的工作流设计器(Workflow Designer)是管理员在浏览器中直接编辑工作流的主要入口。它把工作流抽象为“状态 + 转换 + 转换界面 + 属性”四类可编辑对象,并以可视化画布呈现。本节以一个真实可复现的场景为主线:为“软件缺陷跟踪”项目创建一个名为 Bug Review Workflow 的自定义工作流,覆盖从新建、绘制状态与转换,到配置转换界面、设置条件与属性,最后绑定到工作流方案并验证的完整过程。

一、进入设计器与新建工作流

路径为:Jira 管理 → 问题 → 工作流,点击“添加工作流”,选择“创建新的工作流”,输入名称 Bug Review Workflow 与描述。Jira 会默认生成一个“Open → In Progress → Done”的初始草稿。设计器画布支持拖拽节点、双击节点改名、从节点边缘拖出连线创建转换。所有修改先保存在草稿中,只有点击“发布”才会生成新版本并影响线上项目,这是设计器最重要的安全机制。

二、绘制状态与转换

本示例设计 5 个状态:Open(新建)、Triage(待分诊)、In Progress(处理中)、In Review(待验证)、Closed(关闭)。转换关系如下:

  • Open → Triage:转换名 Start Triage,由项目负责人触发;
  • Triage → In Progress:转换名 Assign & Start,需填写经办人;
  • In Progress → In Review:转换名 Submit for Review,需填写修复说明;
  • In Review → Closed:转换名 Verify Pass,仅测试角色可执行;
  • In Review → In Progress:转换名 Verify Fail,回退到处理中;
  • 任意状态 → Closed:全局转换 Reject,用于无效缺陷。

在画布上,每个转换就是一条带箭头的连线,双击连线即可打开转换配置面板。设计器会自动校验:是否存在孤立状态、是否有状态无法到达、是否缺少初始状态。若出现红色提示,必须先修复才能发布。

Bug Review Workflow 状态与转换 Open Triage In Progress In Review Closed Start Triage Assign & Start Submit for Review Verify Pass Verify Fail Reject(全局转换)

三、配置转换界面(Transition Screen)

转换界面决定用户点击某个转换按钮时弹出的表单。设计器允许为每个转换单独指定界面,也可以复用已有界面。以 Submit for Review 为例,我们希望提交时强制填写“修复说明”和“影响版本”,操作如下:

  1. 双击 Submit for Review 连线,打开转换配置面板;
  2. 在“界面”下拉中选择“创建新界面”,命名为 Submit Review Screen;
  3. 添加字段:修复说明(自定义多行文本,必填)、影响版本(版本选择器,必填)、经办人(用户选择器,只读展示);
  4. 保存后回到画布,该转换图标上会出现一个“界面”小标记,表示已绑定表单。

需要注意:字段是否必填由“字段配置”和“界面”共同决定。若字段在界面中标记为必填,但字段配置中该字段对当前项目不可见,则界面不会显示该字段,必填校验也不会生效。因此配置界面后,应回到“字段配置方案”确认字段可见性。

四、设置条件、验证器与后处理功能

转换配置面板下方有三个关键区域,它们决定“谁能执行、执行前校验什么、执行后发生什么”:

区域作用本示例配置
条件(Conditions)控制转换按钮是否可见/可用Verify Pass 仅“测试”项目角色可执行
验证器(Validators)提交前校验输入是否合法Submit for Review 校验“修复说明”非空
后处理功能(Post Functions)转换成功后自动执行动作Assign & Start 自动设置经办人并更新“开始时间”

后处理功能是工作流自动化的核心。例如在 Assign & Start 中添加“更新问题字段”后处理,把 开始时间 设为当前时间;在 Verify Pass 中添加“设置解决结果”后处理,把解决结果设为“已修复”。这些动作按顺序执行,顺序错误可能导致字段被覆盖,因此设计器允许拖拽调整后处理顺序。

五、工作流属性(Workflow Properties)

属性是附加在工作流、状态或转换上的键值对,常被插件或脚本读取。设计器在“属性”标签页中提供编辑入口。常见属性包括:

  • jira.permission.close:限制关闭转换的权限;
  • jira.issue.editable:控制某状态下问题是否可编辑;
  • jira.field.resolution.include:指定解决结果字段可选值。

属性值区分大小写,且不会在设计器中做语义校验,写错键名通常不会报错,但也不会生效。建议先在测试项目验证,再推广到生产项目。

六、发布、绑定与验证

完成编辑后点击“发布”,Jira 会生成工作流的新版本。随后需要把工作流绑定到项目:进入 项目设置 → 工作流,选择“切换工作流方案”,将 Bug Review Workflow 关联到目标项目。绑定后建议做一次端到端验证:

  1. 新建一个缺陷,确认初始状态为 Open;
  2. 依次执行各转换,检查转换界面字段是否按预期出现、必填是否生效;
  3. 用非测试角色尝试 Verify Pass,确认按钮不可见;
  4. 执行 Submit for Review 后查看问题历史,确认后处理功能已写入“开始时间”和解决结果。
设计器中的草稿可以随时“丢弃”,不会影响已发布版本。若线上工作流正在被项目使用,直接编辑已发布版本会被阻止,必须先创建草稿或复制为新工作流。
不要在生产项目上直接试验未验证的条件与后处理功能。建议先复制一份工作流,在测试项目中完成全部转换路径的验证,再切换生产项目的工作流方案。

通过以上步骤,一个包含状态、转换、界面、条件、验证器、后处理与属性的自定义工作流即可投入使用。设计器的价值在于把原本需要 XML 编辑的工作流配置转化为可视化操作,但字段可见性、权限与后处理顺序仍需结合字段配置方案和权限方案综合判断,才能保证工作流在真实项目中稳定运行。