CData Arc を使ってSQL Server のデータを楽楽明細の帳票データAPI に連携する

by 色川穂高 | 2022年02月18日

f:id:irokawah:20220217161045p:plain

この記事では、クラウド帳票発行サービス売上シェアNo.1 である楽楽明細のAPI に連携して、帳票発行を自動化するフローの作成方法をご紹介します。

楽楽明細とは

電子請求書発行システム「楽楽明細」は、請求書、納品書、支払明細などの帳票をWEB上で発行するクラウド型のシステムです。

www.rakurakumeisai.jp

楽楽明細ではAPI 連携機能(オプション)が提供されています。

楽楽明細では以下のようなAPI が提供されていますが、取込系のAPI では対象のデータをCSV で渡すのが特徴的です。

API 取込(登録)
顧客データCSV 一括取込 API *
顧客データ一括取込状況取得API
帳票データCSV 一括取込 API *
帳票ファイル一括取込API *
帳票データ一括取込状況取得API
帳票一括取込情報取得API
帳票一括取込情報削除API
顧客情報取得API (一括)
顧客情報取得API (個別)
顧客情報削除API
顧客情報変更差分取得API
帳票情報取得API
帳票一括取得情報検索API
帳票一括取得API

API 連携を利用すれば、帳票発行を自動化できますが「帳票の基となるデータを持つデータソースへアクセスして、データを取得しCSV へ変換して、楽楽明細のAPI 仕様に沿って連携する」流れをプログラムするのは結構大変ですよね。

この記事では、この一連の流れをCData 製品で自動化を担うCData Arc を使ってノーコード(ローコード)で作成します。

CData Arc とは?

ファイル転送(MFT)とSaaSデータ連携をノーコードで実現できるデータ連携ツールです。ファイル・データベース・SaaS API、オンプレミスやクラウドにある様々なデータをノーコードでつなぐ事ができます。

arc.cdata.com

この記事のシナリオ

この記事では「SQL Server からデータを取得し、帳票用のCSV に変換して、楽楽明細の帳票データCSV 一括取込 API に連携する」シナリオを作成します。

f:id:irokawah:20220216204729p:plain

この記事では、SQL Server を例にしていますが、帳票の基となるデータが存在するデータソースやデータ構造は、ご利用のシステムやサービス、出力したい帳票の種類によってさまざまだと思います。CData Arc のCData コネクタを利用すれば、あらゆるデータソースへのアクセスやCSV 化をスピーディに実現できます。

f:id:irokawah:20220217160334p:plain

また、CData Arc のWebhook 受信を組み合わせることで、SaaS やアプリケーションのイベントで楽楽明細の帳票API へ連携して帳票作成、などのケースも実現できそうです。

www.cdatablog.jp

必要なもの

CData Arc は30日間フル機能を利用できるトライアルライセンスが提供されています。ぜひお手元で試してみてください。

製品のインストール等はこちらの記事を参考にしてください。

www.cdatablog.jp

楽楽明細の準備

f:id:irokawah:20220216204750p:plain

API トークンの取得

楽楽明細API に接続するためにAPI トークンが必要となります。楽楽明細であらかじめ取得しておいてください。

f:id:irokawah:20220216204802p:plain

帳票の登録

この記事では、出力する帳票のテンプレートとして標準で用意されている「縦型標準帳票」を利用しました。

f:id:irokawah:20220216204813p:plain

帳票CSV の取込フォーマットを指定・確認します。

f:id:irokawah:20220216204823p:plain

API で取込・発行する帳票のプレビューとしてはこのようなイメージです。

f:id:irokawah:20220216204914p:plain

SQL Server の準備

この記事では、シナリオの流れを分かりやすくするために、シンプルにSelect すればそのまま帳票用データとなる構成のテーブルを用意しました。

f:id:irokawah:20220216204943p:plain

CData Arc の基本的な使い方

CData Arc の起動方法や基本的なフローの作り方についてはこちらをご覧ください。

arc.cdata.com

arc.cdata.com

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

SQL Server のデータをCSVで取得して、楽楽明細の帳票データCSV 一括取込 API に連携する

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

  コネクタ 内容
1 SQL Server SQL Server のデータをSelect してCSV で出力
2 Script 1.の出力結果をShift-JIS に変換
3 REST 2. のCSV ファイルで帳票データCSV 一括取込 API に連携

f:id:irokawah:20220216204956p:plain

SQL Server コネクタの配置と構成

最初にフローの起点となるSQL Server コネクタを配置し「帳票用のデータを取得」します。その他カテゴリから「SQL Server コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220216205008p:plain

Connection でSQL Server の接続情報を作成します。ここで作成した接続情報は同じSQL Serverに接続するSQL Server コネクタで共有することができます。

f:id:irokawah:20220216205017p:plain

Action は「Select」。対象テーブルに今回用意したテーブルを選択します。

f:id:irokawah:20220216205027p:plain

f:id:irokawah:20220216205038p:plain

この記事では帳票向けのデータ構造を用意していますのでシンプルなSelect ですが抽出するカラムの選択や、条件設定もここで行えます。例えば、請求情報と請求明細など親子関係にある情報なども一度に取得することができます。

「Preview XML Output」で取得されるデータをプレビューすることができます。

f:id:irokawah:20220216205048p:plain

CData Arc のデフォルトの振る舞いでは、レコード単位にファイルを出力しますので、まとめて(バッチで)出力するように Max Records-1 に設定します。

f:id:irokawah:20220216205100p:plain

CData Arc のSQL Server コネクタやCData コネクタを含むデータベース系コネクタでは、結果をXML 以外にCSV やTSV で直接出力することができますので、今回はこの機能を利用してダイレクトにCSV で出力します。

f:id:irokawah:20220216205112p:plain

なお、CSV やTSV 出力は複雑なクエリには対応していないので、取得するデータ構造が複雑だったり、加工・変換が必要な場合は取得した後に、CSV コネクタなどを利用してください。

cdn.arcesb.com

CData Arc のデータマッピングや変換について興味のある方はこちらも併せてごらんください。

arc.cdata.com

ここまでの設定内容で正しく取得できるか確認するために、アウトプットタブから「受信」を実行します。CSV が取得できていれば成功です。

f:id:irokawah:20220216205214p:plain

Script コネクタの配置と構成

楽楽明細の帳票データCSV 一括取込 API では、データ部に利用するCSV の文字コードはShift-JIS で用意する必要があります。CData Arc の内部はUTF-8 で処理していますので、先ほど取得したCSV の文字コードをShift-JIS に変換する必要があります。この記事ではCData Arc で利用できるArcScript を利用して、UTF-8 からShift-JIS に変換します。

Script コネクタを配置し「先ほどの出力結果をShift-JIS に変換」します。「コア」カテゴリからの「Script コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220216205229p:plain

スクリプトエディタに以下のようなスクリプトを記述します。このスクリプトは「フローを流れるファイルをUTF-8 で読込み、Shift-JIS で出力」しています。

<arc:set attr="file.file" value="[FilePath]" /> 
<arc:set attr="file.encoding" value="UTF-8" /> 
<arc:call op="fileRead" in="file" out="out"> 
  <arc:set attr="fileOut.data" value="[out.file:data]" /> 
</arc:call> 

<arc:check attr="fileOut.data"> 
  <arc:set attr="fileOut.filename" value="[FileName]" /> 
  <rsb:set attr="fileOut.encoding" value="Shift-JIS" /> 
  <arc:push item="fileOut" /> 
  <arc:else> 
    <arc:throw code="NoData" desc="No File Data."/> 
  </arc:else> 
</arc:check>

f:id:irokawah:20220216205244p:plain

ArcScript に関心のある方は、ぜひこちらのナレッジベースも活用してください。 arc.cdata.com

REST コネクタの配置と構成

最後に楽楽明細のAPI を実行するREST コネクタを配置し「帳票データCSV 一括取込 API へのPOST を設定」します。「コア」カテゴリからの「REST コネクタ」を選択し、フローキャンバスへ配置します。

f:id:irokawah:20220216205315p:plain

メソッドを POST に設定し、URL に帳票データ CSV 一括取込 API の接続先URL を設定します。

f:id:irokawah:20220216205336p:plain

ヘッダに X-WB-apitoken として、取得したAPI トークンの値を設定します。

f:id:irokawah:20220216205347p:plain

最後に、帳票の情報と帳票のデータをボディで設定します。ボディの種類に form-data を選択します。

f:id:irokawah:20220216205400p:plain

帳票の情報を指定する パラメータ(JSON部) には、"json" の名前で、以下のように「帳票種別ID」と「取込方法(新規発行)」の最小限の設定をしています。他に指定できるパラメータについては、Web API 連携設定マニュアルの「帳票データ CSV 一括取込 API - パラメータ(JSON部)」をご確認ください。

{"reportTypeId": "事前に作成した帳票の帳票種別ID" ,"isNewIssues":"1"}

帳票のデータを指定する パラメータ(CSV データ部) には、"files[0]" の名前で、フローで連携されるファイルを指定します。

f:id:irokawah:20220216205420p:plain

SQL Server - Script - REST 、それぞれのコネクタをフローでつないで保存します。

f:id:irokawah:20220216205456p:plain

これで「SQL Server のデータをCSVで取得して、楽楽明細の帳票データCSV 一括取込 API に連携する」フローができあがりました。

連携フローの実行と確認

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

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

f:id:irokawah:20220216205522p:plain

フローの終点となるREST コネクタのアウトプットタブで、帳票データCSV 一括取込 API の実行結果(レスポンス)を確認することができます。

f:id:irokawah:20220216205535p:plain

取込IDが「22」で取得されているのが確認できます。

f:id:irokawah:20220216205542p:plain

この記事では、楽楽明細のフローを「承認あり」で実行していますので、API の実行により承認待ちの帳票が作成されていることが確認できます。

f:id:irokawah:20220216205602p:plain

取込履歴から、API 連携した取込ID「22」の帳票データが確認できます。

f:id:irokawah:20220216205848p:plain

楽楽明細で発行を承認し、発行された帳票を確認します。

f:id:irokawah:20220216205925p:plain

f:id:irokawah:20220216205932p:plain

無事に「SQL Server のデータをCSVで取得して、楽楽明細の帳票データCSV 一括取込 API に連携する」ことができました。

シナリオの自動実行

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

f:id:irokawah:20220123232049p:plain

おわりに

この記事のようなシナリオは、Web API もファイルもどちらも上手く扱える必要があります。

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

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

arc.cdata.com

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

www.cdata.com


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

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。