こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は様々なツールと連携した独自のデータベースが作成できるサービス「Yoom」と「CData Connect Cloud」を使ってAmazon RDS SQL Server から取得したデータと連携したワークフローを作成する方法を紹介したいと思います。
Yoom とは?
Yoom は freee やクラウドサインなど様々なクラウドサービスと連携し、業務の自動化を行うことができるクラウド型のデータベースサービスです。
https://yoom.fun/
ノーコードで以下のように顧客管理や問い合わせ管理などを行うデータベースを簡単に作成できますし
そのデータベースと他のクラウドサービスが連動したワークフローも簡単に構築できます。
今回はこのワークフローを用いて、外部に存在する Amazon RDS SQL Server と連携する方法を紹介したいと思います。
課題と解決策
今回は前述の通り、Amazon が提供するデータベースサービスである Amazon RDS SQL Server(以下、SQL Server)とYoomを連携するワークフロー(Yoom 上ではフローボットとも呼ばれています)を作成します。
例えばすでに基幹システムなどがスクラッチで外部のデータベースをもとに作られており、そこに商品マスタなどが存在して、それをYoom 側で参照しながら活用したい、といった場合のシナリオです。
https://aws.amazon.com/jp/rds/
通常Yoom では以下のように様々なクラウドサービスと連携していますし、カスタムコネクタとしてREST API に接続することもできるようになっています。
とはいえ、今回のようなデータベースが対象の場合や、REST API 以外のAPI仕様で提供されているWeb API や独自の認証方式が必要なサービスに接続しようとすると、バイパスする処理部分やAPIを作り込まなければいけないことがまま発生します。
そこでそのボトルネックを"Data Connectivity as a Service"であるCData Connect Cloud を用いて解消します。
https://www.cdata.com/jp/cloud/
CData Connect は各種クラウドサービスのローコード / ノーコードツール、iPaaSなどから100種類以上のSaaS・RDB・NoSQL にコーディングなしで接続することが可能になるData Connectivity as a Service です。
CData Connect Cloud の一つの機能として、各種RDBやNoSQLなどのデータベース系サービスなどから汎用的なAPIインターフェースである「OData」エンドポイントを生成することができるようになっており、これによりWeb API のエンドポイントが無かったとしても手軽に外部のクラウドサービスと連携できるようになります。
https://www.cdata.com/jp/blog/odataapi-cdataconnect
今回はこの機能を用いて、Yoom のフローボットとSQL Server のデータを連動させる処理を作成していきます。
作成するフローのイメージ
今回作成するフローは対象のレコードから起動し、プロダクトIDをもとにプロダクト名や価格を取得するフローです。
詳細は後述しますが、以下のようなフローになっており、CData Connect Cloud を経由して、Amazon RDS のSQL Server からデータを取得します。
対象のSQL Server のテーブルは以下のようになっています。このProductId をもとにYoom のフローがデータを参照します。
CData Connect Cloud のトライアル準備
まず CData Connect Cloud の環境を用意します。30日間のトライアルがあるので、ぜひお試しください。
トライアルは製品ページより進めることができます。
https://www.cdata.com/jp/cloud/
トライアル取得方法は以下記事をご参照ください。
https://www.cdata.com/jp/blog/connect-trial
SQL Server への接続を追加
サインアップが完了すると、以下のような画面に移動するので、ここでまずはSQL Server への接続を追加します。
Amazon RDS SQL Server への接続には「Server」「Port」「Database」「User」「Password」の情報が必要になるので、それぞれ入力します。
続いて接続先のクライアントを指定しますが、今回はOData に直接接続するので「Skip for Now」を選択します。
「Go to Dashboard」に移動しましょう。
OData エンドポイントの設定
CData Connect Cloud では OData エンドポイントで利用する各APIのリソースは個別に定義する必要があります。
ここでAmazon RDS のどのデータを利用するのかを予め定義しましょう。
「OData」に移動して「+Create」をクリックし
先程作成したSQL Server のコネクションを選択します。
利用したいテーブルを選択します。
以下のようにテーブルが登録されればOData エンドポイントの構成は完了です。
なお、OData API には画面上にある「OData URL」を用いてアクセスするので予めこのURLを控えておきましょう。
PAT(Personal Access Token)の作成
OData の設定が完了したら、認証用のPAT(Personal Access Token)も生成しておきましょう。ユーザー名のSettingsから「Access Tokens」に移動し「+Create PAT」をクリックします。
任意のPATの名前を指定して「Create」をクリックしましょう。
これで以下のようにPAT が取得できます。PAT は一度しか表示されないため、忘れずに控えておきましょう。
Yoom のテーブルの準備
続いてYoom 側の準備を進めます。
今回は以下のような問い合わせを管理するためのテーブルを構成しました。このプロダクトIDを入力することで、フローがSQL Server で管理している商品マスタからデータを取得、プロダクト名と価格を自動入力させる流れになります。
フローボットの準備
テーブルの準備ができたら、フローボットを作成します。フローボットの「+新規作成」をクリックします。
「はじめから作成する」を選択し
任意のフローボット名を入力の上「データベースで特定のイベントが発生したとき」をトリガーとして指定します。
データベーストリガーは先程作成しておいたサポートケースのテーブルを選択し、トリガータイプとして「レコードを選択して起動」を指定します。シナリオによっては、レコードが更新されたとき、などでも良いでしょう。
値の入力チェックの分岐を作成
続いてフローの処理を作り込んでいきましょう。
まず、CData Connect Cloud 経由でデータを取得する前に、Yoom のテーブルに入力された値が空白ではないかをチェックします。
「オペレーション間の操作」として「分岐する」を追加します。
ここでデータの取得条件として利用するプロダクトIDが入力されているかどうかを確認する分岐条件を定義します。
CData Connect Cloud からデータを作成する処理を作成
続いてCData Connect Cloud からSQL Server のデータを取得する処理を作成します。「値が空ではない」の条件から処理を追加します。
「アプリと連携する」をクリックし
独自のWeb API に接続するため「カスタムアプリ」を選択します。
デフォルトの状態で「次へ」をクリックします。
ここでCData Connect Cloud の OData にリクエストするための設定を定義していきます。
CData Connect Cloud は以下のようなフォーマットでリクエストを行うことができます。認証方式はAuthorization に Basic 認証で指定します。パスワードにはPATを指定しましょう。
curlでのリクエスト例
curl -u '[email protected]:QpnquoIujrBNunK' https://cloud.cdata.com/api/odata/service/Products(1)
HTTPフォーマットでのリクエスト例
GET https://cloud.cdata.com/api/odata/service/Products(1)
Authorization: Basic dXNlcjAxQGNkYXRhaGFuHNvbjAxLm9ubWljcm9zb2Z0LmNvbTpsSHZjN0p0MzZLVGFiNmpIdVd3RFFUVld0cTRTSCtJSkQybS83ODJXQ2tkeWNrZDI=
これをYoom のフローで以下のように指定します。Products(1) の数字の部分はキーとなるProductIdを指定するので、これはYoom テーブルの値を参照するように構成します。
試しにリクエストを行ってみると、以下のようにデータが取得できることを確認できます。
あとはYoom フロー上で利用できるようにアウトプットをマッピングします。JSONPathには「value[0].項目名」で指定しましょう。
ちなみにCData Connect Cloud の OData 機能はデータの取得だけでなく、データの作成、更新、削除も実施できます。
ユースケースに合わせて活用してみてください。
https://cloud.cdata.com/docs/jp/OData-Operations.html
テーブルの値を更新する処理を作成
最後にYoom のテーブルデータを更新する処理を追加します。
「データベースを操作する」を選択し
実行するアプリとして「Yoom」を選択
対象となるデータベース・テーブルを選択して、実行アクションに「レコードを更新する」を選択しましょう。
検索対象のカラム、検索値として、選択されたレコードの「YoomレコードID」を用います。
あとは、予めカスタムアプリのCData Connect Cloud のリクエストでアウトプットに指定した値をそれぞれの項目にマッピングします。
以上でフローボットの作成は完了です。
フローボットを実行してみる
それでは実際にフローボットを実行してみましょう。
サポートケースのプロダクトIDを入力し「フローボット起動」から作成したフローボットを指定します。
以下のようにフローがすべて完了すればOKです。
改めてデータを見てみると、プロダクト名と価格が自動的に入力されたことが確認できました。
おわりに
このようにCData Connect Cloud を介することで、Yoom がサポートしていないAPIやデータベースに対しても手軽に連携が実現できるようになります。
https://www.cdata.com/jp/cloud/
今回はSQL Server を例として紹介しましたが、他にも様々なサービスと連携できます。ぜひトライアルと合わせてお試しください。
関連コンテンツ