カスタム フィールドをメールに追加する

お困りですか?

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

コミュニティに質問

このチュートリアルでは、一括課題通知にカスタム フィールドを追加する方法について説明します。個別の課題通知にカスタム フィールドを追加する場合、「個別の課題通知へのカスタム フィールドの追加」を参照してください。

このチュートリアルは、高度なユーザー向けの内容を含み、アトラシアン サポートの対象外です。メール通知が基づく、Velocity テンプレートのコードを編集することで、カスタム フィールドを追加できます。

概要

通知は、課題のフィールド (標準のフィールドとカスタム フィールドの両方) についての変更を示します。フィールドの値が変更されなかった場合、通知する情報がないため、そのフィールドは通知に含まれません。通知は変更を伝えることにのみ焦点を当てています。

ここでは、このフィールドが更新されなかった場合も、課題に関する各通知にカスタム フィールドとその値を含める方法を紹介します。これを使用すると、通知される課題についてより正確に説明できます。たとえば、課題のセキュリティ レベルを指定するカスタム フィールドを含めることで、それらを適切に分類したり、その課題に関する通知を非表示にしたりすることができます。 

はじめる前に

  • 課題にカスタム フィールドを追加します。

  • 制限: メールへの課題フィールドの追加は、一括通知ではサポートされていません。カスタム フィールドのみ追加できます。課題フィールドを表示したい場合、これらのフィールドがサポートされる個別の通知に切り替える必要があります。

ステップ 1: カスタム フィールドの ID を探す

ID を使用してメール テンプレートにカスタム フィールドを追加します。カスタム フィールドの URL を調べるか、データベースにクエリを送信することで ID を検索できます。

カスタム フィールドの URL を調べる

  1. [管理] > [課題] に移動し、[カスタム フィールド] ページを開きます。

  2. カスタム フィールドを見つけ、[操作] () をクリックして他のオプションを表示します。

A. ドロップダウン メニューで [設定] アイテムにマウスを合わせます。URL がブラウザのフッターに表示されます。

B. これがカスタム フィールドの ID です。この例では、10108 です。

データベースへのクエリ送信

データベースで以下のクエリを実行します。

SELECT * FROM customfield WHERE cfname LIKE '%mycustomfield%';

mycustomfield がカスタム フィールドの名前です (例: assignee)。 

ステップ 2: Velocity コンテキストへのカスタム フィールドの追加

メール テンプレートにカスタム フィールドを追加する前に、それを Velocity コンテキストで定義する必要があります。これらの手順には、REST API に関する知識が必要な場合があります。問題が発生した場合は、「Jira REST API」を参照してください。

1. 現在定義されているカスタム フィールドを取得

以下のコマンドを使用できます。

curl -D- \
    -u username:password \
    http://@localhost:8080/rest/inform-batchers/1.0/customfields

カスタム フィールドを追加していない場合、以下の例のように、リストが空になるはずです。

    {
        "customFieldIds": []
    }

2. カスタム フィールドを追加

Velocity コンテキストにカスタム フィールドを追加するには、以下のコマンドを使用できます。<ID> はカスタム フィールドの ID に置き換えます。

    curl \
       -D- \
       -u username:password \
       -X POST \
       -H "Content-Type: application/json" \
       http://localhost:8080/rest/inform-batchers/1.0/customfields?id=customfield_<ID>

このコマンドの結果は以下のようになるはずです。

    {
        "customFieldIds": ["customfield_10108"]
    }

カスタム フィールドの削除

このコマンドを使用することで、Velocity コンテキストから任意のカスタム フィールドを削除できます。 

curl \
       -D- \
       -u username:password \
       -X DELETE \
       -H "Content-Type: application/json" \
       http://localhost:8080/rest/inform-batchers/1.0/customfields?id=customfield_<ID>

ステップ 3: Velocity テンプレートの取得

メール テンプレートを取得して、変更を加えることができます。

ステップ 4: Veloctity テンプレートの編集

Velocity テンプレートを抽出したら、それらを直接編集し、カスタム フィールドを表示する任意のコード スニペットを追加できます。

1. 更新するテンプレートを選択

一括メール通知ではいくつかのテンプレートが使用されます。どれを編集すればよいかわからない場合は、「テンプレート: 一括課題得通知」を参照してください。

2. テンプレートの編集

Jira は html 形式とテキスト形式のメールをサポートしています。Jira で設定された形式に従って手順を選択する必要があります。

テキスト形式...
  1. 変更するメール タイプの Velocity テンプレートを見つけます。

  2. 以下のスニペットを、ファイル内の表示したい位置に追加します。

    #if($customFields.get('customfield_<ID>').getValue())
    ${customFields.get('customfield_<ID>').getName()}: ${customFields.get('customfield_<ID>').getValue()}
    #end
HTML 形式...
  1. 変更するメール タイプの Velocity テンプレートを見つけます。 

  2. 以下のスニペットを、ファイル内の表示したい位置に追加します。

    #if(${customFields.get('customfield_<ID>').getValue()})
    <tr>
        <td>$escape.apply($customFields.get('customfield_<ID>').getName()):</td>
        <td>      
            $escape.apply($customFields.get('customfield_<ID>').getValue())
        </td>
    </tr>
    #end

このコード スニペットの編集に関するいくつかのヒント:

  • これはカスタム フィールドの ID を入力する場所です。

    ${customFields.get('customfield_<ID>').getValue()

任意で、この行を以下の 2 行のいずれかに置き換えることができます。

  • このコードを使用すると、カスタム フィールドの最新の値を取得できます。これは、カスタム フィールドが削除されたときに役立ちます。その場合、値は null として返されます。元の行では、削除前の最後の値が取得されます。

    ${customFieldsCurrent.get('customfield_<ID>').getValue()}
  • このコードを使用すると、カスタム フィールドの名前を取得できます。

    ${customFiels.get('customfield_<ID>').getName()}

ステップ 5: Jira への更新されたテンプレートのアップロード

変更のテスト

本番環境に適用する前に、ステージング環境で変更をテストすることをおすすめします。Velocity 構文に違反した場合、メールは一切送信されません。

最終更新日 2020 年 11 月 20 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.