見出し画像

ソリューション連携 第1回 - Jira -

今回より、Blue Prismと様々なサービスとのソリューション連携について、連載します。よろしくお願いいたします。
※本記事の最後に、記事内で作成したWeb API部品, VBO, プロセス一式をリリースファイルとして付けていますので、ご興味のある方はダウンロードの上ご確認ください。

第一回の今回は、Jira 連携になります。
皆様ご存じの通り、Jira はAtlassian が開発・提供する「バグトラッキング・課題管理、プロジェクト管理」サービスです。

Jira Cloud Platform ではREST API がサポートされており、こちらから仕様を確認することができます。
一方、Blue PrismのDigital Exchange(以降、DX)で「Jira」を検索すると、以下の通り沢山のアセットが見つかります。

この中から必要に応じて適切な部品をダウンロードの上お使いください。
・・・で、問題なければ本記事は終了できるのですが、残念ながらそう簡単にはいきません。

確認してみると分かる通り、これらはほとんどが単一機能のみサポートされていて、実現したいユースケースに対してどの組み合わせで使用するのが良いのか、説明文やユーザガイドからだけではよく分かりません。

また、設定方法についても分かりづらい部分があるため、本記事では、特定の想定シナリオに対し、必要な設定手順をステップバイステップで解説していきたいと思います。

想定シナリオ

今回想定するシナリオですが、以下のステップを実現したいと思います。

1. プロジェクト一覧から、対象プロジェクトをキーワードに基づき特定
2. 特定されたプロジェクトから、条件に合致するチケットの一覧を取得

事前準備

開発を始める前に、事前準備として以下の4ステップを実施します。

  1. DX からアセットをダウンロード
    DXで基準となるアセット(Connector for The Jira Cloud Platform REST API)をダウンロードし、Blue Prism Enterpriseにインポートします。

  2. Jira Cloud 環境の準備
    Jira Cloud 環境を用意します。現在お使いの環境がない場合、こちらからトライアルを申請する事も可能です。

  3. API トークンの準備
    この内容に基づき、APIトークンを作成します。

  4. Jira REST API に必要なAuthorization Headerを作成
    「ユーザEメールアドレス:APIトークン」の文字列をBASE64変換します(こちらのようなフリーツールでも可能)。変換された文字列は、REST API リクエストの中で利用します。

Web API の設定

事前準備が完了したら、部品として使用するWeb APIを整備していきましょう。
具体的には、インタラクティブクライアントから、システム > オブジェクト > Web APIサービスを開き、事前準備でインポートした「The Jira Cloud Platform REST API」を選択します。

The Jira Cloud Platform REST API

まず最初に、共通パラメータの「Base URL」を見ていきます。ここでは、上図のように、「公開」にチェックが入っていることを確認します。これは、後ほど作成するVBOからWeb APIを呼び出す際、入力項目として使用されるパラメータとなります。

次に、アクションを確認します。現状「getFeaturesForProject」(プロジェクトの概要を取得するアクション)のみ作成されています。ここに、REAT API仕様を確認しながら、以下の2つのアクションを追加していきます。
※REST API仕様: https://developer.atlassian.com/cloud/jira/platform/rest/v2/

getProjects (Get projects paginated):プロジェクト一覧を取得
searchTickets (Search for issues using JQL (GET)):条件(JQL)に基づいてチケット一覧を取得

追加したアクション

getProjects アクション
設定内容は以下の通りとなります。先ほどと同様、「公開」にチェックが付いているパラメータは、API利用時の入力パラメータとなります。

searchTicketsアクション
JQLについては、こちらのドキュメントをご参照ください。

VBOの作成

次に、Web APIを呼び出VBOを作成します。

searchProjects
Web APIのgetProjectsを呼びだし、結果をResponseに格納(JSON形式)、Response を「Utility - JSON::JSON to Collectioon」VBOで、Collection (Records)に変換します。

getProjectsの入力・出力:

変換されたRecords(Collection)を終了ステージで出力します。

searchTickets
Web APIのsearchTicketsを呼びだし、結果をResponseに格納(JSON形式)、Response を「Utility - JSON::JSON to Collectioon」VBOで、Collection (Records)に変換します。

searchTicketsの入力・出力:

変換されたRecords(Collection)を終了ステージで出力します。

プロセスの作成

作成したVBOを元に、以下のプロセスを作成します。

0.事前に設定した認証情報(Base URL、Basic Auth)を取得
1.プロジェクト一覧から、対象プロジェクトをキーワードに基づき特定
2.特定されたプロジェクトから、条件に合致するチケットの一覧を取得

具体的に、必要となるInput、得られるOutputは以下の通りとなります。

1.Input
Base URL: アクセスURL (https://XXXX.atlassian.net, 等)、認証情報より取得
Basic Auth: 事前準備で準備したAuthorization Header、認証情報より取得
maxResults: 取得する最大チケット数
Project Keyword: 対象プロジェクトを特定するためのキーワード

2.Output
Tikects: 取得したチケット情報一覧

作成したプロセス

ステップ0: 認証情報(Base URL、Basic Auth)を取得

認証情報を呼び出すアクション(入力)
認証情報を呼び出すアクション(出力)
認証情報

ステップ1: プロジェクト一覧から、対象プロジェクトをキーワードに基づき特定し、projectIdOrKeyにセット

ステップ2: 特定されたプロジェクトのプロジェクトキー及び、条件(JQL)より、チケットの一覧を取得

最後に、作成したプロセスで得られたチケットの一覧例をご覧ください。
※Collection内のJSON:Arrayをご覧いただくため、言語モードをEnglishにしています。

Tickets Collection
Tickets Collectionの1つ目のレコード
Tickets Collectionの1つ目のレコード > fields

いかがでしたでしょうか。
今回はシンプルな操作に絞った自動化例をご紹介しましたが、上記の方法を参考にして、様々なユースケースに応じたWeb API部品, VBO, プロセスを作成頂ければと思います。

最後に、記事で作成・使用したWeb API部品, VBO, プロセス については、こちらのリリースファイルをダウンロードの上ご確認ください。
(Blue Prism v7.0.1にて作成)