CROWNIX と CData JDBC Driver でkintone やAccess のデータを出力してみる

f:id:sennanvolar44:20200628215308p:plain

こんにちは!CData の宮本です。

今回は帳票ツールのCROWNIX にCData Driver を組み込んで、Access とkintone のデータをCData JDBC Driver を使って簡単に帳票出力する方法をご紹介します。

CROWNIX とは?

簡単に基幹系DBや社内で持っているDBデータを、さまざまな形式で出力することができる帳票ツールです。
https://m2soft.co.jp/
f:id:sennanvolar44:20200626175205p:plain
レポートの生成・出力を行うクライアントツールはライセンスフリーで利用することができるため、コストを大幅にカットすることが見込めます。

CROWNIX はデータベース連携用モジュールとしてERS Data Server というサーバ用製品があり、Report Viewer から受けた内容をドライバーを経由してDBにSQLを発行し、受け取ったデータをReport Viewer に渡してPDFやExcelなど様々な形式にして出力します。

CData Driver とは?

さまざまなクラウドサービスやファイル、規格に標準 JDBC やODBC、 ADOなどでアクセスすることができる 製品になります。
現在では 200 近くのサービス向けのDriver を提供しています。

https://www.cdata.com/jp/drivers/kintone/jdbc/
f:id:sennanvolar44:20200626182126p:plain

Accessは下記リンク

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

CROWNIX ERS から kintone と Access にアクセスする構成

サーバ製品のCROWNIX ERS は、JDBCインターフェースで外部DBとの接続を行いますので、CData JDBC Driver を使ってkintone と Access への接続を実現します。
クライアント側のCROWNIX Report からはCROWNIX ERS にアクセスすることで、各データソースへの接続設定をする必要なくアクセスすることが可能となります。
f:id:sennanvolar44:20200628214640p:plain

必要なもの

CROWNIX から kintone データをPDF出力する手順

CROWNIX のインストール

CROWNIX ではデータ接続部分のCROWNIX ERS と、帳票デザインや出力を行うCROWNIX Report をそれぞれインストールしていきます。 CROWNIX Report は以下のようにダウンロードファイルの中にあるsetup.exe を実行するだけで完了です。
f:id:sennanvolar44:20200628221418p:plain

ERS Data Server は、Apache Tomcat 上で動かす構成になっていますので、Java + Tomcat を事前にインストールしておきます。
それぞれのインストールおよび環境変数やファイアウォールなどの設定はERS 導入用のマニュアルに記載されていますので省略します。

上記までの準備ができたあと、ダウンロードしたERSモジュールをTomcat 上にコピーするだけであとはOKです。
f:id:sennanvolar44:20200628222649p:plain

次は、CData JDBC Driver のインストールを行っていきます。

CData JDBC Driver のインストール

今回はkintone とAccess への接続を行いますので、それぞれのJDBC Driver をインストールしていきます。

以下リンクからCData kintone JDBC Driver の画面にアクセスし、ダウンロードボタンからJDBC Driver をダウンロードします。
https://www.cdata.com/jp/drivers/kintone/jdbc/
f:id:sennanvolar44:20200628222940p:plain

ダウンロードファイルを解凍後、中にあるjar ファイルをダブルクリックすることでインストールが開始されます。
f:id:sennanvolar44:20200628223313p:plain

基本的に全て次へでインストールが完了します。
f:id:sennanvolar44:20200628223451p:plain

同じ要領で、CData Access JDBC Driver もインストールします。
※インストール部分は省略します。
https://www.cdata.com/jp/drivers/access/jdbc/

CData JDBC Driver の再配置

インストールしたkintone と、Access のjarファイルおよびライセンスファイルをERS Data Server のlibフォルダにコピーします。
■コピー元
f:id:sennanvolar44:20200628232945p:plain
■コピー先
f:id:sennanvolar44:20200628233313p:plain

データソースへのコネクション設定

まずはERS Data Server を起動するために、tomcatのstartup.bat を実行します。
実行後ログインし、サイドメニューから「データソース」→「Database」→「JDBC」と進み、接続情報を入力します。

f:id:sennanvolar44:20200628234216p:plain

kintone の場合、サンプルになりますが以下のようなURLを設定します。
jdbc:kintone:URL=https://xlqc1.cybozu.com/;User=xxxxxx;Password=xxxxxx;

なお、driver の位置に入れるドライバークラス名は、インストールフォルダにあるヘルプドキュメントにも記載していますので、他のデータソースのドライバーを使用の場合はここを参照ください。
f:id:sennanvolar44:20200628233905p:plain

Access も同様に設定します。
f:id:sennanvolar44:20200628234854p:plain

それぞれ接続テストでOKならば、設定情報を保存します。

登録したサービスの有効化

「権限設定」→「権限変更」をクリックします。
f:id:sennanvolar44:20200629094826p:plain

先ほど作成したデータソースが「すべてのサービスリスト」に表示されているので、両方を選択して左側の「サービスメンバー」に移動して保存します。
f:id:sennanvolar44:20200629095012p:plain

Report Designer で帳票レイアウトの作成~データマッピング

帳票レイアウト作成
Report Designer を起動させ、新規レポートから「表」→データベースの接続方式に「Data Server」を選択したらOK ボタンをクリックします。
f:id:sennanvolar44:20200628235743p:plain

ヘッダーから表を選択して挿入し、kintone に保存しているデータを出力する明細表を作成します。
※Accessでも同じフォーマットを使用します。
f:id:sennanvolar44:20200629001616p:plain

kintoneデータのマッピング
次は実際にkintone、Access にアクセスしてデータを取得します。
ヘッダーの「データソース」から「データベース接続」をクリックし、ERS Data Server へのURLとアカウント情報を入力後に「認証」ボタンをクリックします。
接続に成功すると、登録されたサービス名の一覧に先ほど有効化したサービス(データソース)が表示されますので、両方を選択して「接続」ボタンをクリックします。
f:id:sennanvolar44:20200629095610p:plain

あとは取得したいデータをSQLで定義します。
クエリの定義をクリックしてクエリ定義画面を表示し、対象のテーブルを選択します。まずはkintone にある活動履歴(営業支援パック)アプリのデータを選択します。
f:id:sennanvolar44:20200629101114p:plain

取得したいカラムを選択します。今回は特に条件は設定しないので、表示順序の設定を行うため「次へ」ではなく、「整列」タブをクリックします。
f:id:sennanvolar44:20200629101730p:plain

Id を昇順で指定しました。
f:id:sennanvolar44:20200629102025p:plain

最後に「クエリを実行してカラム名を読み取り」をチェックします。チェックをすることでReport Designer のデータセットにカラム名だけを表示して扱うことができます。
f:id:sennanvolar44:20200630153948p:plain

入力が終わりましたら下にある「SQL検証」ボタンをクリックして、正しくSQLが実行できることを確認し、問題なければOKボタンをクリックします。

OKボタンを押下後は取得対象項目が左側に表示されますので、あとは一つずつドラッグアンドドロップでレイアウト側の該当箇所と紐づけを行います。
f:id:sennanvolar44:20200630154508p:plain

ここで、一度設定した内容を保存しておきます。

kintone データの出力

ホームタブから「プレビュー」→「Report Viewerでプレビュー」をクリックします。
f:id:sennanvolar44:20200629102821p:plain

このようにkintone にあるデータが帳票レイアウトにマッピングされて表示されました。プレビューから実際にファイルに出力する場合は、ヘッダーメニューからExcel やPDF などを選択します。
f:id:sennanvolar44:20200629104610p:plain

以下は、PDFを選択した場合の出力結果です。
f:id:sennanvolar44:20200629104516p:plain

Access データの出力

それでは、今度はデータソースをAccess に変更してみます。
Access には先ほどkintone で使用したテーブルと同じ構成のデータを保存してあります。違いとしては、担当者名や案件にAccessと付与しているくらいです。
f:id:sennanvolar44:20200629105419p:plain

Report Designer にてクエリの定義でAccess のテーブルからデータを取得するようサービスのプルダウンから「Access」を選択します。その後、対象のテーブルや項目を選択してクエリを保存します。
f:id:sennanvolar44:20200629141209p:plain

データのマッピングを行った後、またプレビューを実行して今度はAccess にあるデータを出力してみます。
f:id:sennanvolar44:20200629141336p:plain

Access に保存していたデータが正しく出力されていることが確認できました。
f:id:sennanvolar44:20200629141901p:plain

Access データ取込み時にOut of memory が発生する場合

Accessのテーブルの項目にて、データ型に長いテキストというカラムがある場合、
f:id:sennanvolar44:20200630160124p:plain

このテーブルをReport Designer で選択してレコードの表示ボタンでSQL を実行しますと、Out of memory というエラーメッセージが表示されてしまいます。
f:id:sennanvolar44:20200630162500p:plain

実際にAccess との接続を行っているCData JDBC Driver のログを参照して、Access からデータを取得する際にエラーが発生しているのかどうか確認してみます。ログの出力方法は、ERS Data Server の接続情報に以下の内容を追加することでログを取得することができます。
例)Logfile=C:\log\access.log;Verbosity=5;
※Verbosityとはログレベルになり、1が最小、5が最大となっています。詳しくは以下の記事をご参照下ください。

https://www.cdata.com/jp/blog/2018-12-07-110000

CData のログでは以下のようにデータ取得が正常に完了していることから、CData JDBC Driver → ERS Data Server へデータを渡したあとにエラーが発生していることがわかりました。
f:id:sennanvolar44:20200630163320p:plain

実はこの場合、テキスト型にキャストすることでERS Data Server では弾かれていた型の項目も扱えるようになります。キャスト方法は以下のような内容になります。
例)CAST(Access活動履歴.顧客名 AS String) as 顧客名
f:id:sennanvolar44:20200630172322p:plain

Access とCData JDBC Driver のデータ型のマッピングについては以下のヘルプドキュメントをご参照ください。
CData JDBC Driver for Access 2019J - データ型マッピング

SQL を修正後にプレビューを行ってみると、先ほど出ていた「Out of memory 」というエラーが解消されてAccess のデータが表示できました。
f:id:sennanvolar44:20200630174915p:plain

さいごに

いかがでしたでしょうか。CROWNIX とCData JDBC Driver を組み合わせることで、クラウドサービスやJDBC ではアクセスできないツールなどのデータも帳票出力することができるようになります。 CData JDBC Driver 以外にもODBC Driver や ADO.NET、Excel Add-ins など全製品を30日間無料で使うことができますので、是非お試しくださいませ。

www.cdata.com

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

関連コンテンツ