WagbyでCData JDBC Driver for Salesforceを用いてSalesforceデータをシームレスに表示する方法

# はじめに

本記事では超高速開発ツールのWagbyを使って、SalesforceのデータをシームレスにWagby上へ表示する方法を解説します。

# Wagbyとは

http://wagby.com/

> Wagby (ワグビィ) は Web ベースのエンタープライズアプリケーションをノンプログラミングで超高速に開発するツールです。設計情報から業務ルール、画面、データベーススキーマなど、すべてを自動生成します。

> 詳細設計から単体テストまでの工数を大幅に削減することに加え、実際に動作するシステムを使ってレビューすることで、要件の修正もすぐに反映できるようになります。

# 完成イメージ

以下のようにSalesforceのContactデータをWagby上へ一覧表示します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/3281a51e-659f-6529-b502-6ff58d2b84f5.png)

WagbyではSalesforceのAPIを意識する必要なく、シームレスにデータを取得することが可能です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/7675e01c-52df-0e03-0669-ccb9d020b20d.png)

# 必要なもの

1. Wagby 本体
2. Salesofrceアカウント
3. CData JDBC Salesforce Dirver

# 手順

## 1.CData Salesforce JDBC Driverのダウンロード・インストール

まず、WagbyとSalesforceの連係のために使用するCData Salesforce JDBC Driverのダウンロード・インストールを実施します。

CData Salesforce JDBC Driverは下記URLより30日間試用版が入手できます。

https://www.cdata.com/jp/drivers/salesforce/jdbc/

ダウンロード後、ZIPファイルを解凍すると以下のファイルが生成されますので、setup.jarを実行します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/f1f8f1b7-07ad-1dcb-f009-12fc73af264a.png)

setup.jarの実行後、以下のようにインストールダイアログが表示されるので、案内通りに進めるだけでインストールできます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/1168e066-b3c0-127c-fd48-09f8abd3556b.png)

## 2.ドライバーjarファイルおよびlicファイルの配置

続いて、WagbyでCData Salesforce JDBC Driverを利用できるようにするため、Wagbyへライブラリを配置します。

CData Salesforce JDBC Driverインストール後、［C:\Program Files\CData\CData JDBC Driver for Salesforce 2017J\lib］のフォルダに含まれる以下のファイルをWagbyのライブラリフォルダへ配置します。

［cdata.jdbc.salesforce.jar］
［cdata.jdbc.salesforce.lic］

Wagbyへのファイル配置先は、[Wagby-［Version No］\customize\tomcat\lib]です。

以下のように配置されればOKです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/680255af-8096-6c67-de19-d069c3caac32.png)

## 3.データベース設定ファイルの作成

続いてCData DriverをWagbyで使用できるようにするための、データベース設定ファイルをWagby上へ配置します。

以下の内容で［database.txt］というファイルを作成します。

```xml

cdata.database_label=CData Salesforce Driver
cdata.database_type=cdata
cdata.driver=cdata.jdbc.salesforce.SalesforceDriver
cdata.url=jdbc:salesforce:User=myUser;Password=myPassword;SecurityToken=myToken;
cdata.quoteid=\"
cdata.quotewhere=
cdata.quoteidinwhere=\"
cdata.quoteidforhibernate=\"
cdata.hibernateDialect=org.hibernate.dialect.DerbyDialect
cdata.maxTablenameLength=128
cdata.maxIndexnameLength=128
cdata.maxColumnnameLength=128
cdata.maxLengthStringDataType=nvarchar(1000)
cdata.characterLargeObjectDataType=NVARCHAR(MAX)
cdata.supportTimeDataType=false
cdata.searchStringEscapeInLike=\\\\
cdata.createSequenceDDL=CREATE SEQUENCE $QUOTEID$SEQNAME$QUOTEID $MINVALUE$MAXVALUESTART WITH $START NO CACHE CYCLE 
cdata.sequenceDML=SELECT NEXT VALUE FOR $QUOTEID$SEQNAME$QUOTEID
cdata.springBatchDDL=batch_sqlserver.ddl
cdata.masterDDL=master_sqlserver2000.ddl
cdata.validationQuery=SELECT 1

```

作成したファイルは［Wagby-［Version No］\repository\trunkt］へ配置します。

## 4.サブデータベースの指定

それでは実際にWagbyでSalesforceデータを読み込むための設定を行っていきます。

Wagbyはシステムを構成するための基軸となるデータを保管するためのメインデータベースと外部データを参照するためのサブデータベースで構成されています。CData Driver はこのサブデータベースを利用することで、各データソースからシームレスにデータの参照を実施できます。

デスクトップに配置されたWagby Designer起動をクリックし、Wagby Designerを立ち上げます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/c4063910-ab85-55b8-7646-b1941d8e7bf5.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/501a72e2-581d-a645-9eeb-d12e1722e2a4.png)

起動後、以下URLにアクセスし、Wagby Designer画面を表示します。

http://localhost:8920/wagbydesigner/logon.jsp

Wagbyデザイナーにログインし、サブデータベースを指定します。

[環境]→[データベース]→[サブ]を選択し、サブデータベースにて以下のプロパティを設定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/893cf4bd-4e2f-3905-a0da-d38380441e73.png)

[データベース]　←　[CData Salesforce Driver]を選択

[接続URL]　←　CDATAドライバー用接続文字列を指定。

Salesforce ドライバーの場合のサンプル

[jdbc:salesforce:User=myUser;Password=myPassword;Security Token=myToken;]

[ユーザ名]　←　使用しませんが、必須項目のため適当な文字列を入力します。

[パスワード]　←　使用しませんが、必須項目のため適当な文字列を入力します。

接続文字列の設定については、以下のヘルプドキュメントにて詳しく解説しています。

http://cdn.cdata.com/help/GFC/jdbc/pg_connectionj.htm

## 5.モデルの作成

続いて、対象サービスと連携するモデルの作成を実施します。

[モデル]→[新規モデル]をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/270232af-52e4-9b40-375c-68dc5a132b64.png)

モデル作成画面にて、下記の通り値を入力します。

[モデルID]と[項目ID]は対象サービスのテーブル名・カラム名に基づいて指定します。

本資料では、SalesforceのContactテーブルに基づいて、入力しています。

http://cdn.cdata.com/help/GFC/jdbc/pg_table-contact.htm

- モデル名：取引先担当者　｜　モデルID：Contact
    - 項目名：GUID　｜　項目ID：Id　｜　型：文字列
    - 項目名：名　｜　項目ID：FirstName　｜　型：文字列
    - 項目名：姓　｜　項目ID：LastName　｜　型：文字列

※上記項目以外のカラムは削除してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/119423b1-cbd1-b1a9-bb4a-9f3f7481aef5.png)

上記設定後、一覧表示にも各行でチェックを入れます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/be32199a-5a0d-b64d-9eb0-782541622966.png)

CData Driverはメタデータの生成に対応していないため、Wagbyが自動的に実行するテーブルの作成機能をOFFにする必要があります。

モデル画面から[画面]→[その他]を選択し以下の項目を設定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/1ef14bdc-90e9-2156-a47e-6bd7788749a5.png)

[テーブルを作成する]　←　チェックを外します。

[物理テーブル名]　←　上記テーブル名と同じ名称を指定します。

[サブデータベース]　←　手順2で指定したサブデータベースを選択します。

## 6.ビルドの実行

ビルドを実行し、サブデータベース・モデルの設定値をビルドファイルに反映させます。ビルドはサブデータベースを指定したため、フルビルドで行ってください。
	
[ビルド]から[フルビルド]を選択し、[ビルド実行]をクリックします。
	
![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/0601e16a-bbd0-40ea-db88-0587631611d1.png)

## 7.アプリケーションの起動
Wagby Designerの画面に戻り、[アプリケーション起動]をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/b9beaeac-0ba7-b80d-0d3a-1bfb2821cc25.png)

取引先担当者一覧を表示することで、Salesforceからシームレスにデータの取得が可能です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/0468f528-9be3-652f-0769-6ec5e0b3ef49.png)