# JIRA 3.12 自定义工作流

**URL:** <https://www.isharkfly.com/t/jira-3-12/11616>\
**Category:** 敏捷开发\
**Created:** [October 8, 2012, 12:15am UTC](https://www.isharkfly.com/t/jira-3-12/11616 "2012-10-08T00:15:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [October 8, 2012, 12:15am UTC](https://www.isharkfly.com/t/jira-3-12/11616/1 "2012-10-08T00:15:59Z")

</div>

配置工作流之前请先定好Issue有哪些状态，状态的配置见常用配置–Issue Settings部分。

工作流配置从ADMINISTRATION-General Settings-Workflows进入，系统默认有一个叫做jira的工作流，这个工作流是只读的不能修改。

但是可以以此为蓝本来建立工作流，通过Operations中Copy链接即复制了一个一样的工作流。

点击Operations–steps进入步骤的设置，进入的界面如下图所示：

![](https://www.isharkfly.com/images/transparent.png)

从图中看Open step，Linked Status表示执行完这个step后，issue的状态会变成Open，Transitions表示对于Open状态的issue可以执行的操作，Operations是设置时用到的链接。

下面以几个例子来说明如何配置工作流：

1. 我们认为Open状态的issue不能有Resolve Issue这个Transition，所以准备把它删除，点击Delete Transitions，之后在多选框中选择Resolve Issue，删除即可。

2. 对于Open状态的issues，Start Progress这个操作我们想控制它的权限，只有开发人员才能执行这个操作。通过点击Start Progress这个链接进入设置，我们看到在Conditions这个Tab中已经存在一个条件，含义是“只有assignee才能执行这个操作”，这个condition是合理的，保留。

![](https://www.isharkfly.com/images/transparent.png)

我们通过点击Add链接来增加另外一个condition，之后会得到一个列表来选择condition的类型，开发人员才能执行同Project role比较接近，选择User is in Project Role。

其实选择User is in group 然后配置一个开发人员组也是可以达到同样的效果。

![](https://www.isharkfly.com/images/transparent.png)

在下一屏中选择Developers这个Project Role，添加完我们可以看到如下图所示的Conditions。

![](https://www.isharkfly.com/images/transparent.png)

JIRA默认将增加的condition用AND来连接，如果需要也可以将条件用OR来连接。

熟悉以上操作后，通过Add New Step，调整每个step关联的status就可以实现复杂的自定义工作流。

工作流定义好之后，还需要定义workflow scheme，这个工作流才能被项目引用。

通过ADMINISTRATION-Schemes-Workflow Schemes进入配置界面，先增加一个scheme，然后在Operations中的Workflows链接中关联workflow。

JIRA在workflow之外再包装一层scheme的意义在于可以针对不同的issue type使用不同的工作流，如下图。

![](https://www.isharkfly.com/images/transparent.png)

为了简洁起见，我们一般选择All unassigned Issue Types对应一个工作流。

定义好workflow scheme之后才能被特定的Project所使用，通过ADMINISTRATION—Projects，选择需要配置的Project进行配置，如下图：

![](https://www.isharkfly.com/images/transparent.png)

在Workflow Scheme中点击Select进行scheme的选择。在Associate的时候会得到一个警告：

![](https://www.isharkfly.com/images/transparent.png)

针对已经存在issues的project，修改工作流可能会引起状态等信息的丢失，所以最好先做好JIRA数据的备份以免发生意外。

（我修改过1000个issues的project的工作流，JIRA可以很好的处理，不用因为有警告而太紧张，不过事先备份是必须的操作）

另外Project配置界面有很多scheme可配置，方法是类似的，后面不再详细描述。可以配置的scheme包括：

Issue Type Scheme

Notification Scheme

Permission Scheme

Issue Security Scheme

Field Configuration Scheme

Issue Type Screen Scheme

Workflow Scheme
