各製品の資料を入手。
詳細はこちら →Salesforceのレコードを元に Excelファイルデータを生成:CData ArcのExcel コネクターの使い方
こんにちは。CData Software Japan リードエンジニアの杉本です。
ローコードのデータ連携ツールであるCData Arcでは様々なコネクターをサポートしていますが、ちょっと使い方がイメージしづらいものもあります。
そこで今回はお問い合わせをよく頂く「Excel」コネクターの使い方を解説します。
Excelコネクターとは?
CData ArcのExcelコネクターは受け取ったXMLデータを元にExcelファイルを生成することができるコネクタです。
http://cdn.arcesb.com/help/AZF/mft/Excel.html
以下のようなテンプレートを使って、Excelファイルを出力することが可能になっています。
なお、注意していただきたいのは、Excelファイルを生成するために使うためのコネクターであり、Excelファイルからデータを読み取ることを目的としてはいない、という点です。
もし、Excelファイルからデータを読み取りたい場合は別途 CData コネクターとCData Excel Driverの利用を検討してください。
https://www.cdata.com/jp/drivers/excel/
前提条件
ExcelコネクターはSalesforceから取得したデータ、CData Arc上でのXMLの構成によって出力するアプローチが異なります。
XMLファイルが1レコード単位の場合は、そのレコード毎にExcelファイルが生成されます。 XMLファイルに複数レコードの構成(Salesforce から一括取得の構成)をしている場合は、一つのExcelファイルに複数レコードのデータを出力することが可能です。
今回の記事でデモとする対象データは共通で「Account」テーブルに含まれる「AccountNumber」「Name」「Phone」の3つの項目としました。
以下の様なデータが取得される想定です。
テンプレートの作成方法
テンプレートは以下のように 「<rsb:call op="xmlDOMSearch?uri=[FilePath | urlencode]&xpath=/Items/Account">」「</rsb:call>」というXMLの設定と 受け取ったXMLの値を取り出すための「[xpath("Name")]」という要素で構成されます。
XMLはコメントでもセルに入力しても大丈夫です。 「<rsb:call op="xmlDOMSearch?uri=[FilePath | urlencode]&xpath=/Items/Account">」「</rsb:call>」の間の列もしくは行の範囲内でデータを取り出すための 「[xpath("Name")]」という要素が利用できます。
また、XML設定で重要なポイントは「xpath=/Items/Account」の部分です。これは受け取ったXMLのどの深さの要素を取得するか、を定義しています。
今回は以下のようなXMLを対象とするので、Itemsに含まれる、Accountの要素を取得するため「/Items/Account」を指定しています。もし、Contactテーブルになった場合は「/Items/Contact」となります。
作成したテンプレートは以下のようにExcelコネクタのTemplateFileへ指定します。
1レコード・1Excelファイルに出力する場合
先程のテンプレートで実際にSalesforceからデータを取得してみます。 以下のようにSalesforceのAccountレコードはXMLファイルそれぞれで出力されます。
最終的なエクセルテンプレートの出力も、1XMLファイル1Excelの形で出力されます。
そして、Excelファイルを開いてみると、以下のように結果が出力されます。コメントなどに指定していたXMLは消えてします。
複数レコード・1Excelファイルに出力する場合
複数レコードをまとめて1Excelファイルに出力したい場合は、Salesforceコネクタ側でまとまったXMLファイルを出力するようにオプションを設定します。
Salesforceコネクタを開き、対象のOutputをコードで編集します。
そして、対象のクエリの隣に「batchResults="true"」を設定します。
これにより取得されるXMLファイルが一つだけになります。
中身は以下のように複数のレコードが一つのXMLファイルになっています。
最終的に出力されるExcelファイルも一つとなり
以下のような結果を得ることができます。 ポイントは「<rsb:call op="xmlDOMSearch?uri=[FilePath | urlencode]&xpath=/Items/Account">」「</rsb:call>」で指定された要素が繰り返しロードされていく、という点です。これで連続した帳票なども構成できます。
シンプルな一覧を作りたい場合
シンプルな一覧テーブルを作りたい場合は、以下のようなExcelテンプレートを構成します。 始点の「<rsb:call op="xmlDOMSearch?uri=[FilePath | urlencode]&xpath=/Items/Account">」をレコードの1行目に指定してください。 終点の「</rsb:call>」は次のレコードの始点になります。
これでCData Arcを実行すると、以下のようなデータが得られます。
おわりに
今回はシンプルなテンプレートを作成しましたが、ネステッドされたXMLファイルなどを使うことでヘッダー・明細形式のようにも対応できます。
もし不明な点があれば、お気軽にテクニカルサポートまで連絡ください。