Automation for Jira - "リクエスト参加者" フィールドまたはマルチ ユーザー ピッカー フィールドをその他のフィールドのコンテンツから更新する方法
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
Jira Cloud のソリューションをお探しの場合は、代わりにナレッジ ベース記事「Automation for Jira を使用してリクエスト参加者を追加/更新/削除する方法」をご参照ください。
要約
"リクエスト参加者" フィールドは、Jira Service Management が提供するカスタム フィールドです。このフィールドでは複数のユーザーを指定できます。Jira の "複数ユーザー ピッカー" フィールドに似ています。
"リクエスト参加者" フィールド (および任意の "複数ユーザー ピッカー フィールド) をその他のフィールドの内容に基づいて、かつその内容を上書きせずに更新する自動化ルールを設定するのは非常に難しい場合があります。
このナレッジ記事の目的は、さまざまなシナリオをベースに、この目的を達成する自動化ルールやいくつかの例を提供することです。
"リクエスト参加者" フィールドではなく "マルチ ユーザー ピッカー" フィールドを更新する自動化ルールを作成しようとしている場合も、このナレッジ記事で説明されているルールを利用できます。どちらのタイプのフィールドもまったく同じ方法で更新できるからです。
しなければならないことは、以下のコード ブロックの「リクエスト参加者」を "複数ユーザー ピッカー" フィールドの名前に置き換えるだけです。
環境
- Jira Server / Data Center 8.0.0 以降のバージョン
- Automation for Jira 7.4.0 以降のバージョン
シナリオ
シナリオ一覧:
- シナリオ 1: 特定のユーザーを使用して "リクエスト参加者" フィールドにユーザーを追加する
- シナリオ 2: "単一ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する
- シナリオ 3: "複数ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する
- シナリオ 4: "複数ユーザー ピッカー" フィールドと "単一ユーザー ピッカー" フィールドを組み合わせて使用し、"リクエスト参加者" フィールドにユーザーを追加する
- シナリオ 5 - "課題の参加者数" タイプのフィールドから "リクエスト参加者" フィールドにユーザーを追加する
- Scenario 6 - Add users to the Request Participants field from a comments where users were mentioned
- シナリオ 7 - "リクエスト参加者" フィールドからユーザーを削除する
シナリオ 1: 特定のユーザーを使用して "リクエスト参加者" フィールドにユーザーを追加する
特定のユーザーを追加して "リクエスト参加者" フィールドを更新することだけが必要な場合、できることは次のとおりです。
- [課題を編集] アクションを使用します。
- [設定するフィールドを選択...] で [リクエスト参加者] を選択します。
Make sure to include the smart value below, otherwise any existing user in the Request Participants field will be deleted by this action. You can do it by copying/pasting the content below and taping the enter key. The text will be automatically detected as a Smart Value:
{{issue.Request Participants}}
- 次に、追加するユーザーのリストを "リクエスト参加者" フィールドに入力します。
特定の 2 ユーザー ("customer 1"、"customer 2") をフィールドに追加しようとしている場合、自動化ルールは下記のスクリーンショットのようになります。
シナリオ 2: "単一ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する
このユースケースの場合にできることは次のとおりです。
- [課題を編集] アクションを使用します。
- [設定するフィールドを選択...] で [リクエスト参加者] を選択します。
Make sure to include the smart value below, otherwise any existing user in the Request Participants field will be deleted by this action. You can do it by copying/pasting the content below and taping the enter key. The text will be automatically detected as a Smart Value:
{{issue.Request Participants}}
次に、下記のスマート値の構文を使用して、ユーザーをコピーする "単一ユーザー ピッカー" フィールドのリストを "リクエスト参加者" フィールドに追加します ("Field Name" を "ユーザー ピッカー" フィールドの実際の名前に置き換えてください)。
{{issue.Field Name}}
2 つの "単一ユーザー ピッカー" フィールドからユーザーをコピーしようとしていて、そのフィールドの名前が "Single User Picker" と "Single User Picker 2" である場合、自動化ルールは下記のスクリーンショットのルールのようになります。
シナリオ 3: "複数ユーザー ピッカー" フィールドを使用して "リクエスト参加者" フィールドにユーザーを追加する
ソリューション 1
It is important to note that, when using Multi User Picker fields, the solution provide above for Single User Picker field will not work. The solution that needs to be implemented for this scenario is different and described below.
このソリューションの内容は、"複数ユーザー ピッカー" フィールドと同じ数の "課題を編集" ブロックを "リクエスト参加者" フィールドに追加することです。各ブロックには、[Copy from current issue (現在の課題からコピー)] オプションを使用し、下記のスクリーンショットに示すように、[既存の値に追加] オプションにチェックマークを付けます。
さらに、それぞれの "課題を編集" ブロックの間に "課題データを再取得" ブロックを追加する必要があります。このアクションにより、自動化ルールは課題フィールドのデータを再ロードし、再び更新する前に "リクエスト参加者" フィールドの最新の内容を取得するよう強制されます。"課題データを再取得" ブロックが追加されていない場合、それぞれの "課題を編集" ブロックは前の "課題を編集" ブロックで行った変更を上書きします。
2 つの "複数ユーザー ピッカー" フィールドからユーザーをコピーしようとしている場合、自動化ルールは下記のスクリーンショットのようになります。
ソリューション 2
別の選択肢では、"課題を編集" ブロックを 1 つだけ使用して、[設定するフィールドを選択...] ドロップダウンで "リクエスト参加者" フィールドを選択する代わりに、[追加フィールド] までスクロールして、下記のような JSON 式を使用します。
{
"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 式を使用できます。
{
"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 インスタンスの "単一ユーザー ピッカー" フィールドと "複数ユーザー ピッカー" フィールドの実際の名前と置き換える必要があります。
自動化ルールは、下記のスクリーンショットに示されているようになります。
If you need to completely overwrite the Request Participants field and delete the users that were already in that field, you can use instead the JSON formula below:
シナリオ 5 - "課題の参加者数" タイプのフィールドから "リクエスト参加者" フィールドにユーザーを追加する
If you need update the Request Participants field (and any type of multi user picker fields) by adding users coming from a field of type Participants of an issue (which comes from the Atlassian Lab add-on Toolkit plugin for Jira), you need to follow the steps listed below:
- "課題の参加者数" タイプのカスタム フィールドの ID を特定するには、ページの [⚙] > [課題] > [カスタム フィールド] の順に移動してフィールドを [編集] し、ブラウザに表示された URL から ID を取得します
自動化ルールで、[課題を編集] ブロックを追加して [追加フィールド] までスクロールし、「XXXXX」を "課題の参加者数" タイプのフィールドの ID に置き換えた後、以下のような JSON 式を使用します
{ "update": { "Request participants": [ {{#issue.customfield_XXXXX.substringBefore("(")}}{"add": {"name":"{{.}}"}}{{^last}},{{/}}{{/}} ] } }
The field of type Participants of an issue if a calculated field which comes from an add-on, and is therefore completely different from the Request Participants field and should not be confused with it.
If you need to completely overwrite the Request Participants field and delete the users that were already in that field, you can use instead the JSON formula below:
Scenario 6 - Add users to the Request Participants field from a comments where users were mentioned
If it possible update the Request Participants field (and any type of multi user picker fields) by adding users that were mentioned in a comment.
Let's assume that the users will be mentioned in a comment, and that the users will be separated by either the "-", "," or ";" character, as shown in the example of Jira comment below:
[~julien1]-[~julien2];[~julien3],[~julien4]
It is possible to use the split() function by listing in it all the delimiters that users might use when they mention several users.
If the users will be separated by either the "-", "," or ";" characters, then you can use split("[-,;]") inside the JSON formula, as shown in the steps below:
- [課題を編集] アクションを追加します
[追加フィールド] までスクロールして、次の JSON 式を使用します。
{ "update": { "Request Participants": [ {{#issue.comment.last.body.split("[-,;]").substringAfterLast("[~").substringBeforeLast("]")}}{"add": {"name":"{{.}}"}}{{^last}},{{/}}{{/}} ] } }
Note that is users will be separated by a line break, then you will need to replace the split function in the example above with split("\n").
シナリオ 7 - "リクエスト参加者" フィールドからユーザーを削除する
「更新」 → JSON 形式で「削除」を使用すると、"リクエスト参加者" フィールド (と、あらゆる種類の "マルチ ユーザー ピッカー" フィールド) からユーザーを削除できます。
"リクエスト参加者" フィールドから、"担当者" フィールドのユーザーを削除しようとしていると仮定します。これを行うには、次を実行できます。
- [課題を編集] アクションを追加します
[追加フィールド] までスクロールして、次の JSON 式を使用します。
{ "update": { "Request Participants": [ {"remove" : {"name": "{{issue.assignee.name}}"}} ] } }