はじめに
本資料は CData Software 社の JDBC Driver 及び、Talend 社の Talend Open Studio を利用してコーディングを行うことなく、Microsoft Access から kintone 上のデータを更新する手法を説明しています。
データ更新を行うシナリオとして、上図のように Talend + JDBC Driver にて Access のデータを取得し、kintone アプリ "testApp" の文字列を更新する例を説明します。
検証環境
以下の環境にて検証を行っています。
- 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 kintone 2018J
- CData JDBC Driver for Access 2018J
Microsoft Access (以下、Access) 及び、Java SE Runtime Environment 8 についてはインストール済みという前提で今後の説明を進めさせていただきます。
また、Access に関しては下記から Office 365 を取得し、1か月間に限り無料試用することも可能です。
CData JDBC Driver for kintone インストール
- 以下のサイトから kintone 用の CData JDBC Driver をダウンロードします。
CData JDBC Driver for Access インストール
[Microsoft Access から Salesforce Sales Cloud のデータを更新]
(https://qiita.com/kamega/items/b3e7d6b0d9ff17f2c5ff) の CData JDBC Driver for Access インストール を参照してください。
Talend Open Studio インストール
Talend Open Studio の最新バージョンは 7.1.1 ですが、この版ではDB接続のタイプとして "General JDBC" が存在しないため、以下のサイトから Talend Open Studio for Data Integration 6.5.1 をダウンロードし、任意の場所に展開してください。
kintone 評価版アカウントの取得
kintone評価版アカウント取得、および、サンプルアプリケーションの作成方法
を参考に 、kintone 評価版アカウントを取得してください。
Access から kintone のデータ更新 事前準備
1. はじめに検証用の kintone アプリとデータを作成します。kintone 評価版アカウントの取得 にて作成したアカウントにて kintone にログインし、"アプリ" の右の "+" ボタンを押します。
2. 下記の画面が表示されますので、"はじめから作成" リンクを押します。
3. アプリケーション名を "testApp" とし、"文字列(1行)" をクリックし、フォームへドラッグ & ドロップします。次に、"文字列(1行)" の "設定" を押し、"フィールド名" を "input1" に変更し、"保存"ボタンを押します。その後、"アプリを公開" ボタンを押すと、"フォームを保存して、アプリを公開します。よろしいですか ?" と問われますので、"OK" ボタンを押します。
4. 下記の画面が表示されますので、"+" ボタンを押し、文字列を入力(ここでは "test1" とします)した後、"保存" ボタンを押します。
5. 下記の画面が表示されますので、再度 "+" ボタンを押し、文字列を入力(ここでは "test2" とします)した後、"保存" ボタンを押します。
6. 下記の画面が表示されますので、"testApp" リンクを押し、2件のデータが登録されていることを確認します。
7. 次に Talend Open Studio を起動します。先ほど展開したフォルダ配下の TOS_DI-20180116_1512-V6.5.1\TOS_DI-win-x86_64.exe を起動します。
8. 下記の画面が表示されますので、"x" を押してください。
9. 下記の画面が表示されますので、"リポジトリ" の "ジョブ" を右クリックし、"ジョブの作成" を選択してください。
10. 下記の画面が表示されますので、"名" を入力(ここでは "TrialKintone1" とします)し、"Finish" ボタンを押してください。
12. 次に kintone 用の JDBC接続を作成します。"リポジトリ" の "DB接続" を右クリックし、"DB接続の作成" を選択してください。
13. 下記の画面が表示されますので、"名" を入力(ここでは "JDBC_kintone" とします)し、"Next" ボタンを押してください。
14. 下記の画面が表示されますので、"DBタイプ" として "General JDBC" を選択してください。
15. 下記の画面が表示されますので、それぞれ次のように設定してください。
- JDBC URL
- [kintone 評価版アカウントの取得](#kintone-評価版アカウントの取得) にて作成した"ユーザ"、"パスワード"、"URL"を用いて下記の文字列を作成し、設定してください。
```jdbc:kintone:Username=ユーザ;Password=パスワード;URL=URL;```
- ドライバJar
- "外部モジュール" を選択し、"追加" ボタンを押し、先の [CData JDBC Driver for kintone インストール](#cdata-jdbc-driver-for-kintone-インストール) でインストールしたパスから lib\cdata.jdbc.kintone.jar を選択した後、"OK" ボタンを押してください。
- クラス名
- "cdata.jdbc.kintone.KintoneDriver" を選択してください。
- ユーザー名
- [kintone 評価版アカウントの取得](#kintone-評価版アカウントの取得) にて設定したユーザを入力してください。
- パスワード
- [kintone 評価版アカウントの取得](#kintone-評価版アカウントの取得) にて設定したパスワードを入力してください。
17. "リポジトリ" の "メタデータ"、"DB接続" の下に "JDBC_kintone" が作成されますので、右クリックし、"スキーマ情報の取得" を選択してください。
18. 下記の画面が表示されますので、"Next" ボタンを押してください。
19. "名" を展開し、"testApp" テーブルをチェックし、"Next" ボタンを押してください。
20. 下記の画面が表示されますので、"Finish" ボタンを押してください。
21. "リポジトリ" の "メタデータ"、"DB接続"、"JDBC_kintone"、"テーブル" の下に "testApp" オブジェクトが作成されていることを確認できます。
22. 21. の "testApp" オブジェクトを右クリックし、"クエリの編集" を選択してください。
23. 下記の画面が表示されますので、青枠の "SQLの実行" を押してください。
24. "クエリの結果" に kintone アプリ "testApp" で入力したレコードの一覧が表示されますので、"test1" の入力に対応する "RecordId"、"AppId" フィールドの値を記録してください。
25. 次に Access を起動し、下記の形で "testApp" テーブルを作成してください。
- RecordId
- 主キー
- データ型: 数値型
- フィールドサイズ: 長整数型
- 値要求: はい
- インデックス: はい(重複なし)
- AppId
- データ型: 数値型
- フィールドサイズ: 長整数型
- 値要求: はい
- インデックス: はい(重複あり)
- input1
- データ型: 短いテキスト
- フィールドサイズ: 255
- 値要求: いいえ
- インデックス: いいえ
- RecordId
- 24. で記録した "RecordId" フィールドの値
- AppId
- 24. で記録した "AppId" フィールドの値
- input1
- 任意の値 (ここでは "test11" とします)
26. [Microsoft Access から Salesforce Sales Cloud のデータを更新]
(https://qiita.com/kamega/items/b3e7d6b0d9ff17f2c5ff) の Access から Salesforce のデータ更新 事前準備 20. ~ 23. を参照し、Talend 上で Access 用の JDBC接続を作成してください。
27. "リポジトリ" の "メタデータ"、"DB接続" の下に "JDBC_Access" が存在しますので、右クリックし、"スキーマ情報の取得" を選択してください。
28. 下記の画面が表示されますので、"Next" ボタンを押してください。
29. "名" を展開し、"testApp" テーブルをチェックし、"Next" ボタンを押してください。
30. 下記の画面が表示されますので、"Finish" ボタンを押してください。
31. "リポジトリ" の "メタデータ"、"DB接続"、"JDBC_Access"、"テーブル" の下に "testApp" オブジェクトが作成されていることを確認できます。
事前準備はここまでとなります。
Access から kintone のデータ更新 ジョブの作成
ここでは Access から kintone のデータ更新を行う事例として、kintone アプリ "testApp" の文字列を変更するジョブを作成します。
1. Talend の "メタデータ"、"DB接続"、"JDBC_Access"、"テーブル"配下の "testApp" オブジェクトをジョブ "TrailKintone1" へドラッグ & ドロップすると、コンポーネント選択ダイアログが表示されますので、"tJDBCInput" を選択し、"OK"ボタンを押してください。
2. 次に、"メタデータ"、"DB接続"、"JDBC_kintone"、"テーブル"配下の "testApp" オブジェクトをジョブ "TrailKintone1" へドラッグ & ドロップし、コンポーネント選択ダイアログから "tJDBCOutput" を選択し、"OK"ボタンを押してください。
3. "Palette" から "tMap" オブジェクトをジョブ "TrailKintone1" へドラッグ & ドロップしてください。
4. "JDBC_Access" の "testApp" オブジェクトをクリックすると、下記のように変化するので、青枠の部分をクリックし、先ほど追加した "tMap" オブジェクトまでドラッグ & ドロップしてください。
5. 同様に "tMap" オブジェクトをクリックし、青枠の部分を "JDBC_kintone" の "testApp" オブジェクトまでドラッグ & ドロップしてください。出力名の入力を求められますので、"toKintone" と入力し、"OK" ボタンを押してください。その後、"ターゲットコンポーネントのスキーマを取得しますか ?" と問われますので、"Yes"ボタンを押してください。
6. "JDBC_kintone" の "testApp" オブジェクトをクリックし、"コンポーネント" タブの "データ操作" を "更新" に変更してください。
7. "tMap" オブジェクトをダブルクリックすると、下記の画面が表示されます。右側の "toKintone" のフィールドを "RecordId"、"AppId"、"input1" だけ残して削除してください。削除は右下のスキーマエディタにてフィールドを選択した後、赤×ボタンにて行います。
8. 次に、右上の "自動マップ" を押し、"JDBC_Access" の "testApp" オブジェクトと "JDBC_kintone" の "testApp" オブジェクトの紐付けを行います。 また、"row1" の "AppId", "RecordId" の "タイプ" を "Integer" に変更してください。 その後、"OK" ボタンを押すと、"変更を反映しますか ?" と問われますので、"Yes"ボタンを押してください。
10. エラーがなく実行が完了した際、kintone 評価版アカウントの取得 にて作成したアカウントにて、kintone にログインし、アプリ "testApp" を起動します。レコード番号1 の "input1" の値が Access から kintone のデータ更新 事前準備 の 25. にて設定したものに更新されていることを確認します。