こんにちは!リードエンジニアの杉本です。
この記事では、HubDB のNorthwindProducts データをkintone に同期する方法を紹介します。グレープシティ社のkrewData というkintone プラグインとCData Connect Server を使うと、HubDB をはじめとする100を超えるSaaS データをノーコードでkintone に取り込むことが可能です。
krewData とは?
krewData は、グレープシティ社が提供するkintone のプラグインで、kintone の複数のアプリ間やExcel・CSV ファイルとkintone のデータ統合をkintone 上で行うことができます。
https://krew.grapecity.com/products/krewdata.htm
ホスティングについて
krewData からCData Connect Server に接続するには、利用するConnect Server インスタンスをネットワーク経由での接続が可能なサーバーにホスティングして、URL での接続を設定する必要があります。CData Connect がローカルでホスティングされており、localhost アドレス(localhost:8080 など)またはローカルネットワークのIP アドレス(192.168.1.x など)からしか接続できない場合、krewData はCData Connect Server に接続することができません。
クラウドホスティングでの利用をご希望の方は、AWS Marketplace やGCP Marketplace で設定済みのインスタンスを提供しています。
HubDB データの仮想データベースを作成する
CData Connect Server は、シンプルなポイントアンドクリックインターフェースを使用してデータソースに接続し、データを取得します。まずは、右側のサイドバーのリンクからConnect Server をインストールしてください。
- Connect Server にログインし、「CONNECTIONS」をクリックします。
- 一覧から「HubDB」を選択します。
-
HubDB に接続するために必要な認証プロパティを入力します。
HubDBデータソースへの接続には、パブリックHubSpotアプリケーションを使用したOAuth認証とプライベートアプリケーショントークンを使用した認証の2つの方法があります。
カスタムOAuthアプリを使用する
すべてのOAuthフローでAuthSchemeを"OAuth"に設定する必要があります。特定の認証ニーズ(デスクトップアプリケーション、Webアプリケーション、ヘッドレスマシン)に必要な接続プロパティについては、ヘルプドキュメントを確認してください。
アプリケーションを登録し、OAuthクライアント認証情報を取得するには、以下の手順を実行してください。
- HubSpotアプリ開発者アカウントにログインします。
- アプリ開発者アカウントである必要があります。標準のHubSpotアカウントではパブリックアプリを作成できません。
- 開発者アカウントのホームページで、アプリタブをクリックします。
- アプリを作成をクリックします。
- アプリ情報タブで、ユーザーが接続する際に表示される値を入力し、必要に応じて変更します。これらの値には、パブリックアプリケーション名、アプリケーションロゴ、アプリケーションの説明が含まれます。
- 認証タブで、「リダイレクトURL」ボックスにコールバックURLを入力します。
- デスクトップアプリケーションを作成する場合は、http://localhost:33333のようなローカルにアクセス可能なURLに設定します。
- Webアプリケーションを作成する場合は、ユーザーがアプリケーションを承認した際にリダイレクトされる信頼できるURLに設定します。
- アプリを作成をクリックします。HubSpotがアプリケーションとそれに関連する認証情報を生成します。
- 認証タブで、クライアントIDとクライアントシークレットを確認します。これらは後でドライバーを設定する際に使用します。
スコープの下で、アプリケーションの意図する機能に必要なスコープを選択します。
テーブルにアクセスするには、最低限以下のスコープが必要です:
- hubdb
- oauth
- crm.objects.owners.read
- 変更を保存をクリックします。
- 統合に必要な機能にアクセスできる本番ポータルにアプリケーションをインストールします。
- 「インストールURL(OAuth)」の下で、完全なURLをコピーをクリックして、アプリケーションのインストールURLをコピーします。
- コピーしたリンクをブラウザで開きます。アプリケーションをインストールする標準アカウントを選択します。
- アプリを接続をクリックします。結果のタブは閉じて構いません。
プライベートアプリを使用する
HubSpotプライベートアプリケーショントークンを使用して接続するには、AuthSchemeプロパティを"PrivateApp"に設定します。
以下の手順に従ってプライベートアプリケーショントークンを生成できます:
- HubDBアカウントで、メインナビゲーションバーの設定アイコン(歯車)をクリックします。
- 左サイドバーメニューで、統合 > プライベートアプリに移動します。
- プライベートアプリを作成をクリックします。
- 基本情報タブで、アプリケーションの詳細(名前、ロゴ、説明)を設定します。
- スコープタブで、プライベートアプリケーションがアクセスできるようにしたい各スコープに対して読み取りまたは書き込みを選択します。
- テーブルにアクセスするには、最低限hubdbとcrm.objects.owners.readが必要です。
- アプリケーションの設定が完了したら、右上のアプリを作成をクリックします。
- アプリケーションのアクセストークンに関する情報を確認し、作成を続行をクリックし、その後トークンを表示をクリックします。
- コピーをクリックして、プライベートアプリケーショントークンをコピーします。
接続するには、PrivateAppTokenを取得したプライベートアプリケーショントークンに設定します。
- 「 Test Connection」をクリックします。
- 「Permission」->「 Add」とクリックし、適切な権限を持つ新しいユーザー(または既存のユーザー) を追加します。
仮想データベースが作成されたら、krewData を含むお好みのクライアントからHubDB に接続できるようになります。
コネクションが構成されたら、kintone 上のkrewData プラグインからHubDB に接続できるようになります。
krewData でHubDB データをkintone に同期する
ここからは、kintone のプラグインであるkrewData での設定になります。
krewData の設定
krewData のプラグインインストールとkintone での設定については、こちらのリンクを参照してください。
https://krew.grapecity.com/products/krewdata.htm
kintone にkrewData プラグインを入れ、必要な権限設定を行ってください。
krewData の入力としてHubDB を設定
ここからは、実際にHubDB をkintone にロードするフローを作成していきます。krewData 自体は、複数データソースの統合、データのフィルタリング、集計処理など多様な機能を有するETL ですが、今回はシンプルにHubDB のNorthwindProducts データをkintone のアプリに同期するフローを作成します。
- kintone 画面でアプリにkrewData が表示されているので、これをクリックします。
- krewData アプリ画面の右上の「⚙」をクリックし、「設定」を開きます。
- 「設定」タブからプラグインをクリックします。これでkrewData のプラグイン操作画面に来ました。
- 「+データ編集フローを作成」の文字をクリックしてフローを作成します。作成されたフローが表示されますので、「⚙」マークをクリックしてフローを編集します。
- フロー編集画面が開きます。通常のkrewData フローは「入力アプリ」ではじまり、間にいくつかの処理モジュールを入れた後に「出力アプリ」で閉じる形です。CData Connect Server を使う場合には、一番下の「外部連携」の「CData Connect Server入力」モジュールを使います。
「CData Connect Server入力」を左ペインからドラッグして、フローキャンバスにドロップします。そこからコマンド設定を行っていきます。「アプリを選択」をクリックします。
- 「+新しい外部サービス情報アプリを作成する」をクリックして、アプリ名を入力してアプリを作成します。こちらはkrewData の連携で使われるアプリですので、通常のkintone アプリを設定することはできません。OK をクリックします。
- 同じ入力コマンドで「サインイン」をクリックして、CData Connect Server にkrewData からサインインします。アカウント選択画面がでるので、「別のアカウントを追加」ボタンをクリックします。CData Connect Server アカウント設定画面が表示されるので、Connect Server への接続を行います。
CData Connect Server アカウント:Connect Server のユーザー名
Personal Access Token:Connect Server ユーザーのパスワード
OK を押してConnect Server に接続します。
- 次に「データソースを選択」ボタンをクリックします。まずどのConnection を使うかを選択するので、先ほど作成したHubDB のConnection をドロップダウンから選択します。
- HubDB のどのオブジェクト(テーブル)を使うかを選択します。CData Connect Server がHubDB のオブジェクト(含むカスタムオブジェクト)をフラットなテーブル構造にモデル化しています。今回はNorthwindProducts を選択します。OK を押してテーブル選択を保存します。
- ここでHubDB からkrewData に取得するデータの絞り込み条件をかけることができます。特にデータ量が多い場合には、パフォーマンスを上げるためにフィルタ条件をかけることをおすすめします。krewData のGUI でフィルタリング条件をかけるカラムを指定し、条件を設定することが可能です。
- 最後にkrewData で使用するフィールドを選択します。
- テーブル設定、フィルタリング設定、フィールド設定まで終わったら「プレビュー」タブをクリックして、実際に取得されるデータを見ることができます。
kintone へのアウトプットを設定
kintone への出力を行う設定を行います。
- 「出力アプリ」を左ペインからドラッグしてフローキャンバスにドロップします。先ほどのCData Connect Server入力アプリと出力アプリを線でつなぎます。
- 「アプリを選択」ボタンをクリックして、入力アプリと同様に新しいアプリを作成します。
- 出力アプリの設定として、2回目以降の同期の際のデータの更新の方法をしていします。今回はUPSERT 設定で更新または追加にチェックをいれています。
- 更新キーをしていできるので、ID カラムにチェックを入れて更新キーにします。
- これで出力アプリの設定が完了したので、左上の「アプリを更新」をクリックしてフローを保存します。
HubDB NorthwindProducts のkintone への同期フローを実行
では、実際にフローを実行していきます。
まずはユーザー情報を指定する必要があります。左上の「設定ファイル」タブをクリックします。kintone のログイン名とパスワードを入力します。セキュアアクセスを使っている場合にはセキュアアクセス設定が必要です。
右上の「▶実行」ボタンをクリックして、フローを実行しましょう!!!
「成功」の表示がでました。
実際にkintone 上で出力アプリとして設定したアプリを開いてみます。ちゃんとHubDB NorthwindProducts 情報がkintone アプリのレコードとして同期されていました。
まとめ
いかがでしたか?このようにCData Connect Server とkrewData を使って、簡単にHubDB のNorthwindProducts データをkintone にノーコードで同期することができました。
是非、CData Connect Server で他の100を超えるデータソースでもkintone への同期をお試しください。