高度な課題ワークフローの設定

 

このページでは、Jira ワークフローでのトランジションの高度な設定について説明します。ワークフローの基本については、「ワークフローで作業する」を参照してください。

高度なワークフローについての他のトピックをこちらでご確認ください。

Jira 管理者は、ワークフロー トランジションの次の側面を制御できます。

  • トリガー – Bitbucket など、接続済みの開発ツールで特定のイベントが生じたときに Jira 課題をトランジションします。

  • 条件 – トランジションがユーザーによって実行されるべきかどうかを検査します。

  • バリデーター – トランジションが実行される前にトランジションに対する入力 (ユーザーによる入力など) が有効かどうかを検査します。

  • 事後操作 – トランジションの実行後に追加処理を実行します。

  • プロパティ – キー値のペアで、トランジションをさらにカスタマイズするために使用できます。

  • トランジションの表示方法

  • グローバルトランジション

トリガー

Jira 管理者は、リンク済みの開発ツール内のイベントに応答するトリガーを Jira ワークフローに設定できます。これにより、開発ツールと Jira ワークフローを設定できるため、たとえば、開発者がブランチを作成して Bitbucket の課題で作業を開始すると、課題は自動的にオープンから進行中にトランジションします。

トリガーの設定

トランジションのトリガーの表示または設定や、トランジションを含むワークフローの編集を行うには、トランジションを選択してから、トランジションのプロパティパネルでトリガーをクリックします。

トリガーをトランジションに追加する方法

  1. > [課題] の順に選択します。

  2. [ワークフロー] をクリックしてから、関連するワークフローの [編集] をクリックします。

  3. ダイアグラム モードでは、トランジションの矢印を選択します。テキスト モードでは、[トランジション (id)] 列からトランジションの名前を選択します。

  4. ダイアグラム モードでは、プロパティ パネルで [トリガー] をクリックして、対象のトランジション用に構成されているトリガーを表示します。テキスト モードでは、[トリガー] タブを選択します。

  5. トリガータブでトリガーの追加をクリックして、トリガーを設定します。

詳細については、ワークフローのトリガーの設定をチェックしてください。

条件

条件は、トランジションがユーザーによって実行されるべきかどうかを制御します。たとえば、次のように条件を使用できます。

  • 報告者にのみトランジションの実行を許可する

  • 特定の権限を持つユーザにのみトランジションの実行が許可されている

  • コードがこの課題に対してコミットされた場合、またはコミットされなかった場合にのみ実行を許可する

条件が満たされない場合、「課題の表示」ページのトランジション ボタンが表示されず、トランジションを実行できません。

条件はトランジション画面でユーザーから収集した入力パラメーターを検証できません。これを実行するには、バリデーターを使用する必要があります。

任意の条件

Jira には、トランジションに追加可能な任意の条件がいくつかあります。

条件

説明

常に False 条件

この条件は常に失敗します。

承認されるまでトランジションをブロック

保留中の承認がある場合に、課題のトランジションをブロックする条件です。

数値カスタム フィールドの比較

指定した数値カスタム フィールドと指定した値の比較結果が True の場合にトランジションを許可する条件です。

ユーザーに非表示条件

この条件は、トランジションをユーザーから隠します。トランジションはワークフロー関数または REST からのみトリガー可能です。

担当者のみ条件

この条件は、担当者にのみトランジションの実行を許可します。

報告者のみ条件

この条件は、報告者にのみトランジションの実行を許可します。

権限条件

この条件は、特定の権限を持つユーザにのみトランジションの実行を許可します。

前のステータス条件

この条件は、課題が指定されたステータスでトランジションされたかどうかを確認します。

割り当てからの分離条件

この条件は、ユーザーが課題のトランジションをすでに完了している場合、その課題をトランジションできないようにします。

サブタスクに応じたブロック条件

この条件は、サブタスクのステータスに応じて親課題のトランジションをブロックします。

任意のグループのユーザー

この条件は、特定のグループのユーザーにのみトランジションの実行を許可します。

任意のプロジェクト ロールのユーザー

この条件は、特定のプロジェクト ロールのユーザーにのみトランジションの実行を許可します。

カスタム フィールド内のユーザー

特定のカスタム フィールド内のユーザーにのみトランジションの実行を許可します。

グループ内のユーザー

この条件は、特定のグループのユーザーにのみトランジションの実行を許可します。

グループ カスタム フィールドのユーザー

この条件は、カスタム フィールドで指定されたグループのユーザーにのみトランジションの実行を許可します。

プロジェクト ロール内のユーザー

この条件は、特定のプロジェクト ロールのユーザーにのみトランジションの実行を許可します。

値フィールド

フィールドの値が定数値と等しいか、フィールドに値が設定されている場合にトランジションの実行を許可します。

条件の追加

トランジションに条件を追加して、トランジションを含むワークフローを編集するには、トランジションを選択してから、トランジションのプロパティパネルで条件をクリックします。

条件をトランジションに追加する方法

  1. > [課題] の順に選択します。

  2. [ワークフロー] を選択します。

  3. [その他] () > 関連ワークフローの横にある [編集] の順に選択します。

  4. ダイアグラム モードでは、トランジションの矢印を選択します。テキスト モードでは、トランジションの名前を [トランジション (id)] 列から選択します。

  5. ダイアグラム モードでは、プロパティ パネルで [条件] をクリックして、対象のトランジションの構成済みトリガーを表示します。テキスト モードでは、[条件] タブを選択します。

[条件を追加] をクリックすると、使用可能な条件から条件を選択して、その条件に必要なパラメーターを設定できます。追加の条件はインストール済みのプラグインから利用できる場合があります。または、プラグイン システムを使用して独自の条件を作成できます。詳細については、「ワークフロー プラグイン モジュール」を参照してください。

条件のグループ化

条件をグループ化し、入れ子にすることで、複雑な条件を作成できます。どのような条件でも、その条件の「グループ化された条件を追加」アイコンをクリックすることによってグループ化できます。これで、上記で説明した新しいグループにさらに条件を追加できます。

グループの条件の適用方法のロジックを、[すべて] または [いずれか] を選択して切り替えることができます。

バリデーター

バリデーターは、トランジションの実行に、トランジションへの入力が有効であることを確認します。入力には、トランジション画面でユーザーから収集した入力が含まれます。 

検証が失敗した場合、課題はトランジションの目的のステータスに進まず、トランジションの 事後操作は実行されません。 

バリデーターの追加

トランジションにバリデーターを追加するには、トランジションが含まれるワークフローを編集して、トランジションを選択したあと、トランジションのプロパティ パネルで バリデーター をクリックします

トランジションにバリデーターを追加する方法

  1. > [課題] の順に選択します。

  2. [ワークフロー] をクリックしてから、関連するワークフローの [編集] をクリックします。

  3. ダイアグラム モードでは、トランジションの矢印を選択します。テキスト モードでは、トランジションの名前を [トランジション (id)] 列から選択します。

  4. ダイアグラム モードでは、プロパティ パネルで [バリデーター] をクリックして、対象のトランジションの構成済みトリガーを表示します。テキスト モードでは、[バリデーター] タブを選択します。

[バリデーターの追加] をクリックすると、利用可能なバリデーターを選択してバリデーターに必要なパラメーターを設定できます。

事後操作

事後操作では、トランジション実行後に必要となる、以下のような追加の処理を実行します。

  • 課題フィールドの更新

  • 課題の変更履歴生成

  • 課題へのコメント追加

  • メール通知をトリガーするイベントの生成

基本的な事後操作

すべての Jira のトランジションで、次のような基本的な事後操作があり、この順番で実行されます。

  1. 課題のステータスをターゲット ワークフロー ステータスのリンクされたステータスに設定します。

  2. トランジション中にコメントが入力された場合、そのコメントを課題に追加します。

  3. 課題の変更履歴を更新し、データベースに課題を格納します。

  4. 課題のインデックス再作成を行い、インデックスとデータベースを同期させます。

  5. リスナーが処理できる汎用イベントを発生させます。 

    この事後操作を編集または削除しないでくださいこの重要な事後操作を変更すると、自動化や Marketplace アドオンで意図しない動作が発生します。トランジションで発生する事後操作イベントをカスタマイズする場合は、カスタム事後操作を追加して既定イベントはそのままにすることを検討します。

これらの基本的な事後操作をトランジションから削除したり、並べ替えたりすることはできません。ただし、他の事後操作を間に挿入することはできます。

イベントを発生させる事後操作が、期待と異なる動作をする場合があります。Jira では、事後操作のシーケンスが終了するまで、通知リスナーの呼び出しを行いません。そのため、イベントは期待した順序で発生しますが、通知はトランジションの終了までトリガーされません。

オプションの事後操作

Jira には、トランジションに追加可能な事後操作がいくつか含まれています。

オプションの事後操作

説明

現在のユーザーへの割り当て

トランジションを実行しているユーザーに課題を割り当てます。

ユーザーが割り当て可能なユーザー権限を持っていない場合、この事後操作は無視されます。トランジションを実行する前にこの権限をログイン済みユーザーに与えるには、条件を作成します。

開発リーダーへの割り当て

プロジェクト リーダー、またはコンポーネント リーダーが存在する場合は、コンポーネント リーダーに課題を割り当てます。

報告者への割り当て

課題を作成したユーザーに課題を割り当てます。

フィールド値のクリア

特定のフィールドの値をクリアします。

他のフィールドの値をコピー

フィールド内の値を同じ課題内の別のフィールドまたは親課題からサブタスクにコピーします。

Perforce のジョブ機能を作成

ワークフローのトランジション完了後、(必要に応じて)Perforce のジョブを作成します。

ユーザーのプロジェクト ロールに基づいた課題セキュリティ レベルの設定

現在のユーザーが指定されたプロジェクト ロールに存在する場合、課題のセキュリティ レベルを特定のレベルに設定します。

Webhook をトリガーする

ワークフローのトランジション完了後、指定された Webhook をトリガーします。

事後操作の追加時に、Webhook を指定するよう求められます。ここで指定する Webhook は Jira で定義ずみである必要があります(Webhook の管理を参照)。

課題のカスタム フィールドの更新

課題のカスタム フィールドを所定の値に更新します。

課題フィールドの更新

課題のフィールドの一つを指定された値に更新します。更新可能なフィールドは、以下のとおりです。

  • 担当者

  • 説明

  • 環境

  • 優先度

  • ソリューション

  • 要約

  • 初期見積 (Original Estimate)

  • 残余見積 (Remaining Estimate)

この事後操作はカスタム フィールドの更新ができません。また、他のオプションの事後操作の後に配置する必要があります。

追加の事後操作はインストール済みのプラグインから利用できる場合もあります。または、プラグイン システムを使用して独自の事後操作を作成できます。詳細については、「ワークフロー プラグイン モジュール」を参照してください。

事後操作の追加

トランジションに事後操作を追加するには、対象のトランジションが含まれるワークフローを編集し、そのトランジションを選択してから、トランジションのプロパティ パネルで [事後操作] をクリックします。

トランジションに事後操作を追加する方法

  1. > [課題] の順に選択します。

  2. [ワークフロー] をクリックしてから、関連するワークフローの [編集] をクリックします。

  3. トランジションを選択します。

    • ダイアグラム モードでは、トランジションの矢印を選択します。

    • テキスト モードでは、トランジションの名前を [トランジション (id)] 列から選択します。

  4. 事後操作タブを開きます。

    • ダイアグラム モードでは、プロパティ パネルで [事後操作] をクリックして、対象のトランジションの構成済みトリガーを表示します。

    • テキスト モードでは、[事後操作] タブを選択します。

  5. [事後操作の追加] をクリックします。

  6. 事後操作を追加し、[下書きの公開] を選択して変更を完了します。

[事後操作の追加] をクリックすると、利用可能な事後操作から事後操作を選択して必要なパラメーターを設定できます。事後操作の編集や削除を行ったり、実行順序を変更したりするオプションは、タブの右側にあります (カーソルを合わせると表示されます)。

事後操作の追加方法を示す画像。

最初のトランジションでの事後操作の使用

課題が作成されたとき、特定のフィールドの値を設定するなどの処理タスクを実行する必要がある場合、ワークフローの最初のトランジションに事後操作を追加できます。最初のトランジションは、「作成」(空白のワークフローを作成した場合)または「課題の作成」(システム ワークフローを複製した場合)と呼ばれます。

Jira には、ワークフローの最初のトランジションを指定し、この順番で処理される以下の基本的な事後操作が含まれます。

  1. 課題を作成します。

  2. リスナーが処理できるイベントを発生させます。

以下のオプション事後操作は、最初のトランジション用に特別に用意されています。

オプション事後操作(最初のトランジションのみ)

説明

コメント作成

トランジション中にコメントが入力された場合、そのコメントを課題に追加します。

課題ステータスの更新

課題のステータスをターゲット ワークフロー ステータスのリンクされたステータスに設定します。

課題の保存

課題の更新を保存します(変更履歴は作成されません)。

標準のオプション事後操作を最初のトランジションに追加することもできます。"Create" トランジションに追加されたオプション事後操作は、"Create issue originally"事後操作のに配置する必要があります。

必要に応じ、ワークフローの最初のステータスを変更して、別の初回トランジションに設定できます。詳細は、「最初のステータスの構成」を参照してください。

課題を作成する際に [解決状況] フィールドを設定する必要がある場合、"Create the issue"事後操作の後に "Update Issue Field"事後操作を追加し、その後 "Store Issue"事後操作を使用します。"Store Issue"事後操作は、課題作成時に [解決状況] フィールドを設定するのに便利です。

ただし、課題の保存事後操作には以下のような制限があるため、必要な場合にのみ使用します。

  • 変更履歴を生成しない

  • 課題と 1 対多の関係を持つフィールド(たとえば、「バージョン」や「コンポーネント」)を保持できない

事後操作によるフィールド設定

特定のトランジションが実行されたあと、課題フィールドの値を設定するには、「課題フィールドの更新」事後操作を使用します。

たとえば、課題を [クローズ] ステータスに移動したときに [解決状況] フィールドを自動的に設定するトランジションが必要な場合があります。

例:事後操作による解決状況フィールド設定

  1. トランジションを持つワークフローを編集して、ステータスを他のステータスにドラッグし、新しいトランジションを作成します。

  2. [なし] または、[解決状況] フィールドを含まない画面を選択します。

  3. 新しい [課題フィールドの更新]事後操作を追加し、課題フィールドおよびフィールド値のリストから解決状況を選択します

[解決状況] フィールドをクリアするトランジションを作成するには、上記の "Update Issue Field""事後操作をトランジションに追加する手順に従います。ただし、[フィールド値] 一覧から [なし] を選択します。

このトランジションの事後操作一覧には、次のステートメントが含まれます。

  • 課題の解決状況クリアされます

これらのトランジションが実行されるたびに、課題の解決状況は事後設定で指定されたとおりに、自動的に設定されたり、クリアされたりします。

事後操作によるメール通知の送信

"Fire an event that can be processed by the listeners"事後操作を使用して、組み込みの Jira イベントである "Generic Event" を発生させます。このイベントは特定のトランジションが実行された後にメール通知の送信をトリガーするために使用できます。

または、このトランジション用に作成したカスタム イベントを発生させることもできます。

トランジションが実行されると、Jira は以下の動作を行います。

  • 課題のプロジェクトに関連付けられた通知スキームを確認し、発生したイベントに関連付けられたユーザーを特定します。

  • 各ユーザーにメール通知を送信します。

例:事後操作によって一般イベントを実行し、メール通知を送信する

  1. トランジションを作成または編集します。

  2. 対象のトランジションの [事後操作] タブをクリックし、"Fire an event that can be processed by the listeners"事後操作を編集します。

  3. イベント一覧から [Generic Event] を選択します。

事後操作を使用して Team フィールドをアップデートする

高度な課題ワークフローとともに Team フィールドを使用する場合は、チーム名ではなく Team UUID 値を使用する必要があります。 

Team フィールドをアップデートする事後操作を追加するには、次の手順に従います。

  1. [事後操作の追加] 画面から [Update Issue Custom Field (課題のカスタム フィールドをアップデート)] を選択します。

  2. 追加 を選択します 。

  3. [課題のカスタム フィールド] ドロップダウンから、[Team] を選択します。

  4. [カスタム フィールド値] には、Team UUID を入力する必要があります。

Team UUID を取得するには、次の手順に従います。

  1. チーム プロファイル ページに移動します。

  2. URL から Team UUID の値をコピーします。例: https://yoursite.atlassian.net/people/team/[TeamUUID]

  3. Team UUID を [カスタム フィールド値] に貼り付けます。

トランジション プロパティ

プロパティはキー値のペアで、トランジションをさらにカスタマイズするために使用します。たとえば、トランジション プロパティはコピーしたシステム ワークフローを拡張して、言語の翻訳を可能にします。

 トランジションのプロパティを表示、編集するには、

  1. ダイヤグラムからトランジションを選択します。

  2. [プロパティ] をクリックします。

  3. 次のいずれかを実行します。

    • トランジションに新しいプロパティを追加する。

    • プロパティの右側にあるアイコンをクリックして、プロパティを削除する。 

重要

このページではトランジションのプロパティを編集できません。プロパティのキーまたは値 (あるいはその両方) を変更するには、まず変更したいプロパティを削除して、更新された新しいプロパティを追加する必要があります。

「テキスト」モードでは、トランジションの編集もできます。

トランジション プロパティを使用して、トランジションに制限を実装することが可能です。詳細については、「ワークフロー プロパティ」を参照してください。

グローバルトランジション

グローバル トランジションにより、ワークフローの任意のステータスを特定のステータスにトランジションできます。

グローバル トランジションを追加するには、

  • (既存のステータスを追加して)新しいステータスを作成する際に、 グローバル トランジションをステータスに追加する オプションをチェックします。

  • ステータスを選択し、ステータスのプロパティ パネルで すべてのステータスがこのステータスにトランジションすることを許可する をチェックします。

同じターゲット ステップをポイントする 2 つのグローバル トランジションを作成するには、

  1. ワークフロー デザイナーでステップを選択して、すべてのステータスがこのステータスにトランジションすることを許可するを選択し、最初のグローバル トランジションを標準として作成します。

  2. 現在そのステップをポイントするグローバル トランジションを持たない 他の ステップで、2 番目のグローバル トランジションを作成します。

  3. 次に、作成した 2 番目のグローバル トランジションをテキスト エディターから選択します。

  4. 編集 をクリックし、ターゲット ステップを最初のグローバル トランジションで選択したのと同じステップに変更します。 

  5. 完了したら、更新をクリックします。 

Jira を使いこなす

Atlassian Marketplace の人気のあるワークフロー アプリを使用することで、さらに多くのワークフロー構成方法を利用できるようになります。

その他のヘルプ