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 - フィールドが空である

フィールドが空の場合は、スマート値は空の値を返します。

たとえば、ルール監査ログに [説明] フィールドをログとして記録しようとしているとします。このフィールドが (下図のように) 空の場合、監査ログにデータは表示されません。

[説明] フィールドが強調された Jira 課題

根本原因 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}}

フィールドに使用する issuetypefixVersions の大文字、小文字に注意してください。

  • 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}}

更新日時: 2024 年 6 月 7 日

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

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