CData Arc で、まほうの帳票「csvラポ」と連携してSaaS データから見やすい帳票を自動生成する

色川穂高 | 2022年09月05日

こんにちは。CData Software Japanの色川です。

データの活用や連携を支援するツールも浸透してきて、組織全体で用意しているIT 環境以外にも、事業部門やチーム、個々人の単位でデータ活用することも当たり前になってきていますよね。

何らかの検討や判断においてデータは欠かせず、データの確認やちょっとした資料のやり取りの機会はとても多いですよね。そういった時、皆さんはどういった形でデータをやり取りしていますか。人が見るためには、生のデータをそのままではなく、ある程度見やすい形式に整えて準備しますよね。いわゆる帳票(見やすいレポートドキュメント)です。

帳票と言うと、オーバレイのフォームを定義して、フォームにデータをマッピングして、と定型化のための設計や実装が求められがちですが、データ活用の機会がこれだけ増えると、日々のデータの確認やちょっとした資料のやり取りのために帳票設計をするのは現実的ではなく、日々の業務では「Excel でデータレイアウトや書式を整えて」というケースが多いのではないでしょうか。

この「ドキュメントの見た目を綺麗に整える作業」自体は、付加価値としてはあまり高くありませんが、日々の仕事で膨大な回数おこなわれていて実はたくさんのコストと時間が掛かっている、そんな類の作業ではないかと思います。

そこで、データから見やすい帳票を勝手に作成してくれれば、日々色々な場面で費やしているこの膨大なコストが大きく削減できそうです。今回はそんな魔法のような帳票サービスとのAPI 連携を試してみました。

この記事では、まほうの帳票「csvラポ」と連携してSaaS データを見やすい帳票に自動生成する方法をご紹介します。

まほうの帳票「csvラポ」

風神レポートで有名なアイ・コンが提供している、フォームなしでカンタンに帳票が作成できるサービスです。

データからレイアウトを自動生成し、見やすい形でポンと出力してくれる画期的な帳票サービスで、日々たくさん行われているであろう「ドキュメントの見た目を綺麗に整える」作業を、代わりにアシストしてくれます。

csvラポの名前の通り、見た目を整えたいCSV ファイル(データ)を渡せば、素早く正確に判断できるように自動的に(勝手に)整形してくれて、見やすい帳票が手に入ります。

CData Arc

CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。



この記事のシナリオ

この記事では、まほうの帳票「csvラポ」と連携してSaaS データから見やすい帳票を自動生成する方法をご紹介します。利用しているSaaS のデータを手間を掛けず見やすく整形して確認したい、誰かに渡したい、そんな場面は多いのではないでしょうか。

具体的には、CData Arc を使い、SaaS から取得したデータをCSV ファイルに変換し、csv ラポにAPI 連携して帳票を作成しメールで送付する流れを自動化する方法をご紹介します。

皆さんが日々使っているSaaS や見やすく渡したいデータはさまざまだと思いますが、この記事では「EC サイトの新規登録会員のデータを、csv ラポで自動的に見やすい帳票にしてメール添付で通知する」というシナリオを自動化してみました。

この記事ではEC サイトにヘッドレスコマースの「GMO クラウドEC」を使っていますが、他のデータソースでも、このシナリオの流れは基本的に変わりません。皆さんが帳票化したいデータソースでぜひ試してみてください。

事前準備


この記事のシナリオでは、こちらの製品を利用します。30 日間のトライアルライセンスが提供されていますので、ぜひお手元で試してみてください。

製品のインストールとナレッジ


CData Arc のインストールはこちらを参考にしてください。

CData Arc を使い始めるときは、こちらも参考にしてください。

CData Arc に関するナレッジは、こちらにまとめています。あわせて参考にしてください。

帳票化したいデータ(EC サイトの会員情報)

この記事では、EC サイトに新規登録された会員情報を帳票で確認したいケースをイメージしています。

csv ラポで生成される帳票(イメージ)

csv のまま添付する事もできますが、人が見て確認したりする時はなかなかツライですよね。それぞれのデータを識別しやすいように罫線などのスタイルがあると嬉しいですし、ページが複数に渡るときにはページ番号も欲しくなりますね。

 

このCSV ファイル、csv ラポに任せると自動的にこのようなスタイルで帳票にしてくれます。ファイル名をタイトルに、作成日を自動設定してくれて、見やすくスタイルと整えて、データ量に応じてページを分けてページ番号も振ってくれます。出力フォーマットもPDF、xlsx で選択できますので扱いも便利ですね。

連携フローの作成

それでは実際に連携フローを作成していきます。

このシナリオで作成する連携フローは以下のような流れになっています。とてもシンプルですね。

  コネクタ  内容
1 CData       EC サイトから新規登録された会員情報を抽出(CSV で出力)
2 Script      csv ラポの認証API から認証用トークンを取得して、1 で取得したデータとファイル名と併せてXML で出力
3 XMLMap      2 の情報を 4 のパラメータとしてマッピング
4 REST        csv ラポのドキュメントファイル作成API を実行
5 EMailSend   4 で生成した帳票をメール添付で送信

CData コネクタ

最初にフローの起点となるCData コネクタを配置して、データ取得の設定をします。コアカテゴリから「CData」コネクタを選択して、フローキャンバスへ配置します。

この記事では、CData API Driver を使って、GMO クラウドEC の会員情報を取得します。GMO クラウドEC への接続や会員情報の取得についてはこちらの記事を参考にしてください。

この記事では「前日以降に登録された会員」を抽出するために、条件指定でCData Driver で提供されているSQL 関数を利用しました。範囲指定したい時などに便利ですね。

Where `RegisteredAt` > L_YESTERDAY()

CData Driver で提供されているSQL 関数について詳しく知りたい方は、それぞれのDriver のヘルプを参考にしてください。

これでEC サイトへの接続とデータ抽出の設定ができました。

標準ではXML 形式でデータが抽出されますが、CData コネクタを含め幾つかのコネクタではデータ取得形式にCSV やTSV を選択することもできます。標準ではXML で取得したデータをCSVMap コネクタやCSV コネクタでCSV 変換する手順が必要です。

CSV やTSV での出力では標準のXML 形式の出力とは違い、複雑なデータ構造は扱えませんが、今回のように「シンプルなデータ構造をCSV で取得したい」には便利です。今回はこの機能を利用します。

また後続のcsv ラポでは、ファイル名を帳票タイトルとして自動的に設定してくれるので、この段階で後続に渡すファイル名を「新規登録会員_{日付}」となるように設定しました。

これで、CData コネクタの設定は完了です。

アウトプットタブから「受信」を実行し、CSV ファイルを受信できることを確認します。

REST コネクタ

次にREST コネクタを配置して、csv ラポのドキュメントファイル作成API を実行する設定をします。コアカテゴリから「REST」コネクタを選択して、フローキャンバスへ配置します。

メソッドをPOST に、URL にcsv ラポのドキュメントファイル作成API のエンドポイントを指定します。この記事では設定の概要をご紹介していますが、csv ラポのAPI 仕様の詳細についてはAPI ドキュメントを確認して設定してください。

ポイントは、csv ラポで帳票化するCSV ファイルの名前やデータを動的に設定する部分です。CData Arc のREST コネクタではリクエストボディの要素を「動的」と設定することで、このコネクタへマッピングする形で動的にパラメータを指定することができます。

これで、REST コネクタの設定は完了です。REST コネクタの前に配置されるXMLMap コネクタでマッピングされたパラメータでcsv ラポのAPI を実行して、生成された帳票がアウトプットされる設定ができました。

Script コネクタ

次にScript コネクタを配置して、csv ラポの認証API から認証用トークンを取得して、CData コネクタで取得したCSV データとファイル名と併せてXML を出力する設定をします。

ここは少し複雑にみえるかも知れませんが、強力なArcScript により、実現してする内容と比べ、とてもシンプルなコードで設定ができます。

<arc:set attr="http.URL" value="https://[csv ラポの認証API]" />
<arc:set attr="http.paramname#1" value="[認証に必要なパラメータ名(詳細はAPI ドキュメントをご確認ください)]" />
<arc:set attr="http.paramvalue#1" value="[認証に必要なリクエスト(詳細はAPI ドキュメントをご確認ください)]" />
<arc:set attr="http.sslcert" value="*" />
<arc:set attr="http.contenttype" value="application/x-www-form-urlencoded" />
 
<arc:set attr="rec.accesstoken" value="" />
<arc:set attr="rec.csvdata" value="" />
<arc:set attr="rec.csvname" value="[FileName]" />
 
<!-- 認証API の実行(Token 値の取得) -->
<arc:set attr="tmp.text" value="" />
<arc:call op="httpPost" in="http">
  <arc:set attr="tmp.text" value="[http:content]" />
</arc:call>
<arc:call op="jsonOpen" in="tmp" out="jout">
  <arc:set attr="jout.map:token" value="/json/token" />
  <arc:call op="jsonDomGet" in="jout" out="result">
      <arc:set attr="rec.accesstoken" value="[result.token]" />
  </arc:call>
</arc:call>
 
<!-- CSV ファイルを読込み、Token、CSV データ、CSV ファイル名をXML 形式で出力 -->
<arc:set attr="file.file" value="[FilePath]" />
<arc:call op="fileRead" in="file" out="out">
  <arc:set attr="rec.csvdata" value="[out.file:data]" />
</arc:call>
 
<arc:set attr="output.filename" value="[FileName | replace('.csv','.xml')]" />
<arc:set attr="output.encoding" value="UTF-8" />
<arc:set attr="output.Data">
<?xml version="1.0" encoding="UTF-8"?>
<Items>
<accesstoken>[rec.accesstoken]</accesstoken>
<csvdata>[rec.csvdata]</csvdata>
<csvname>[rec.csvname]</csvname>
</Items>
</arc:set>
<arc:push item="output" />

CData Arc に搭載されているArcScript はとてもパワフルなスクリプト言語です。連携先の仕様や、社内のビジネスルールなど、色々な事情で、標準のコネクタでは実現しにくい独自のカスタムロジックを必要とする場面もあるかと思いますが、そんな時はArcScript の出番です。この記事では詳しく触れませんが、ArcScript に興味を持って頂いた方はこちらのナレッジベースもぜひ参考にしてください。

これで、Script コネクタの設定は完了です。

このコネクタからのアウトプットは以下のようなXML になります。

<Items>
  <accesstoken>[Script コネクタで取得したcsv ラポのドキュメントファイル作成API 実行に必要なToken]</accesstoken>
  <csvdata>[API に渡すCSV データ(CData コネクタで取得したCSV データ)]</csvdata>
  <csvname>[API に渡すCSV ファイル名(CData コネクタでアウトプットされるファイル名)]</csvname>
</Items>

CData コネクタとScript コネクタをつなぎ、CData コネクタのアウトプットから受信を実行して、Script コネクタのアウトプット結果を確認してみます。

期待通りのアウトプットが確認出来たら、このXML ファイルの出力レイアウトを次に設定するXMLMap のスキーマ用に用意しておきます。

<Items>
  <accesstoken />
  <csvdata />
  <csvname />
</Items>



XMLMap コネクタ

次にXMLMap コネクタを配置して「Script コネクタで出力した(Token やCSV データ、タイトルを含む)XML ファイルを、REST コネクタで構成したcsv ラポのドキュメントファイル作成API のリクエストボディの要素にマッピングする」設定をします。コアカテゴリから「XMLMap」コネクタを選択して、フローキャンバスへ配置します。

Script コネクタから、XMLMap コネクタへ。XMLMap コネクタからREST コネクタへフローをつなぎます。

フローをつないだことで、動的パラメータの指定によりマッピングスキーマ構造が確定しているREST コネクタについては、XMLMap のデスティネーションファイルにスキーマが自動的に認識されます。ソースとなるScript コネクタについては設定時点ではスキーマ構造が分かりませんので、先ほどスキーマ用に用意したXML をアップロードすることで指定します。

マッピングは、同名の項目を持つ場合、自動的にマッピングが設定されます。今回は全ての項目を同名にしてありますので、マッピング設定はこれで完了です。

これで、XMLMap コネクタの設定は完了です。

これで「EC サイトの新規登録会員のデータを、csv ラポで自動的に見やすい帳票にする」までの流れが出来上がりました。

EmailSend コネクタ

最後にEmailSend コネクタを配置して、csv ラポが見やすく生成してくれた帳票を、添付ファイルとして指定した宛先にメール送信する設定をします。コアカテゴリから「EmailSend」コネクタを選択して、フローキャンバスへ配置します。

利用するSMTP サーバに併せて、接続パラメータを設定します。

宛先や件名を設定したら、メッセージの種類を「添付ファイル」に選択します。

これで、EmailSend コネクタの設定は完了です。REST コネクタから、EmailSend コネクタにフローをつなぎます。

これで「EC サイトの新規登録会員のデータを、csv ラポで自動的に見やすい帳票にしてメール添付で通知する」フローが出来上がりました。



連携フローの実行

作成したフローを実行して確認してみましょう。

起点となるCData コネクタからフローを実行してみます。アウトプットタブから「受信」を実行します。

REST コネクタのアウトプットタブでは、csv ラポのドキュメントファイル作成API が作成してくれたPDF ファイルが確認できます。期待通りに見やすく帳票化してくれてますね。

 

フローの終点となるEmailSend コネクタのインプットタブではメール送信が成功していることが確認できます。

 
もちろん、メールボックスには期待通りに届いています。

SaaS 上のデータを抽出して、手間を掛けずに見やすく整えた帳票にして、メールで送りたい、そんなフローが自動化できました。

連携フローの自動実行

CData Arc ではフローを定期実行するスケジューラ機能を持っています。今回のシナリオであれば、フローの起点となるCData コネクタの「オートメーション」タブで設定することができます。1時間に1度、毎時0分に定期実行する場合は、このように設定します。

おわりに

定型化しにくい変化の早い業務でも、できるだけ自動化したい、見やすい帳票を利用したい、そんな場面は結構多いのではないでしょうか。

そんな場面には、データ(CSV)を渡せば、オーバレイフォームなしで、自動的に気を利かせて見やすい帳票をポンと出してくれるcsv ラポがとてもフィットしそうです。

帳票を使いたい場面、帳票化したいデータはさまざまだと思いますが、CData Arc とCData Drivers と組合せることで、数多くのデータソースから簡単にデータを取得できます。そのデータをcsv ラポに連携して活用すれば、手軽に組んだ自動化フローの中で、ライトに帳票を組み込むことができそうです。

CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。

皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。

arc.cdata.com

お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

www.cdata.com


この記事では CData Arc™ 2022 - 22.0.8270.0 を利用しています。