Redmineのチケットの運用フローを決める「ワークフロー」機能とは?設定方法を解説!

本記事ではRedmineのワークフローの設定方法と設定例をご紹介します。

Redmineの「ワークフロー」とは

Redmineの「ワークフロー」には、以下2つの機能があります。

  • ステータスの遷移
    • チケットを作成してから完了するまでのステータスの遷移を定義します
  • フィールドに対する権限
    • チケットを作成してから完了するまでの必須項目と読み取り専用項目を設定します

それぞれの設定は、「ロール」×「トラッカー」の組み合わせごとに行います。どんな設定ができるのか解説します。

「ワークフロー」の設定は、「管理」>「ワークフロー」より行うため、設定ができるのは、Redmineのシステム管理者権限(すべての操作を行える特別な権限)を持つユーザーのみです。

「ステータスの遷移」の設定について

「ステータスの遷移」では、ユーザーがチケットのステータスをどのように変更できるのかを定義します。例えば、以下のように設定することができます。

  • タスクチケットのステータスの遷移を「新規」→「進行中」→「終了」のシンプルなものにする
  • サポートチケットでは、管理者ロールのユーザーのみチケットを「承認(完了)」、「却下」できるように制御する

設定手順と設定の見方

1.「管理」>「ワークフロー」の「ステータスの遷移」タブを開きます。

2.①「ロール」と②「トラッカー」を選択してから、③「編集」ボタンをクリックします。

Redmineワークフローの「ステータスの遷移」

↑の画面では、「開発者」ロールのユーザーが、「バグ」トラッカーのチケットに対して、どのようにステータスを遷移させるかの設定を「編集」しています。

3.遷移できるステータスのマス目に☑を入れて設定します。

Redmineワークフローの「ステータスの遷移」

表は、縦軸が「現在のステータス」、横軸が「遷移できるステータス」となっているので、あるステータスからあるステータスに遷移できるようにする場合は、そのマス目に☑を入れます。
↑の画面では、赤枠
Aで囲った☑は、「新規」から「進行中」に遷移できることを表しています。赤枠Bで囲ったマス目には☑が入っていないので、「進行中」から「終了」には遷移できないことを表しています。「終了」や「却下」のマス目はすべて☑を外しており、開発者ロールのユーザーが「終了」、「却下」ができないように制御しています。

4.設定が完了したら「保存」をクリックして、設定を更新します。

Redmineワークフローの「ステータスの遷移」

※「現在のステータス」の「新しいチケット」について

現在のステータスの「新しいチケット」の行は、チケット作成時に、ステータスを選択できるかどうかを表す行になります。デフォルトの設定では、すべてのマス目に☑が入っていませんが、チケット作成時には、ステータスが自動で「新規」にセットされるため、このままの状態で問題ありません。もし、チケット作成時に「進行中」などのステータスも選べるようにしたい場合は、☑を入れます。

「ステータスの遷移」の設定例

ステータスの遷移の設定例をご紹介します。

例1:「新規」→「進行中」→「終了」のシンプルなワークフローにする

設定内容のイメージ:

Redmineワークフローの「ステータスの遷移」の設定イメージ

Redmineを使い始めた頃は、ワークフローの設定を細かくしすぎずに、なるべくシンプルなフローで運用するのがおすすめです。ロールによる制御も行わず「すべて」のユーザーが、「新規」→「進行中」→「終了」の同じフローをたどるように設定します。

設定手順:
1.①ロールで「すべて」②トラッカーで「タスク」を選択し、「編集」をクリックします。 2.デフォルトで用意されている「解決」、「フィードバック」、「削除」のステータスは使わないので、マス目の☑を外します。 Redmineワークフローの「ステータスの遷移」 「このステータスで使用中のトラッカーのみ表示」に☑を入れると、以下のように使用しないステータスを省いてよりわかりやすく表示します。 Redmineワークフローの「ステータスの遷移」
ステータスの見え方:

すべてのユーザーで「新規」、「進行中」、「終了」のみが表示されます。

Redmineワークフローの「ステータスの遷移」設定によるステータスの見え方

例2:レビューによる承認を挟むワークフローにする

設定内容のイメージ:

Redmineワークフローの「ステータスの遷移」の設定イメージ

「サポート」チケットで、管理者のレビューによる承認を挟むフローにしたい場合は、管理者と開発者、それぞれでワークフローを設定します。開発者は「進行中」、「承認待ち」のステータスに変更することはできますが、「承認(完了)」、「却下」はできないように制御します。

設定手順:
1.①ロールで「管理者」②トラッカーで「サポート」を選択し、「編集」をクリックします。 2.管理者は「承認(完了)」や「却下」を含むすべてのステータスに遷移できるようにすべてに☑を付けます。 Redmineワークフローの「ステータスの遷移」 3.①ロールで「開発者」②トラッカーで「サポート」を選択し、「編集」をクリックします。 4.開発者は「承認(完了)」や「却下」を行えないようにするため、該当のマス目の☑を外します。 Redmineワークフローの「ステータスの遷移」
ステータスの見え方:

管理者ロールのユーザーには、「却下」、「承認(完了)」を含むすべてのステータスが表示されます。一方、開発者ロールのユーザーには、「却下」や「承認(完了)」は表示されません。

Redmineワークフローの「ステータスの遷移」設定によるステータスの見え方

「フィールドに対する権限」の設定について

「フィールドに対する権限」では、ステータスごとにフィールドの入力を「必須」か「読み取り専用」に設定します。例えば、以下のように設定することができます。

  • バグチケットの「優先度」は、開発者ロールのユーザーは読み取り専用
  • タスクチケットの「担当者」は、すべてのユーザーで「新規」では入力は任意、「進行中」以降は必須

設定手順と設定の見方

1.「管理」>「ワークフロー」の「フィールドに対する権限」タブをクリックします。

2.①「ロール」と②「トラッカー」を選択してから、③「編集」ボタンをクリックします。

Redmineワークフローの「フィールドに対する権限」

↑の画面では、「開発者」ロールのユーザーが、「バグ」トラッカーのチケットに対してフィールドに対する権限を設定しています。

3.選択したロールのユーザーが、選択したトラッカーのフィールドを、ステータスごとに「必須」にするか、「読み取り専用」にするかを選択します。

Redmineワークフローの「フィールドに対する権限」

↑の画面では、「開発者」ロールのユーザーが「バグ」チケットの「優先度」をすべてのステータスで「読み取り専用」にしています。この設定により、開発者ロールのユーザーは「優先度」を更新することができなくなります。「題名」等デフォルトで必須入力になっているフィールドを除き、何も選択されていないフィールドの入力は「任意」になります。

4.設定が完了したら「保存」をクリックして、設定を更新します。

Redmineワークフローの「フィールドに対する権限」

※システム管理者ユーザーに適用される「フィールドに対する権限」について

システム管理者ユーザーは、所属プロジェクトで選択されているロールとは無関係に、全ロールの中でもっとも緩い制約が適用されます。例えば、あるプロジェクトに「管理者」ロールでアサインされていて、「管理者」はあるフィールドが「必須」に設定されていても、「必須」に設定されていないロールが一つでもあれば、システム管理者に対しては必須入力になりません。

「フィールドに対する権限」の設定例

フィールドに対する権限の設定例をご紹介します。

例1:タスクチケットの「担当者」を「進行中」以降のステータスで必須にする

設定内容のイメージ:

Redmineワークフローの「フィールドに対する権限」の設定イメージ

タスクを管理する上で、担当者を必須にしておくと、誰がタスクに対して動くべきなのかを明確にすることができます。チケット作成直後の段階では担当者がアサインされていないことも考えられますが、着手してからは必ず担当者を設定できるはずなので、ステータスが「進行中」・「終了」の場合のみ、担当者を「必須」にします。

設定手順:
1.①ロールで「すべて」、②トラッカーで「タスク」を選択し、「編集」をクリックします。 2.③「担当者」の「進行中」、「終了」の欄を「必須」に設定します。 Redmineワークフローの「フィールドに対する権限」
フィールドの見え方:

すべてのユーザーでタスクチケットを「新規」以外のステータスにした場合、「担当者」に必須を表す「*」が付き、入力しないで編集を完了しようとすると、「担当者を入力してください」というメッセージが表示され、担当者を入力しないとチケットの編集が完了できなくなります。

Redmineワークフローの「フィールドに対する権限」設定によるフィールドの見え方

例2:カスタムフィールドの値を管理者は必須、開発者は読み取り専用にする

設定内容のイメージ:

Redmineワークフローの「フィールドに対する権限」の設定イメージ

「サポート」チケットで、「却下」のステータスになる場合は、管理者のレビューの結果、何かしらの指摘事項がある場合を想定します。管理者は「却下」のステータスの場合に、必ず「指摘事項」(カスタムフィールドとして独自に用意)を入力するように「必須」に設定して入力漏れを防ぎます。一方、開発者は、「指摘事項」を誤って編集できないようにすべてのステータスで「読み取り専用」にします。

設定手順:
1.①ロールで「管理者」、②トラッカーで「サポート」を選択し、「編集」をクリックします。 2.「指摘事項」に対して、③「却下」の時のみ「必須」に設定します。 Redmineワークフローの「フィールドに対する権限」 3.①ロールで「開発者」、②トラッカーで「サポート」を選択し、「編集」をクリックします。 4.「指摘事項」対して、③すべてのステータスで「読み取り専用」に設定します。 Redmineワークフローの「フィールドに対する権限」
フィールドの見え方:

管理者ロールのユーザーが、「却下」のステータスにした場合、「指摘事項」に必須を表す「*」が付き、入力しないで編集を完了しようとすると、「指摘事項を入力してください」というメッセージが表示され、「指摘事項」を入力しないとチケットの編集が完了できなくなります。

一方、開発者ロールのユーザーは、「指摘事項」は閲覧のみ可能なため、チケット編集画面には表示されず、誤って編集してしまうことを防げます。

Redmineワークフローの「フィールドに対する権限」によるフィールドの見え方

まとめ

Redmineの「ワークフロー」についてご紹介しました。ワークフローには、「ステータスの遷移」と「フィールドに対する権限」の2つの機能があり、それぞれ「ロール」と「トラッカー」の組み合わせごとに設定します。うまく設定して、Redmineでの管理をしやすくしていきましょう。

テクマトリックスでは、Redmineについて基礎から学べるセミナーの実施や資料の提供を行っています。ぜひチェックしてみてください。