LoginSignup
0
1

More than 5 years have passed since last update.

Talend + JDBC Driver で Microsoft Access のマスターを Salesforce Sales Cloud に同期

Last updated at Posted at 2018-12-30

はじめに

本資料は CData Software 社の JDBC Driver 及び、Talend 社の Talend Open Studio を利用してコーディングを行うことなく、Microsoft Access から Salesforce Sales Cloud (以下、Salesforce) 上のデータを更新する手法を説明しています。

model_salesforce.PNG

データ更新を行うシナリオとして、上図のように Talend + JDBC Driver にて Access のマスタデータを取得し、Salesforce の User オブジェクトの住所、氏名、携帯番号を更新する例を説明します。

検証環境

以下の環境にて検証を行っています。

  • Windows 10 Home バージョン 1803
  • Microsoft Access for Office 365 (64bit)
  • Java SE Runtime Environment 8 (1.8.0_181)
  • Talend Open Studio for Data Integration 6.5.1
  • CData JDBC Driver
    • CData JDBC Driver for Salesforce 2018J
    • CData JDBC Driver for Access 2018J

Microsoft Access (以下、Access) 及び、Java SE Runtime Environment 8 についてはインストール済みという前提で今後の説明を進めさせていただきます。
また、Access に関しては下記から Office 365 を取得し、1か月間に限り無料試用することも可能です。

CData JDBC Driver for Salesforce インストール

  1. 以下のサイトから Salesforce 用の CData JDBC Driver をダウンロードします。

  2. ダウンロードしたファイルを任意の場所に展開し、コマンドプロンプトにて下記のコマンドを実行してください。
    JDBC_Salesforce_1.png

  3. インストーラーが起動しますので、必要な設問に回答し、インストールを完了させてください。

CData JDBC Driver for Access インストール

  1. 以下のサイトから Access 用の CData JDBC Driver をダウンロードします。

  2. ダウンロードしたファイルを任意の場所に展開し、コマンドプロンプトにて下記のコマンドを実行してください。
    JDBC_Access_1.png

  3. インストーラーが起動しますので、必要な設問に回答し、インストールを完了させてください。

Talend Open Studio インストール

Talend Open Studio の最新バージョンは 7.1.1 ですが、この版ではDB接続のタイプとして "General JDBC" が存在しないため、以下のサイトから Talend Open Studio for Data Integration 6.5.1 をダウンロードし、任意の場所に展開してください。

Salesforce Sales Cloud 開発者アカウントの取得

Salesforce Sales Cloud 開発者アカウント、および、セキュリティトークン取得方法
を参考に 、Salesforce 開発者アカウント、および、セキュリティトークン取得方法を取得してください。
Salesforce には無償で利用できるライセンスとして「30日間の無償評価版」と、「開発者ライセンス」の2種類がありますが、「30日間の無償評価版」は、APIの利用制限があるため、「開発者ライセンス」を取得します。

Access から Salesforce のデータ更新 事前準備

1. Talend Open Studio を起動します。先ほど展開したフォルダ配下の TOS_DI-20180116_1512-V6.5.1\TOS_DI-win-x86_64.exe を起動します。

2. 下記の画面が表示されますので、"x" を押してください。
Talend_Salesforce_1.png

3. 下記の画面が表示されますので、"リポジトリ" の "ジョブ" を右クリックし、"ジョブの作成" を選択してください。
Talend_Salesforce_2.png
Talend_Salesforce_3.png

4. 下記の画面が表示されますので、"名" を入力(ここでは "TrialSalesforce1" とします)し、"Finish" ボタンを押してください。
Talend_Salesforce_4.png

5. 下記のように画面が表示されます。
Talend_Salesforce_5.png

6. 次に Salesforce 用の JDBC接続を作成します。"リポジトリ" の "DB接続" を右クリックし、"DB接続の作成" を選択してください。
Talend_Salesforce_6.png

7. 下記の画面が表示されますので、"名" を入力(ここでは "JDBC_Salesforce" とします)し、"Next" ボタンを押してください。
Talend_Salesforce_7.png

8. 下記の画面が表示されますので、"DBタイプ" として "General JDBC" を選択してください。
Talend_Salesforce_8.png

9. 下記の画面が表示されますので、それぞれ次のように設定してください。
Talend_Salesforce_9.png


JDBC URL
Salesforce Sales Cloud 開発者アカウントの取得 にて作成した"ユーザ"、"パスワード"、"APIトークン"を用いて下記の文字列を作成し、設定してください。
jdbc:salesforce:User=ユーザ;Password=パスワード;SecurityToken=トークン;

ドライバJar
"外部モジュール" を選択し、"追加" ボタンを押し、先の CData JDBC Driver for Salesforce インストール でインストールしたパスから lib\cdata.jdbc.salesforce.jar を選択した後、"OK" ボタンを押してください。

クラス名
"cdata.jdbc.salesforce.SalesforceDriver" を選択してください。

ユーザー名
Salesforce Sales Cloud 開発者アカウントの取得 にて設定したユーザを入力してください。

パスワード
Salesforce Sales Cloud 開発者アカウントの取得 にて設定したパスワードを入力してください。

10. "Finish" ボタンを押してください。
Talend_Salesforce_10.png

11. "リポジトリ" の "メタデータ"、"DB接続" の下に "JDBC_Salesforce" が作成されますので、右クリックし、"スキーマ情報の取得" を選択してください。
Talend_Salesforce_12.png

12. 下記の画面が表示されますので、"Next" ボタンを押してください。
Talend_Salesforce_13.png

13. "名" を展開し、"User" テーブルをチェックし、"Next" ボタンを押してください。
Talend_Salesforce_14.png

14. 下記の画面が表示されますので、"Finish" ボタンを押してください。
Talend_Salesforce_15.png

15. "リポジトリ" の "メタデータ"、"DB接続"、"JDBC_Salesforce"、"テーブル" の下に "User" オブジェクトが作成されていることを確認できます。
Talend_Salesforce_16.png

16. 15. の "User" オブジェクトを右クリックし、"クエリの編集" を選択してください。
Talend_Salesforce_17.png

17. 下記の画面が表示されますので、青枠の "SQLの実行" を押してください。
Talend_Salesforce_18.png

18. "クエリの結果" にアカウントの一覧が表示されますので、Salesforce Sales Cloud 開発者アカウントの取得 にて作成したアカウントの "Id" フィールドの値を記録してください。
Talend_Salesforce_19.png

19. 次に Access を起動し、下記の形で "User" テーブルを作成してください。
Talend_Salesforce_27.png

Id
主キー
データ型: 短いテキスト
フィールドサイズ: 18
値要求: はい
インデックス: はい(重複なし)

MobilePhone, State, City, LastName, FirstName
データ型: 短いテキスト
フィールドサイズ: 255
値要求: いいえ
インデックス: いいえ

また、データとして下記の値を登録してください。


Id
18. で記録した "Id" フィールドの値

MobilePhone
任意の値 (ここでは "080-0000-0001" とします)

State
任意の値 (ここでは "宮城県" とします)

City
任意の値 (ここでは "仙台市青葉区" とします)

LastName
任意の値 (ここでは "苗字" とします)

FirstName
任意の値 (ここでは "名前" とします)

20. Talend に戻り、Access 用の JDBC接続を作成します。"リポジトリ" の "DB接続" を右クリックし、"DB接続の作成" を選択してください。

21. 下記の画面が表示されますので、"名" を入力(ここでは "JDBC_Access" とします)し、"Next" ボタンを押してください。
Talend_Salesforce_21.png

22. "DBタイプ" として "General JDBC" を選択し、それぞれ次のように設定してください。


JDBC URL
Access のデータファイルのパスを "DataSource" として下記の文字列を作成し、設定してください。下記の "DataSource" の値は例ですので、各自の環境に合わせて変更してください。また、パスの区切りは "\" ではなく、"\" としてください。

jdbc:access:DataSource=C:\\works\\Database1.accdb;

ドライバJar
"外部モジュール" を選択し、"追加" ボタンを押し、先の CData JDBC Driver for Access インストール でインストールしたパスから lib\cdata.jdbc.access.jar を選択した後、"OK" ボタンを押してください。

クラス名
"cdata.jdbc.access.AccessDriver" を選択してください。

23. "Finish" ボタンを押してください。
Talend_Salesforce_22.png

24. "リポジトリ" の "メタデータ"、"DB接続" の下に "JDBC_Access" が作成されますので、右クリックし、"スキーマ情報の取得" を選択してください。
Talend_Salesforce_23.png

25. 下記の画面が表示されますので、"Next" ボタンを押してください。
Talend_Salesforce_30.png

26. "名" を展開し、"User" テーブルをチェックし、"Next" ボタンを押してください。
Talend_Salesforce_24.png

27. 下記の画面が表示されますので、"Finish" ボタンを押してください。
Talend_Salesforce_28.png

28. "リポジトリ" の "メタデータ"、"DB接続"、"JDBC_Access"、"テーブル" の下に "User" オブジェクトが作成されていることを確認できます。
Talend_Salesforce_26.png

事前準備はここまでとなります。

Access から Salesforce のデータ更新 ジョブの作成

ここでは Access から Salesforce のデータ更新を行う事例として、Salesforce の User オブジェクトの住所、氏名、携帯番号を変更するジョブを作成します。

1. Talend の "メタデータ"、"DB接続"、"JDBC_Access"、"テーブル"配下の "User" オブジェクトをジョブ "TrailSalesforce1" へドラッグ & ドロップすると、コンポーネント選択ダイアログが表示されますので、"tJDBCInput" を選択し、"OK"ボタンを押してください。
Talend_Salesforce_Job_1.png
Talend_Salesforce_Job_2.png

2. 次に、"メタデータ"、"DB接続"、"JDBC_Salesforce"、"テーブル"配下の "User" オブジェクトをジョブ "TrailSalesforce1" へドラッグ & ドロップし、コンポーネント選択ダイアログから "tJDBCOutput" を選択し、"OK"ボタンを押してください。
Talend_Salesforce_Job_3.png

3. "Palette" から "tMap" オブジェクトをジョブ "TrailSalesforce1" へドラッグ & ドロップしてください。
Talend_Salesforce_Job_4.png

4. "JDBC_Access" の "User" オブジェクトをクリックすると、下記のように変化するので、青枠の部分をクリックし、先ほど追加した "tMap" オブジェクトまでドラッグ & ドロップしてください。
Talend_Salesforce_Job_5.png

5. 同様に "tMap" オブジェクトをクリックし、青枠の部分を "JDBC_Salesforce" の "User" オブジェクトまでドラッグ & ドロップしてください。出力名の入力を求められますので、"toSalesforce" と入力し、"OK" ボタンを押してください。その後、"ターゲットコンポーネントのスキーマを取得しますか ?" と問われますので、"Yes"ボタンを押してください。
Talend_Salesforce_Job_6.png

6. "JDBC_Salesforce" の "User" オブジェクトをクリックし、"コンポーネント" タブの "データ操作" を "更新" に変更してください。
Talend_Salesforce_Job_7.png

7. "tMap" オブジェクトをダブルクリックすると、下記の画面が表示されます。右側の "toSalesforce" のフィールドを "Id", "MobilePhone", "State", "City", "LastName", "FirstName" だけ残して削除してください。削除は右下のスキーマエディタにてフィールドを選択した後、赤×ボタンにて行います。
Talend_Salesforce_Job_15.png

8. 次に、右上の "自動マップ" を押し、"JDBC_Access" の "User" オブジェクトと "JDBC_Salesforce" の "User" オブジェクトの各フィールドの紐付けを行います。 紐付け後、"OK" ボタンを押すと、"変更を反映しますか ?" と問われますので、"Yes"ボタンを押してください。
Talend_Salesforce_Job_16.png

9. "実行" タブの実行ボタンを押してください。
Talend_Salesforce_Job_10.png
Talend_Salesforce_Job_11.png

10. エラーがなく実行が完了した際、Salesforce Sales Cloud 開発者アカウントの取得 にて作成したアカウントにて、Salesforce にログインし、右上のアイコンをクリックし、"設定" を開きます。
Talend_Salesforce_Job_13.png

11. "個人情報" の "姓"、"名"、"携帯"、"都道府県"、"市区群" の値が Access から Salesforce のデータ更新 事前準備 の 19. にて設定した値にて更新されていることを確認します。
Talend_Salesforce_Job_17.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1