こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はintra-mart IM-LogicDesigner とCData Driver を組み合わせて、Sansan の名刺データをintra-mart の顧客マスタに連携する方法を紹介したいと思います。
intra-mart とは?
NTTデータ イントラマートが提供するローコード開発・ワークフローアプリケーションプラットフォームです。
https://www.intra-mart.jp/whats.html
intra-martには様々な機能がありますが、今回はその中でもノンコーディングで業務ロジックの作成ができるIM-LogicDesigner を使ってみます。
https://www.intra-mart.jp/products/low-code/logicdesigner.html
https://document.intra-mart.jp/library/iap/public/im_logic/im_logic_user_guide/texts/summary/index.html
今回のシナリオ
今回は前述の通り、IM-LogicDesigner を使ってSansan の名刺データをintra-mart で予め作成しておいた顧客マスタのエンティティに連携をしてみます。
IM-LogicDesignerは数多くの連携サービスコネクタが標準で用意されていますが、残念ながら現在Sansan は標準機能としてサポートされていません。
REST API 向けのコネクターも備えていますが、それぞれのAPI仕様の把握および認証方法への対応やAPI Updateへの追従なども含めて考える必要があり、非開発者にとっては敷居が高い部分があると思います。
そこでこのボトルネックをCData JDBC Driver を利用して解消します。
IM-LogicDesigner にはJDBC 経由でデータベースにアクセスする機能が標準で提供されています。
この標準機能とCData Sansan JDBC Driver を組み合わせることで、各種API の仕様を意識せずに、IM-LogicDesigner からSansan などのAPIにシームレスにアクセスが行えるよになります。
なお、今回のシナリオではSansan を例に紹介していますが、CData で提供するSAP やMarketo・Kintone などのJDBC Driver も同様に接続が可能です。
https://www.cdata.com/jp/jdbc/
それでは実際にIM-LogicDesigner とCData JDBC Driver を用いて、連携を実装してみましょう。
今回作成するフローは以下のようなイメージになります。
手順
intra-mart の環境について
intra-mart の環境はVMware Workstation Player で実行できるトライアル環境を使用しました。
WebサービスはResin 4.0.65環境で実行されています。
ドライバーのインストール
intra-mart 側の環境構成と併せて、CData JDBC Driver もセットアップします。トライアルは以下のURLから入手できます。
https://www.cdata.com/jp/drivers/sansan/jdbc/
ダウンロード後、exeファイルを実行し、セットアップを進めます。
インストール完了後、「C:\Program Files\CData」にCData JDBC Driverのフォルダが作成され、JDBCのjarファイルがlibフォルダ配下に作成されます。
続いて、接続用の文字列を取得するために、CData JDBC Driverの接続ユーティリティを利用しましょう。
「lib」フォルダにある「cdata.jdbc.sansan.jar」を実行します。
Sansan APIに接続するためのキーを「API Key」に設定し接続テストを行います。正常に接続が成功したら「コピー」で接続文字列を取っておきましょう。
intra-mart 環境にJDBC Driver をアップロード
続いてintra-mart 環境にJDBC Driver を追加します。
今回はSCPを使ってアップロードし、SSHアクセスしてライセンスのアクティベーションを行うので、予め対象の環境のIPアドレスを確認しておきましょう。
以下のようにVM 環境を立ち上げてIPアドレスを「ip a」コマンドなどで確認します。
IPアドレスを確認後、scpコマンドを使って、「cdata.jdbc.sansan.jar」ファイルを「/usr/local/resin-pro-4.0.65/lib」のフォルダにアップロードします。
「scp cdata.jdbc.sansan.jar [email protected]:/usr/local/resin-pro-4.0.65/lib」
アップロード後、対象の環境でCData JDBC Driver のトライアルライセンスをアクティベーションしましょう。SSHで対象の環境にログインし
「ssh [email protected]」
ドライバーをアップロードしたフォルダに移動
「cd /usr/local/resin-pro-4.0.65/lib」
以下のコマンドでトライアルライセンスをアクティベーションします。
「java -jar cdata.jdbc.sansan.jar -license」
以下のようなメッセージが表示されるので、内容に合わせて入力していきます。Product KeyにはTRIALと入力しましょう。
[root@iapdemo lib]# java -jar cdata.jdbc.sansan.jar -license
Please enter your name and email address:
Name: YOUR_NAME
Email Address: [email protected]
Please enter your Product Key:
(you may use "TRIAL" as the product key to activate a trial license)
Product Key: TRIAL
Downloading license data...
Verifying license data...
License installation succeeded.
Press any key to exit…
アクティベーション後、VMマシンを再起動すればintra-martでJDBC Driver が読み込まれ、使うための事前準備が完了します。
intra-mart システム管理画面へのログイン
JDBC Driverをアップロードしたら、intra-martのサービス上で利用するための設定を進めていきましょう。
まずシステム管理者ログイン画面を開いて
任意のアカウントでログインします。
以下の画面にログインできたら、JDBC Driver の設定を進めていきます。
データソース設定の追加
最初に必要なのはデータソース設定です。これでJDBC Driver のClass名や接続文字列を指定しいきます。
「システム環境構築」→「データソース設定」に移動し
「新規作成」をクリックします。
以下のようにデータソースの設定を登録します。
各設定値は以下のドキュメントの情報が参考になります。
https://cdn.cdata.com/help/USH/jp/jdbc/pg_connectionj.htm
プロパティ
|
設定値
|
JNDI名
|
例)jdbc/sansan
|
ドライバクラス名
|
例)cdata.jdbc.sansan.SansanDriver
|
URL
|
例)jdbc:sansan:APIKey=myApiKey;
接続テストツールで生成した文字列を指定します。
|
ユーザ
|
Sansan Driver では不要な項目のため、ダミーとなる値を指定します。
|
パスワード
|
Sansan Driver では不要な項目のため、ダミーとなる値を指定します。
|
シェアードデータベースの設定
続いて、シェアードデータベースの設定を追加します。
「システム管理」→「シェアードデータベース設定」に移動し
「新規作成」をクリックします。
任意の接続IDとリソース参照名として「java:comp/env/[JNDI名]」を指定します。今回は先程作成したデータソース設定に合わせて「java:comp/env/jdbc/sansan」とします。
データベース操作でクエリテストを行う
これでintra-mart上でSansan JDBC Driver が利用できるようになりました。
「データベース操作」機能を使って、実際にデータがクエリできるかどうか確かめてみましょう。
「システム管理」→「データベース操作」に移動し
以下の画面でSQLを発行して、データの取得テストを行います。
接続先は先程作成したシェアードデータベースの設定を選択しましょう。
今回はテストクエリとして「SELECT bizcardid,firstname,lastname FROM BizCards」として指定しました。利用するSQLは対象のデータソースに合わせて調整していみてください。
以下のようにクエリ結果が取得できればOKです。
これでintra-mart上、IM-LogicDesignerで利用するための事前準備が完了しました
一般ユーザーログイン
それでは実際にIM-LogicDesigner で連携処理を実装していきましょう。
IM-LogicDesignerは一般ユーザーでログインして進めていきます。
「評価キット一般ユーザログイン」の画面を立ち上げて
任意のユーザーでログインします。
連携対象のアプリケーションの確認
IM-LogicDesignerを利用する前に、連携対象のアプリケーションを確認しておきます。
今回はAccel Studio で以下のようなアプリケーションを作成しておきました。
これは業務テンプレート一覧にある「顧客管理」のテンプレートを使って作成しておきました。
以下のような項目、一覧画面などが構成されているアプリになっています。
LogicDesigner で新しくロジックフローを作成
それではIM-LogicDesigner の画面に移動して、ロジックフローを作成していきます。
「LogicDesigner」→「フロー定義一覧」に移動し「ロジックフロー新規作成」をクリックします。
以下のような画面でロジックフローの定義を進めていきます。
SQL定義新規作成
最初にSansanからデータを取得するためのユーザ定義、SQL定義を作成します。
「ユーザ定義追加」→「SQL定義新規作成」をクリックします。
以下のような画面でSQL定義を調整していきます。任意のユーザ定義ID、ユーザ定義名、ユーザカテゴリを指定し
「データベース種別」「接続ID」で事前に作成しておいたSansanのシェアードデータベースを指定します。併せて、今回はデータをクエリするのでクエリ種別から「SELECT」を指定し、クエリに名刺データを取得するためのSQL「SELECT * FROM BizCards」を入力します。
SQLを入力したら、返却値として扱えるようにするために「データ定義を取得する」をクリックしましょう。
そうすると、以下のように返却値に対して自動的に取得結果のプロパティが追加されます。
SQL定義の登録が完了すると、以下のようにフローに配置することができるようになります。
これでSansanからのデータ取得処理の追加は完了です。
繰り返し処理の追加
あとはIM-LogicDesignerの機能を用いて、Sansanデータの処理フローを作成していきます。
前述の通り、今回は顧客管理のアプリにデータを登録するので、取得した名刺データを繰り返し取り出して、アプリにデータを追加するような処理を構成します。
そのために、名刺データを繰り返し参照するための処理を追加しましょう。
「基本」→「繰り返し開始」を選択し
以下のように配置します。
繰り返し開始のプロパティから「繰り返し対象」を選択し
以下のクエリ結果のrecordsの配列情報を指定します。
エンティティデータの登録
次に繰り返し処理の中に顧客管理アプリにデータを登録する処理を追加します。
「IM_Repository」→「エンティティデータの登録」を選択しフローに配置します。
配置した「エンティティデータの登録」を選択し、「エンティティID」を指定しましょう。
以下のような画面が表示されるので、任意のエンティティを選択します。
エンティティを選択したら、項目のマッピングを「マッピング設定」で行います。
マッピング設定では、まず繰り返し処理の内容を入力として追加、必要に応じてコンテキストも追加し
顧客管理アプリのエンティティに各項目をマッピングします。
マッピングが完了したら、それぞれの処理のinとoutを繋げましょう。これでロジックフローは完成です。
デバッグを行う
ロジックフローが完成したら、保存して実際にデバッグをして動かしてみましょう。
「新規保存」をクリックし
任意のフロー定義ID、フロー定義名、フローカテゴリで保存します。
保存後、「デバッグ」ボタンをクリックしましょう。
以下のようなデバッグ画面が立ち上がるので「実行」ボタンをクリックします。
これでフローのデバッグが開始できます。
正常に完了すると、以下のようなメッセージが表示されます。
実際に顧客管理アプリに移動していみると、名刺データをもとに会社情報が作成されていました。
おわりに
このようにCData JDBC Driver を利用することで、各種クラウドサービスを intra-mart IM-LogicDesigner の接続先として手軽に利用できるようになります。
CData では Sansan 以外にもJDBC Driver を多数提供しています。Kintone や HubSpot、Salesforce など様々なデータソースをサポートしているので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
ご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。
https://www.cdata.com/jp/support/submit.aspx
関連コンテンツ