CData Software Blog

クラウド連携のCData Software の技術ブログです。

JIRA Service Desk のリクエスト一覧でカスタムフィールドの値を取得する方法:Cdata JIRA Service Desk

f:id:sugimomoto:20210317154225p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

今回は、IT サービスデスク& ITSM ソフトウェアの「JIRA Service Management」に接続できる、CData JIRA Service Desk Driver のTipsをお届けします。

www.atlassian.com

www.cdata.com

f:id:sugimomoto:20210317153551p:plain

実現したいこと

今回実現したいことは「リクエストの一覧」でカスタムフィールドも含めて値を取得する方法です。

まず、リクエストについて簡単に確認しておきましょう。

JIRA Service Deskは社内のITサービス向けに問い合わせ用ポータルを簡単に構成することができます。

以下のようなフォームで問い合わせ用の種別や、概要、詳細、添付ファイルを送信できます。

f:id:sugimomoto:20210317153559p:plain

このリクエストはJIRA Service managementのWebSite側で以下のように確認できます。(Request Typeが付与されているものが対象です)

f:id:sugimomoto:20210317153606p:plain

CData Driverではこのデータを「Requests」というテーブルで取得することができるようになっています。

しかしながら、ご覧頂いて分かる通り、問い合わせフォームで指定できる「Summary」や「Description」「Compornents」といった項目が表示されていません。

f:id:sugimomoto:20210317153612p:plain

カスタムフィールドの表示方法

このカスタムフィールドを表示したい場合は、以下の接続プロパティ「IncludeCustomFields」をTrueに設定する必要があります。

cdn.cdata.com

このプロパティをTrueにした状態で接続すると、通常であれば14種類のカラムしか取得できないのですが、

f:id:sugimomoto:20210317153619p:plain

以下のように一気に取得できるカラムの数が増加します。

f:id:sugimomoto:20210317153623p:plain

再度SQLを実行してみると、以下のようにSummaryなどの情報も取得することができました。

f:id:sugimomoto:20210317153630p:plain

なお、カスタムフィールドの情報は、キャッシュによってすぐに反映されない場合があります。

もしすぐにカスタムフィールドを確認したい場合は、「reset schema CACHE;」というSQLを実行してみてください。

API に関する補足

このカスタムフィールド、内部的には「GET /rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/field」というAPIを使って、事前に必要なカラムを識別しています。

developer.atlassian.com

これは、リクエストタイプに存在するフィールドを表示します。

リクエストタイプに存在するフィールドは「Project Settings」→「Request Types」から任意のリクエストタイプを選択することで確認できます。

f:id:sugimomoto:20210317153638p:plain

ここで注意しなければいけない点は、すべてのカスタムフィールドを表示しているわけではなく、Request Typesに紐付けられたカスタムフィールドだけを表示しているという点です。

カスタムフィールドは、「Jira Service Management」の「Project Settings」→「Fields」で確認できますが、ここに存在する一覧はリクエストタイプと紐付けられていないものも存在します。

f:id:sugimomoto:20210317153646p:plain

リクエスト一覧を取得する場合は、紐付けられていないフィールドを出す必要は無いと思いますが、もし「あのフィールドが表示されない」というケースがあった場合は、リクエストタイプに適切に紐付けられているかどうかを事前に確認してみましょう。