Automation for Jira - 一部のスマート値に空の値が表示される
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
「Jira 自動化のスマート値」のドキュメンテーションで説明されているように、スマート値を自動化ルールで使用して Jira フィールドを表示または操作できます。
例:
ログ アクションで以下のスマート値を使用する場合は、次のようになります。
{{issue.description}}
ルール監査ログに課題の説明が次のように表示されているはずです。
場合によっては、下の例のように、スマート値が空の値を返すことがあります。
このナレッジ ベース記事の目的は、スマート値が空の値を返す可能性があるすべてのシナリオと、それぞれの見分け方をリストとして表示することです。
ソリューション
根本原因 1 - フィールドが空である
フィールドが空の場合は、スマート値は空の値を返します。
たとえば、ルール監査ログに [説明] フィールドをログとして記録しようとしているとします。このフィールドが (下図のように) 空の場合、監査ログにデータは表示されません。
根本原因 2 - フィールドが非表示に設定されている
「フィールドの動作を指定する」のドキュメンテーションで説明されているように、フィールド設定を特定の課題タイプに関連付けることによって、課題タイプに応じて動作や Jira 課題フィールドを変更できます。フィールドが特定の課題タイプで非表示に設定されている場合、自動化ルールはそのフィールドにアクセスできません。その結果、フィールドが空でなくても、このフィールドへのアクセスに使用されたスマート値は空の値を返します。
プロジェクトの特定の課題タイプに対してフィールドが非表示に設定されているかどうかを確認するには、プロジェクト管理で [プロジェクト設定] > [フィールド] の順にページを移動して、フィールド設定の横にある鉛筆アイコンをクリックしてフィールドを検索します。[表示] というリンクがこのフィールドの横に表示されている場合は、このフィールドが非表示に設定されていることを意味します。下の例では、[ラベル] フィールドが非表示に設定されていることがわかります。
一部のフィールドは、非表示に設定されていると、予期しない動作をすることがあります。たとえば、リンクされた課題のフィールドが非表示に設定されている場合、非表示になるべきであっても、また自動化ルールではアクセスできなくても、このフィールドは引き続き [課題を表示] 画面に表示されます。この動作の詳細については、ナレッジ ベース記事「「課題リンクを削除」アクションでリンクが削除されない」をご確認ください。このため、[課題を表示] 画面にフィールドが表示されているからといって、必ずしもそのフィールドが非表示に設定されていないわけではありません。フィールドが非表示になっているかどうかを確認するには、[フィールド設定] ページでご確認ください。
根本原因 3 - 間違った構文が使用されている
Jira のフィールド値を操作する、またはログとして記録する際には、正確な構文を使用することが極めて重要です。構文の間違い (大文字と小文字の間違いなど) や、使用するカスタム フィールド ID に誤りがある場合、スマート値は空の値を返します。
例 1: Jira システム フィールド
Jira システム フィールドの一部にアクセスするための正しい構文は次のとおりです。
1
2
3
4
5
6
7
8
9
10
11
12
13
{{issue.key}}
{{issue.description}}{
{issue.url}}
{{issue.summary}}
{{issue.assignee.displayName}}
{{issue.reporter.displayName}}
{{issue.status.name}}
{{issue.issuetype.name}}
{{issue.resolution.name}}
{{issue.fixVersions.name}}
{{issue.created}}
{{issue.updated}}
{{issue.project.name}}
フィールドに使用する issuetype や fixVersions の大文字、小文字に注意してください。
issuetype の代わりに issueType を使用すると、スマート値は空の値を返します
FixVersions の代わりに fixversions を使用すると、スマート値は空の値を返します
例 2: カスタム フィールド
カスタム フィールドには、フィールド名または「customField_XXXXX」(XXXXX はフィールドの ID で、カスタム フィールドを設定 / 編集する際に URL から取得可能) という構文を使用してアクセスできます。たとえば、カスタム フィールドの ID が 10500 であるが、ID が 10700 のフィールドがないとします。この場合、次のようになります。
次のスマート値はフィールドの内容を返します。
{{issue.customField_10500}}
次のスマート値は空の値を返します。
{{issue.customField_10700}}
根本原因 4 - 「課題のルックアップ」アクションが使用され、サポートされていないフィールドにスマート値経由でアクセスしている
「Jira スマート値 - 課題」ドキュメンテーションの「lookupIssues」セクションで言及されているように、このアクションでは限られたフィールドのリストのみを使用できます。たとえば、カスタム フィールド、ラベル、コンポーネントはこのアクションではサポートされていません。
その結果、Jira 課題にコンポーネント フィールドなどのサポートされていない値が含まれていたとしても、次のようになります。
以下の構文では空の値が返されます。
{{lookupIssues.components}}
しかし、以下の構文では値が返ります
{{issues.components}}
「lookupIssues」アクションでより多くのフィールドをサポートするためのオープンな機能リクエストがあります。JIRAAUTOSERVER-877 - 「課題のルックアップ」アクション - より多くのフィールドのサポートを追加する
根本原因 5 - 「課題の削除時」トリガーが使用されており、使用できるフィールドが限定されている
「課題の削除時」トリガーを使用する際に、すべての Jira フィールドがスマート値を通じて利用できるわけではありません。
スマート値ではアクセスできないフィールドの例を以下に示します (リストは完全ではない場合がありますのでご注意ください)。
任意のバージョン タイプ フィールド (例: 「修正バージョン/s」)
コンポーネント フィールド
その結果、「課題の削除時」トリガーと一緒に次のスマート値のいずれかを使用すると、空の値が返されます。
{{issue.components.name}}
{{issue.fixVersions.name}}
この制限は、オープンな機能リクエスト JIRAAUTOSERVER-961 で追跡されています - 「課題の削除時」トリガーを使用する際に、すべての Jira フィールドがスマート値を通じて利用できるわけではありません。
根本原因 6 - フィールドがサードパーティのアドオン由来であり、スマート値ではサポートされていない
サードパーティのアドオンからのフィールドのうち、スマート値がサポートされていないタイプもあります。たとえば、ScriptRunner アドオンのスクリプト フィールドはスマート値ではアクセスできず、これらのフィールドは空の値を返します。
ScriptRunner のスクリプト フィールドのサポートを追加するためのオープンな機能リクエストがあります。JIRAAUTOSERVER-620 - スマート値で検出される ScriptRunner スクリプト フィールドのサポートを追加する
根本原因 7 - フィールドは元々空で、自動化ルール内で更新された
自動化ルールがトリガーされ、ルールによって設定されたフィールドが空の場合、この値にアクセスするスマート値は空になります。この動作が発生するのは、ルールがトリガーされたときにスマート値に課題フィールドの内容が反映されるためです。
すべてのフィールドの最新コンテンツにスマート値経由でアクセスできるようにするには (一部のフィールドがルールによって変更される可能性がある場合)、スマート値を使用する前に、「課題データを再取得」アクション (ドキュメンテーション「Jira 自動化のアクション」を参照) を追加する必要があります。このアクションにより、Jira 課題のすべてのフィールドが再読み込み / 更新され、ルールにはすべての Jira フィールドの中で最新の値が含まれるようになります。
下のスクリーンショットにある自動化ルールをご確認ください。
自動化ルールがトリガーされた時点では、[説明] フィールドは空です
[説明] フィールドは自動化ルールによって設定されます
説明フィールドを初めてログに記録すると、ルールに値を追加したにもかかわらず空の値が返されます
2 回目に [説明] フィールドのログを記録すると、空でない値が返されます。これは、「課題データを再取得」アクションを使用したためです
根本原因 8 - ルールがアセット (以前のインサイト) のフィールドによる属性にアクセスしようとしている
[アセット/インサイト] フィールドのサポートは、現在 Jira Server /Data Center の自動化に限定されています。
その結果、次の例のような構文を使用してフィールド属性にアクセスしようとすると、空の値が返されます。
例 1
issue.InsightField.<attribute>
例 2
issue.InsightField.object.<attribute>
この制限は、オープンな機能リクエストで追跡されています。 JIRAAUTOSERVER-313 - スマート値によるすべてのインサイト属性へのアクセスをサポートします 情報の収集
根本原因 9 - ルールがブランチ内で作成された変数にアクセスしようとしている
ルールのブランチ内で作成された変数は、ブランチ外ではアクセスできません。その結果、スマート値を介してブランチ外のこの変数にアクセスを試みた場合、スマート値は空の値を返します。
この制限は、オープンな機能リクエスト JIRAAUTOSERVER-985 で追跡されています - 自動化: ブロック外で変数を使用する機能 - if/else またはブランチブロック内で作成された変数はメイン ブランチで更新されません 情報の収集
根本原因 10 - ルールがスマート値「webhookData.issues」にアクセスしようとしている
ナレッジ ベース記事「Automation for Jira での受信 Webhook データの処理」に記載されているように、webhookData
スマート値を使用して受信 Webhook ペイロードからの情報を取得できます。
Webhook ペイロードにパラメーターとして issues
が含まれている場合、このパラメーターの内容は webhookData
スマート値から削除され、代わりにissues
スマート値に移動することにご注意ください。
その結果、以下の式は常に空の出力を返します。
{{webhookData.issues}}
例
次の受信 Webhook ペイロードの例を見てみましょう。
1
2
3
4
5
6
{
"issues": [
"GRD-4000"
],
"data": {"releaseVersion":"5.3.2"}
}
そのような場合は、次の操作を行います。
残りのデータは
issues
スマート値に含まれ、以下の構文を使用してアクセスできます。{{issues}}
{{issues.key}}
{{issues.summary}}
etc...
残りのデータは
webhookData
スマート値に含まれ、以下の構文を使用してアクセスされます。{{webhookData}}
上記の式を使用すると、以下の出力が得られます。
{"releaseVersion":"5.3.2"}
次の構文を使用しても何も返されません。
{{webhookData.issues}}
この内容はお役に立ちましたか?