Jira Server / Cloud を Custom Action で操作する

Workato には色々な機能が有ります。Workato の Jira Connector は Jira の全ての機能を網羅している訳ではありません。カスタムフィールドの SIngle Version Picker には対応していません。このドキュメントでは、Custom Action を利用して、Single Version Picker の項目を扱う手順を説明します。下記の手順は Jira Server を対象にしていますが、同じ手順で Jira Cloud にも適用できます。

目次


Custom Action が必要なケース

以下のケースでは、Workato の Jira コネクターが対応していないケースなので、カスタムアクションが必要になります。

  • Jira Server で、Date Time Picker に値を設定したいとき。

    • Cloud 版は問題有りません。

    • Workato が出力する Timestemp の型を Jira Serverが受け付けないので、コネクターを利用した場合はエラーになってしまいます。Atlassian への 改善要望は RASERVER-59430 Time stamps are not ISO8601 compatible の通り、却下されてしまったので改善の見込みは有りません。

    • 日付時刻型の違いは下記の通り、タイムゾーンに “:”(コロン)が有るか無いかの違いです。

      • workato  : 2011-10-19T10:29:29.908+11:00

      • Jira Server : 2011-10-19T10:29:29.908+1100

  • カスタムフィールドの Single Version Picker に値を設定したいとき。

  • その他、サードパーティ独自のカスタムフィールドを利用したいとき。(Workato の Jira コネクターで利用できるかどうかはサードパーティアプリの作りに依存します)

Custom Action による課題の作成

Custom Action は 各アプリの API を直接呼び出す方法です。このため、APIの知識が必要になります。課題の作成については、こちらの記事をご覧ください。

REST API で Jira Software を操作してみる(Server版)

こちらの記事に有る通り、<jira_baseurl>/rest/api/2/issue に put メソッドで JSON を送信すれば課題を起票することができます。上記の記事に乗っている JSON には、Single Version Picker と Date Time Picker が無いのですが、追加して下記の様になります。また、フィールドは追加したい項目に合わせて変更して下さい。後で、これを workato にペーストしますが、値はサンプルなので、気にしなくても良いです。

{ "fields": { "project": { "key": "RSAF" }, "summary": "Advent Calendar 2017", "issuetype": { "name": "Task" }, "assignee": { "name": "higuchi" }, "reporter": { "name": "higuchi" }, "priority": { "id": "3" }, "description": "Advent Calendar 2017 3日目用のサンプル課題です。", "customfield_10300": { "name":"1.0" }, "customfield_10413":"ABC" } }

customfield_10300 が Single Version Picker 、customfield_10413 がDate Time Picker のカスタムフィールド です。下記の様に管理画面の 課題 → カスタムフィールドで当該フィールドの設定画面を開くと custom_filed の番号をURL で 確認できます。この番号を “customfield_” に追加した値がカスタムフィールドのフィールド名となります。

customfield_10413 は日付時刻型ですが、workato の日付時刻型を使ってしまうと エラーになってしまうので String 型で利用します。そのために上記のJSON では、 "customfield_10413":"ABC" と表記しています。

Action Parameter

項目

備考

項目

備考

Action Name

Create Issue

任意の解りやすい名前を付けて下さい。

Method

POST

 

Path

/jira/rest/api/2/issue

左記は Jira のコンテキストパスが Jira の場合です。

  • Jira の Base URL が https://www.my-jiraserver.jp/ の場合

    • /rest/api2/issue

  • Jira の Base URL が https://www.my-jiraserver.jp/jira の場合

    • /jira//rest/api2/issue

Request type

JSON request body

 

Request Body

下記の手順を参照

 

Response type

JSON response

 

実施手順

  1. Workato の レシピ編集画面で Action を追加して、App に Jira, Action は Custom Action を選択します。

  2. パラメータは 上記の Action Parmater の通り入力します。

  3. Input の Request body parameter の Use JSON ボタンを押します。

     

  4. Generate shcme 画面にて、上記 JSON を修正した JSON をペーストして、Next ボタンを押します。

     

  5. 次の画面では、Generate scheme ボタンを押しますと、元の画面に戻って下記の様に表示されます。

     

  6. フィールドは一部の項目しか表示されないので、画面をスクロールしてoptional fields を表示し、入力したい項目にチェックを入れます。

     

  7. 下記の様に指定した項目が表示されますので、ここで値を設定します。データはText モードで直接入力する事も、データピルを利用する事も Formula モードを利用する事もできます。

     

  8. Date Time Picker の値は日付時刻型を strftime で文字型に変換します。

    1. strftime のパラメータ は下記を設定します。

      "%Y-%m-%dT%H:%M:%S.%L%z"

       

  9. Input の Request body parameterと 同様の手順で、Response Body でも Use JSON ボタンを押して下記の JSON をペーストします。

    { "id": "000000", "key": "DEMO-1", "self": "http://jira.local/jira/rest/api/2/issue/10200" }

    この設定をする事で、後続の処理で 作成した課題の課題キーを利用する事ができます。

Custom Action による課題の更新

更新も作成と殆ど同じです。違いについては下表を参照して下さい。

項目

備考

項目

備考

Action Name

Update Issue

任意の解りやすい名前を付けて下さい。

Method

PUT

課題作成は POSTでした。

Path

/jira/rest/api/2/issue/課題キー

(/jira/rest/api/2/issue/DEMO-23 など)

URLに更新対象の課題キーを付けます。
左記は Jira のコンテキストパスが Jira の場合です。

Request type

JSON request body

課題作成と同様です。

Request Body

必要な項目を設定

課題作成と同様の方法で設定

Response type

JSON response

課題作成と同様です。

Response Body

設定なし

課題作成と違い、何も返さないので設定は不要です。

 

ご不明点は ヘルプデスク (要サポートサービス契約)までお問い合わせください。
サポートサービスの新規ご契約は お問い合わせフォーム にご連絡ください。

 

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ