Automation for Jira - "リクエスト参加者" フィールドまたはマルチ ユーザー ピッカー フィールドをその他のフィールドのコンテンツから更新する方法

プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム

この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。

*Fisheye および Crucible は除く

要約

"リクエスト参加者" フィールドは、Jira Service Management が提供するカスタム フィールドです。このフィールドでは複数のユーザーを指定できます。Jira の "複数ユーザー ピッカー" フィールドに似ています。

"リクエスト参加者" フィールド (および任意の "複数ユーザー ピッカー" フィールド) をその他のフィールドの内容に基づいて、かつその内容を上書きせずに更新する自動化ルールを設定するのは非常に難しい場合があります。

このナレッジ記事では、この目標を達成するために、さまざまなシナリオに応じた自動化ルールの例をいくつかご紹介します。

"リクエスト参加者" フィールドではなく "マルチ ユーザー ピッカー" フィールドを更新する自動化ルールを作成しようとしている場合も、このナレッジ記事で説明されているルールを利用できます。どちらのタイプのフィールドもまったく同じ方法で更新できるからです。

しなければならないことは、以下のコード ブロックの "リクエスト参加者" を "複数ユーザー ピッカー" フィールドの名前に置き換えるだけです。

ソリューション

シナリオ

シナリオ一覧:

シナリオ 1: 特定のユーザーを使用して "リクエスト参加者" フィールドにユーザーを追加する

特定のユーザーを追加して "リクエスト参加者" フィールドを更新することだけが必要な場合、できることは次のとおりです。

  • [課題を編集] アクションを使用します。

  • [設定するフィールドを選択...] で [リクエスト参加者] を選択します。

  • 下記のスマート値を必ず含めます。含まれていないと、"リクエスト参加者" フィールドのすべての既存ユーザーがこのアクションによって削除されます。下記の内容をコピーして貼り付け、Enter キーをタップすれば含めることができます。テキストはスマート値として自動で検出されます。

    1 {{issue.Request Participants}}
  • 次に、追加するユーザーのリストを "リクエスト参加者" フィールドに入力します。

特定の 2 ユーザー ("customer1"、"customer2") をフィールドに追加しようとしている場合、自動化ルールは下記のスクリーンショットのようになります。

シナリオ 1: [課題を編集] アクション

シナリオ 2: "単一ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する

このユースケースの場合にできることは次のとおりです。

  • [課題を編集] アクションを使用します。

  • [設定するフィールドを選択...] で [リクエスト参加者] を選択します。

  • 下記のスマート値を必ず含めます。含まれていないと、"リクエスト参加者" フィールドのすべての既存ユーザーがこのアクションによって削除されます。下記の内容をコピーして貼り付け、Enter キーをタップすれば含めることができます。テキストはスマート値として自動で検出されます。{{issue.Request Participants}}

  • 次に、スマート値の構文 {{issue.Field Name}} を使用して、ユーザーをコピーする "単一ユーザー ピッカー" フィールドのリストを "リクエスト参加者" フィールドに追加します ("Field Name" は "ユーザー ピッカー" フィールドの実際の名前に置き換えてください)。

2 つの "単一ユーザー ピッカー" フィールドからユーザーをコピーしようとしていて、そのフィールドの名前が "Single User Picker" と "Single User Picker 2" である場合、自動化ルールは下記のスクリーンショットのルールのようになります。

シナリオ 2: 自動化ルール

シナリオ 3: "複数ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する

解決策 1

ここで重要なのは、上記の "単一ユーザー ピッカー" フィールドに関する解決策は "複数ユーザー ピッカー" フィールドを使用する際には機能しないということです。このシナリオで実装する必要があるソリューションは異なり、下記で説明します。

このソリューションの内容は、マージする必要がある "複数ユーザー ピッカー" フィールドと同じ数の"課題を編集" ブロックを "リクエスト参加者" フィールドに追加することです。各ブロックでは、[Copy from current issue (現在の課題からコピー)] オプションを使用し、下記のスクリーンショットに示すように、[既存の値に追加] オプションをオンにします。

[既存の値に追加] を選択する

さらに、それぞれの "課題を編集" ブロックの間に "課題データを再取得" ブロックを追加する必要があります。このアクションによって、自動化ルールは "リクエスト参加者" フィールドを再び更新する前に、強制的に課題フィールドのデータを再読み込みして、フィールドの最新の内容を取得します。"課題データを再取得" ブロックが追加されていない場合、それぞれの "課題を編集" ブロックは前の "課題を編集" ブロックで行った変更を上書きします。

2 つの "複数ユーザー ピッカー" フィールドからユーザーをコピーしようとしている場合、自動化ルールは次のスクリーンショットのようになります。

自動化ルールのスクリーンショット

解決策 2

別の選択肢では、"課題を編集" ブロックを 1 つだけ使用して、[設定するフィールドを選択...] ドロップダウンで "リクエスト参加者" フィールドを選択する代わりに、[追加フィールド] までスクロールして、下記のような JSON 式を使用します。

1 2 3 4 5 6 7 8 { "update": { "Request participants": [ {{#issue.Multi user picker list}}{"add": {"name":"{{name}}"}}{{^last}},{{/}}{{/}}, {{#issue.Multi user picker list 2}}{"add": {"name":"{{name}}"}}{{^last}},{{/}}{{/}} ] } }

この JSON 式を機能させるには、"Multi user picker list" と "Multi user picker list 2" を、Jira インスタンスの "複数ユーザー ピッカー" フィールドの実際の名前と置き換える必要があります。

自動化ルールは、下記のスクリーンショットに示されているようになります。

自動化ルールのスクリーンショット

シナリオ 4: "複数ユーザー ピッカー" フィールドと "単一ユーザー ピッカー" フィールドを組み合わせて使用し、"リクエスト参加者" フィールドにユーザーを追加する

"単一ユーザー ピッカー" フィールドと "複数ユーザー ピッカー" フィールドの両方からユーザーを 1 回で (1 ブロックのみを使用して) 組み合わせる必要がある場合、"課題を編集" ブロックを使用し、[追加フィールド] までスクロールして、下記のような JSON 式を使用できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "update": { "Request participants": [ {{#issue.Multi user picker list}}{"add": {"name":"{{name}}"}}{{^last}},{{/}}{{/}}, {{#issue.Multi user picker list 2}}{"add": {"name":"{{name}}"}}{{^last}},{{/}}{{/}}, { "add": {"name":"{{issue.Single User Picker}}"} }, { "add": {"name":"{{issue.Single User Picker 2}}"} } ] } }

この JSON 式を機能させるには、すべてのフィールド名を、Jira インスタンスの "単一ユーザー ピッカー" フィールドと "複数ユーザー ピッカー" フィールドの実際の名前と置き換える必要があります。自動化ルールは、次のスクリーンショットのようになります。

ルールのスクリーンショット

"リクエスト参加者" フィールドを完全に上書きして、そのフィールドにすでに入力されていたユーザーを削除する必要がある場合は、代わりに以下の JSON 式を使用できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "fields": { "Request participants": [ {{#issue.Multi user picker list 1}}{"name":"{{name}}"}{{^last}},{{/}}{{/}}, {{#issue.Multi user picker list 2}}{"name":"{{name}}"}{{^last}},{{/}}{{/}}, { "name": "{{issue.Single User Picker}}" }, { "name": "{{issue.Single User Picker 2}}" } ] } }

シナリオ 5 - "課題の参加者数" タイプのフィールドから "リクエスト参加者" フィールドにユーザーを追加する

"課題の参加者数" タイプのフィールド (Atlassian LabsToolkit plugin for Jira アドオンから取得) からユーザーを追加して "リクエスト参加者" フィールド (と、あらゆる種類の "複数ユーザー ピッカー" フィールド) を更新する必要がある場合は、以下の手順に従う必要があります。

  • "課題の参加者数" タイプのカスタム フィールドの ID を特定するには、

    ページの [⚙] > [課題] > [カスタム フィールド] の順に移動してフィールドを編集し、ブラウザに表示された URL から ID を取得します。

  • 自動化ルールで、[課題を編集] ブロックを追加して [追加フィールド] までスクロールし、「XXXXX」を "課題の参加者数" タイプのフィールドの ID に置き換えた後、以下のような JSON 式を使用します。

    1 2 3 4 5 6 7 { "update": { "Request participants": [ {{#issue.customfield_XXXXX.substringBefore("(")}}{"add":{"name":{{.}}"}}{{^last}},{{/}}{{/}} ] } }

"課題の参加者数" タイプのフィールドはアドオンから取得した計算フィールドであり、したがって "リクエスト参加者" フィールドとはまったく異なるので、混同しないでください。

"リクエスト参加者" フィールドを完全に上書きして、そのフィールドにすでに入力されていたユーザーを削除する必要がある場合は、代わりに以下の JSON 式を使用できます。

1 2 3 4 5 6 7 { "fields": { "Request Participants": [ {{#issue.customfield_XXXXX.substringBefore("(")}}{"name":"{{.}}"}{{^last}},{{/}}{{/}} ] } }

シナリオ 6: ユーザーがメンションされたコメントから "リクエスト参加者" フィールドにユーザーを追加する

可能な場合は、コメントでメンションされたユーザーを追加して "リクエスト参加者" フィールド (と、あらゆる種類の "複数ユーザー ピッカー" フィールド) を更新します。

以下の Jira コメントの例のように、ユーザーがコメントでメンションされ、"-"、","、";" のいずれかの文字でユーザーが区切られているとします。

[~julien1]-[~julien2];[~julien3],[~julien4]

split() 関数を使用できます。この関数には、複数のユーザーをメンションする際に使用される区切り文字をすべて指定します。

ユーザーが "-"、","、または ";" のいずれかの文字で区切られている場合は、以下の手順に示すように、JSON 式の中で split("[-,;]") を使用できます。

  • [課題を編集] アクションを追加します

  • [追加フィールド] までスクロールして、次の JSON 式を使用します。

1 2 3 4 5 6 7 8 9 10 { "update": { "Request Participants": [ {{#issue.comment.last.body.split("[-,;]").substringAfterLast("[~").substringBeforeLast("]")}}{"add": {"name":"{{.}}"}}{{^last}},{{/}}{{/}} ] } }

ユーザーが改行で区切られている場合は、上の例の split 関数を split ("\n") に置き換える必要があることにご注意ください。

シナリオ 7 - "リクエスト参加者" フィールドからユーザーを削除する

「更新」 → JSON 形式で「削除」を使用すると、"リクエスト参加者" フィールド (と、あらゆる種類の "マルチ ユーザー ピッカー" フィールド) からユーザーを削除できます。

"リクエスト参加者" フィールドから、"担当者" フィールドのユーザーを削除しようとしていると仮定します。これを行うには、次の手順に従います。

  • [課題を編集] アクションを追加します

  • [追加フィールド] までスクロールして、次の JSON 式を使用します。

    1 2 3 4 5 6 7 8 9 10 { "update": { "Request Participants": [ {"remove" : {"name": "{{issue.assignee.name}}"}} ] } }

更新日時: 2024 年 6 月 13 日

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。