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") をフィールドに追加しようとしている場合、自動化ルールは下記のスクリーンショットのようになります。
シナリオ 2: "単一ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する
このユースケースの場合にできることは次のとおりです。
[課題を編集] アクションを使用します。
[設定するフィールドを選択...] で [リクエスト参加者] を選択します。
下記のスマート値を必ず含めます。含まれていないと、"リクエスト参加者" フィールドのすべての既存ユーザーがこのアクションによって削除されます。下記の内容をコピーして貼り付け、Enter キーをタップすれば含めることができます。テキストはスマート値として自動で検出されます。
{{issue.Request Participants}}
次に、スマート値の構文
{{issue.Field Name}}
を使用して、ユーザーをコピーする "単一ユーザー ピッカー" フィールドのリストを "リクエスト参加者" フィールドに追加します ("Field Name" は "ユーザー ピッカー" フィールドの実際の名前に置き換えてください)。
2 つの "単一ユーザー ピッカー" フィールドからユーザーをコピーしようとしていて、そのフィールドの名前が "Single User Picker" と "Single User Picker 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 Labs の Toolkit 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}}"}} ] } }
この内容はお役に立ちましたか?