シーオーリポーツ 帳票クリエータでCData ODBC Driver for Salesforceを使いSalesforceデータで帳票を作成する方法


# はじめに

本記事では帳票ツールのシーオーリポーツ 帳票クリエータを使って、Salesforceの顧客リストを取得し、帳票として出力する方法を解説します。

# シーオーリポーツ 帳票クリエータとは

シーオーリポーツ 帳票クリエータは株式会社エイチ・オー・エスが提供する帳票作成ツールです。

https://www.hos.co.jp/package/dc3dotnet/

GUIベースで各種データソースと紐付いた帳票を作成することが可能です。

<img width="1368" alt="マッピングツール.png" src="https://qiita-image-store.s3.amazonaws.com/0/56301/28d2ec69-c1a6-c863-f763-dc265eca70cd.png">

本記事では「シーオーリポーツ 帳票クリエータ Ver.3 for .NET」の体験版を使用して、Salesforceをデータソースとした帳票を作成してみます。

# 実現イメージ

今回はシーオーリポーツ 帳票クリエータからSalesforce APIに接続しますが、シーオーリポーツ 帳票クリエータは単純にSalesforceと接続することができません。

それはシーオーリポーツ 帳票クリエータがどのようにSalesforce API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/9e0416d6-6e15-c68a-b756-238f972160d1.png)

そこで、CData ODBC Salesforce Driverを用いて、このボトルネックを解決します。

まず、シーオーリポーツ 帳票クリエータからはODBCインタフェースでSQL（Select文）をCData Salesforce ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData Salesforce ODBC Driverは、SalesforceのWebAPIのエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して発行します。

リクエスト後、XMLフォーマットで返ってきたデータセットはCData Salesforce ODBC DriverがODBCインタフェースのResultsetに変換してシーオーリポーツ 帳票クリエータに返します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/235434f4-922c-21f0-5efd-c3920e7ffe2b.png)

これにより、シーオーリポーツ 帳票クリエータからアドホックにSQLによるリクエストがあったタイミングで最新のデータを Salesforce から取得することが可能です。

それでは実際に、シーオーリポーツ 帳票クリエータを使ってSalesforce データを元にした簡単な帳票を作成してみたいと思います。

# 必要なもの
1. シーオーリポーツ 帳票クリエータ Ver.3 for .NET 
2. Salesforce アカウント
3. CData ODBC Salesforce Dirver

## シーオーリポーツ 帳票クリエータ Ver.3 for .NET  のインストール

シーオーリポーツ 帳票クリエータ Ver.3 for .NET は以下のサイトからトライアル版を取得できます。

https://www.hos.co.jp/download/

インストーラーを入手後、Wizardに従ってシーオーリポーツ 帳票クリエータ Ver.3 for .NET のインストールを進めてください。

## CData Salesforce ODBC Driverのインストール

以下のサイトから評価版ビルドをダウンロードします。

- [CData Salesforce ODBC Driver](http://www.cdata.com/jp/drivers/salesforce/odbc/)

ダウンロードされたインストーラ形式(.exe)のファイルを起動します。
(注)ODBCデータアドミニストレーターを閉じてから実行してください。
(注)途中オンラインでのアクティベーションが実行されるためインターネットアクセス出来る環境で行ってください。

下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/dda13164-103d-3206-7869-8d359aa642a2.png)

インストールが完了するとデフォルトブラウザが起動して製品ヘルプファイルが起動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e81e3e7d-b4c4-60ef-3491-8f7085f5fc98.png)

また、ODBCのDSN構成ダイアログが表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/f9745700-e3bb-0790-a02b-2b136d07f0ab.png)

（注）ODBCデータソースアドミニストレーターはマシンのビット数（32bit, 64bit）にあった方をご利用ください。

## CData Salesforce ODBC Driverの接続設定

起動した「ODBCのDSN構成」ダイアログ内の下記の項目に、各種必要な情報を入力します。

| Salesforceの接続情報 | 設定項目 |
|:-----------------|------------------|
| ユーザID | User |
| パスワード |Password|
| セキュリティトークン |Security Token|

詳しくは[Salesforce Sales Cloud 開発者アカウント、および、セキュリティトークン取得方法](https://qiita.com/kuwazzy/items/68bc7c4a5b36721cfe83)を参照してみてください。

「接続テスト」ボタンをクリックします。下記のようなダイアログが表示されれば成功です。「ODBCのDSN構成」の「OK」ボタンをクリックして保存します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8f3b7e2b-3381-eeb7-35bf-87fc8992a158.png)

## フォームの作成

最初にデータをマッピングするためのベースとなるフォームを作成します。

まず、帳票クリエータ フォームエディタを立ち上げます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/ddafb162-6f37-b177-d464-d7b98c808f70.png)

今回は単純に一覧を表示する帳票を作成するので、右ナビゲーションからリストフィールドをフォーム上に配置します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/39447022-06cc-0d54-602d-3fb7c78f3b2f.png)

以下のようにフォームを作成後、保存を実行し、任意のフォルダにフォームを保存します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/208a7354-70e3-ae9f-dbd4-08bf33f85b32.png)

以上でフォームの作成は完了です。

## マッピングの作成

次に帳票クリエータ マッピングツールを立ち上げて、事前に作成したフォームにSalesforceのデータをマッピングします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/4cfceafa-00cf-2c8d-4621-32e9c19e434e.png)

まずマッピングツールの左上のリボンから「新規作成」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/2847bed8-b6fb-fc8a-63c2-e3e9589d77ba.png)

設定ファイル新規作成ウィザードが開始されるので、各種情報を任意の値で入力し、「参照」ボタンから先程のフォームを指定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e79b7145-323d-4b0b-e704-f341396052d9.png)

次に任意の出力設定を入力し「完了」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/9beb1ce8-df77-695b-82e5-3c3f968385e9.png)

「引き続き、レコードセットの編集を行いますか？」というダイアログが表示されるので「はい」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/c4980817-d31a-e0e6-e59f-1b271cfc291f.png)

このダイアログでSalesforceからのデータ取得設定を行っていきます。「新しいデータソースでレコードセットを作成する」の中から「データベース」を選択し、「次へ」をクリック

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/ed266c0e-9025-f145-4c9f-3edfc472c03c.png)

データ取得実行時のSQLとODBC Datasourceに接続するための各種プロパティ入力画面が表示されるで、下記の通り入力を行います。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/12312390-2fe7-aca7-2d2d-6a5149842c4f.png)

| 入力項目名 | 設定項目 |
|:-----------------|------------------|
| SQL | Select * from Account |
| ドライバ名 | CData ODBC Driver for Salesforce |
| 接続文字列 | DSN=CData Salesforce Source |
| 接続ユーザ | admin（ローカルのODBCに接続するため、任意の値で問題ありません。） |
| パスワード | admin（ローカルのODBCに接続するため、任意の値で問題ありません。） |
| データソース名 | CData |
| サーバ名 | localhost |

以下のような形で入力できればOKです。「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/96c50ab3-7b84-9ddb-39f8-e4c1a7f8cf96.png)

この画面で先程入力したSQLを元にしたデータ取得結果のプレビューを確認できます。内容を確認し、問題が無ければ「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/54a0dc33-7070-ea72-d00c-9fe32c563c20.png)

以上でレコードセットの作成が完了します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/015a5b8e-b154-839e-d183-0e605e75cef4.png)

作成完了後、右ナビゲーションに作成されたレコードセットのカラム一覧が表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/2f09a5df-88bf-5efa-2c38-8d2e50036e0d.png)

それでは実際に各カラムをマッピングしていきたいと思います。なお、フォームで事前に作成していたリストはそのままだと各セルが独立してしまっているため、一覧表示を行う仕様になっていません。

事前に対象のリストを選択し「明細リストに設定」を実行しておきましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/919d6c89-1be6-f114-3370-2cb5dc9dd4b8.png)

以下のように、「上から下」の明細リストとして設定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/59628aa5-3710-2cf6-f8d1-aa85e2dc5321.png)

明細リストとして設定すると、各行に対してレコードセットをマッピングすることができるようになります。

ドラッグアンドドロップで、レコードセットから各カラムを紐づけます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/b4f053da-403c-25eb-be27-7a5ee9da2872.png)

これでフォームとデータセットのマッピングが完了です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/3c8fd039-305f-a1cc-4688-6a390f2c20aa.png)

では実際にどのように表示されるかプレビューを実行してみます。リボンから「プレビュー」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/657f93ca-2e58-68c2-3934-36f41642dd5f.png)

以下のようにプレビュー画面に切り替わり、Salesforceからデータが取得できていることが確認できました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/b1a884ed-0d89-d912-c672-dbb053f606e3.png)

# おわりに

今回はSalesforce のデータを取得してみましたが、CDataではSalesforce以外にもおよそ100種類ほどのODBC Driverを提供しています。

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

ERP・CRM・NoSQLやSNS等、様々なツールからODBC 経由でデータが取得できるので、是非シーオーリポーツ 帳票クリエータと組み合わせて様々な帳票作成に役立ててみてもらえればと思います。