CData Software Blog

クラウド連携のCData Software の技術ブログです。

MZプラットフォームでSalesforceとデータ連携する

MZプラットフォームは中小製造業のIT化支援を目的に、産総研が開発した無償のソフトウェア基盤です。 中小製造業が自社用アプリケーションを自分たちで開発できるよう、マウス操作でコンポーネントを組み合わせることでソフトウェアを作成できます。

ssl.monozukuri.org

本記事ではMZプラットフォームからSalesforceのデータを参照・更新する方法を紹介します。

一般的にSalesforceなどのクラウドサービスへアクセスする際にはAPI仕様や認証プロセスなど多くのことを理解し実装しなければなりません。 CData Software Japanが提供するCData JDBC Driversは、このようなWeb APIへのアクセスをJDBCインタフェースに変換し、複雑なAPIリクエストをSQLで操作できるようにします。

f:id:urabe_shintaro:20210303174810p:plain

MZプラットフォームはJDBCドライバを介したデータベースインタフェースを持っており、簡単な設定でPostgreSQLMySQLなどのデータベースを操作できます。 このMZプラットフォームが持つデータベースインタフェースとCData JDBC Driversとを利用することで、MZプラットフォームとクラウドサービスとのデータ連携を実現できます。

CData JDBC DriversはkintoneやOffice 365, GoogleSheetsなど様々なクラウドサービスに対応しています。 今回はSalesforceを例としてMZプラットフォームからCData JDBC Driversを利用する方法を紹介します。

事前準備

事前準備としてMZプラットフォームがインストールされている環境にCData Salesforce JDBC Driverをインストールします。

CData Salesforce JDBC Driverのインストール

CData Software Japan社のCData Salesforce JDBC Driverダウンロードページにアクセスしてください。 ダウンロードページの[ダウンロード 評価版]をクリックすると必要事項入力画面が表示されます。

f:id:urabe_shintaro:20210303174840p:plain

必要事項を入力し、[ダウンロード]をクリックするとCData Salesforce JDBC Driver評価版のインストーラがダウンロードされます。 ダウンロードしたファイルをダブルクリックするとインストーラが起動しますので、ウィザードに従ってインストールしてください。

JDBCドライバの配置

CData Salesforce JDBC Driverのインストールが完了したらドライバファイルを適切なフォルダに配置します。 CDataドライバのインストールフォルダのlibフォルダ配下に以下のファイルがあることを確認してください。

例:C:\Program Files\CData\CData JDBC Driver for Salesforce 2020J\lib

これをMZプラットフォームの配下にコピーします。 コピー先はMZプラットフォームが参照するJava実行環境により異なります。 MZプラットフォームとともにJava実行環境をインストールした場合は以下のフォルダとなります。

MZ Platform インストールフォルダ¥Java¥jre*_mz*.*¥lib¥ext (*はバージョン番号)

例:C:¥MZPlatform¥Java¥ jre8_mz3.6¥lib¥ext

f:id:urabe_shintaro:20210303174900p:plain

MZプラットフォームとJava実行環境を別々にインストールした場合のコピー先については、MZプラットフォーム付属のチュートリアル資料「データベースアクセスチュートリアル」の「(参考)JDBC ドライバのインストール」セクションをご覧ください。

Salesforceとのデータ連携

インストールしたCData Salesforce JDBC Driverを利用したMZプラットフォームとの連携方法を説明します。

Salesforceセキュリティトークンの取得

CData Salesforce JDBC DriverはSalesforceのWeb APIへアクセスします。 認証情報としてSalesforceアカウントのユーザ名とパスワードに加えてセキュリティトークンが必要です。 Salesforce でのセキュリティトークン取得方法は以下の記事をご参考ください。

https://www.cdatablog.jp/entry/2021/01/25/113037

コンポーネントによるSalesforceへのアクセス

Salesforceへの接続には通常のデータベースアクセスと同様に[データベースアクセスコンポーネント]を利用します。 データベースアクセスコンポーネント[データベースに接続する]メソッドの引数に設定する値は以下の通りです。

  • ドライバ名:cdata.jdbc.salesforce.SalesforceDriver
  • データベースのURL:<接続文字列>

接続文字列は以下の通りです。ユーザ名、パスワード、セキュリティトークンはそれぞれ接続先のSalesforceアカウントの情報を設定してください。

jdbc:salesforce:User=<ユーザ名>;Password=<パスワード>;SecurityToken=<セキュリティトークン>

f:id:urabe_shintaro:20210303174925p:plain

データを取得する際にはデータベースアクセスコンポーネント[SQLを実行する]メソッドを利用してSQLを実行します。 例えば取引先の一覧を取得する場合は、以下のようにSelect文を使って取引先オブジェクトに対応する「Accountテーブル」のレコードを取得します。

SELECT * FROM Account

f:id:urabe_shintaro:20210303174936p:plain

CData Salesforce JDBC Driverでアクセス可能なテーブルはCDataのヘルプをご参照ください。 http://cdn.cdata.com/help/RFF/jp/jdbc/pg_alltables.htm

商品一覧の取得

実際にデータベースアクセスコンポーネントを使ってSalesforceに登録されている以下の商品一覧をMZプラットフォームに読み込みます。

f:id:urabe_shintaro:20210303174951p:plain

MZプラットフォームにはサンプルアプリケーションが豊富にありますので、これを利用します。 チュートリアルの「データベースアクセス2.mzax」を開いてください。

f:id:urabe_shintaro:20210303175006p:plain

データベースアクセス2は指定した接続情報とSQLをもとにデータベースのデータを取得するサンプルアプリケーションです。

f:id:urabe_shintaro:20210303175017p:plain

これを実行すると以下のような二つのフレームが開きます。

f:id:urabe_shintaro:20210303175039p:plain

左の[データベース接続フレーム]Salesforceへの接続情報を設定します。 [ドライバ]には「cdata.jdbc.salesforce.SalesforceDriver」、[サーバ]には接続文字列を入力してください。

f:id:urabe_shintaro:20210303175102p:plain

入力が完了したら[接続]をクリックし、エラーが出ないことを確認してください。

続いてデータを取得します。

[データベース検索フレーム]SQL入力欄に以下のSQLを入力してください。

SELECT id, Name, ProductionCode FROM Product2

Salesforceの商品オブジェクトはProduct2というテーブルに対応しています。 このSQLはProduct2テーブルを参照し、各商品のId, Name(商品名), ProductionCode(商品コード)の一覧を取得する操作を表しています。 SQLの入力が完了したら[実行]ボタンをクリックしてください。 データの取得に成功すると以下のようにSalesforceに登録されている商品の一覧がテーブルに表示されます。

f:id:urabe_shintaro:20210303175117p:plain

続いてテーブルの一覧を取得するサンプルも試してみます。 チュートリアルのデータベースアクセス6.mzaxを開いてください。

f:id:urabe_shintaro:20210303175129p:plain

先ほどと同様に接続情報を入力して接続すると、以下のようにSalesforceのテーブル一覧が表示されます。 さらにテーブル名をダブルクリックするとそのテーブルのデータを一覧できます。

f:id:urabe_shintaro:20210303175159p:plain

データの更新

CData Salesforce JDBC Driverはデータの取得だけでなく更新、新規登録、削除もサポートしています。 使用できるSQLについてはこちらをご覧ください。

先ほどのサンプルアプリケーションを利用してUpdate文を実行し、Salesforceの商品データを更新してみます。 ここでは例として、ProductCode(商品コード)が「GC5020」である商品のDescription(説明)を「test」にするUpdate文を実行します。

UPDATE Product2 SET Description = 'test' WHERE ProductCode = 'GC5020'

このUpdate文をSQL欄に入力し、実行してください。

f:id:urabe_shintaro:20210303175256p:plain

Salesforceの商品一覧画面を見ると、対象のデータが更新されていることが確認できます。

f:id:urabe_shintaro:20210303175309p:plain

続いてInsert文も試してみます。 以下のSQLはName(商品名)が「TestProduct1」、ProductionCode(商品コード)が「TEST001」の商品を新規登録します。

INSERT INTO Product2(Name,ProductCode) VALUES('TestProduct1','TEST001')

このUpdate文をSQL欄に入力し、実行してください。

f:id:urabe_shintaro:20210303175320p:plain

Salesforceの商品一覧画面を見ると、対象の商品が追加されていることが確認できます。

f:id:urabe_shintaro:20210303175332p:plain

このように、Salesforceのデータの参照や更新が、通常のデータベースの操作と全く同じようにSQL文を実行することで実現できます。

おわりに

本記事ではCData Salesforce JDBC Driverを使ってSalesforceのデータを操作する方法を紹介しました。 今回はSalesforceのドライバを紹介しましたが、CData JDBC Driversは200を超えるクラウドサービスやオンプレミスソフトウェアのラインナップがあります。

f:id:urabe_shintaro:20200131184240p:plain

CData Software Japan - JDBC Drivers

これらのドライバは30日間の評価版を無料でご利用頂けます。 MZプラットフォームとクラウドサービスとのデータ連携をご検討の方はぜひお試しください。

本記事についての技術的なお問い合わせにつきましては弊社サポートフォームからお問い合わせください。