InterSystems Reports は Logi Analytics 社の製品である Logi Report(旧名:JReport)使用しています。InterSystems Reports は、InterSystems IRIS、InterSystems IRIS for Health で動作し、以下に示すように堅牢でモダンなレポートソリューションを提供します。
- レポート開発者とエンドユーザーの両方がカスタマイズ可能な、組み込み型のオペレーショナルレポート。
- 請求書、文書、フォームなどの特殊なレイアウト要素や、特定のフォームグリッドを開発することができるピクセルパーフェクトなフォーマット。
- 集約されたデータと詳細なデータの構造を提供する帯状のレイアウト。
- ヘッダー、フッター、アグリゲーション、詳細データ、画像、サブレポートを正確に配置。
- 多彩なページレポートタイプ。
- PDF、XLS、HTML、XMLなどのファイルフォーマットへのエクスポート、印刷、法規制遵守のためのアーカイブを含む、大規模なダイナミックレポートのスケジューリングと配布。
InterSystems Reports は、以下の内容で構成されています。:
- レポートデザイナーには「デザイン」タブと「プレビュー」タブがあり、レポート開発者はライブデータを使ったレポートの作成とプレビューができます。
- エンドユーザーにブラウザベースのアクセスを提供し、レポートの実行、スケジューリング、フィルタリング、修正を可能にするレポートサーバーを用意します。
以上、InterSystems ドキュメント から抜粋。
この記事では、InterSystems Reports の サーバー部分に焦点を当て、すべてのデータを永続化しながらコンテナでレポートサーバーを実行するためのガイドをご提供しています。
前提条件
InterSystems Reports を動かすために、以下ソフトウェアがインストールされている必要があります。
- Docker - InterSystems Reports は Docker がなくても動作しますが、この記事では Docker で動作する環境に焦点を当てています。
- (オプション) git - リポジトリを clone するためにインストールします。 アーカイブとしてダウンロードもできます。
- (オプション) InterSystems Reports デザイナー - 必要に応じて新しいレポート作成に使用します。
さらに必要となるのは、
- containers.intersystems.com Docker registry へのログイン
- InterSystems Reports ライセンス(InterSystems 担当者までお問い合わせください)
構成
ここからが本番です!
- 最初に、InterSystems Reports と IRIS をセットアップモードで起動し、IRIS を Reports のデータベース(データソースではありません!)として設定します。
- 続いて、Reports の設定を行い、この設定をホスト上で永続化します。
- 最後に、永続化されたデータを使用して、Reports を実行します。
最初の手順
では、さっそく試してみましょう。ここから 1~8 までの手順では、docker-compose の設定ファイルとして docker-compose_setup.yml
を使用していることに注意してください。
これらのステップの中で実行する docker-compose のコマンドは、すべて docker-compose -f docker-compose_setup.yml
として実行する必要があります。
-
リポジトリを clone します:
git clone https://github.com/eduard93/reports.git
または、 archiveとしてダウンロードしてください。 -
config.properties
を編集し、InterSystems Reports Server のライセンス情報(ユーザとキー)を指定します。これらをお持ちでない場合、インターシステムズ担当者までご連絡ください。他にも多くのプロパティが documentation に記載されています。
なお、この場合の IRIS は、レポート用のデータベースを指しており、レポート用のデータソース(後述します)ではありません。 -
InterSystems Reports Server を初期化して開始します:
docker-compose -f docker-compose_setup.yml up -d
-
InterSystems Reports Server が開始するのを待ちます (
docker-compose -f docker-compose_setup.yml logs reports
で確認します)。5~10分かかることもあります。
ログが表示されると、Reports Server は動作可能な状態になります:reports_1 | Logi Report Server is ready for service
-
Reports Server を開きます。 (User/pass:
admin
/admin
)。
期限切れのウィンドウが表示される場合は、同じライセンス情報を再度入力してください。以下のように表示されるはずです。
設定の永続化
これで、Reports が実行されたので、構成を少し調整してホスト上に永続化する必要があります。
(InterSystems IRIS の構成は、Durable %SYS(永続的な %SYS) を使用して永続化されます。)
server console
>Administration
>Configuration
>Advanced
ページにあるEnable Resources from Real Paths
オプションをチェックします。
ドキュメントはこちら。
この設定で、レポートをリポジトリのreports
フォルダにコピーするだけで、レポートを公開できるようになります。
- 永続的なストレージファイルをホストへコピーします(docs):
docker cp reports_reports_1:/opt/LogiReport/Server/bin .
docker cp reports_reports_1:/opt/LogiReport/Server/derby .
docker cp reports_reports_1:/opt/LogiReport/Server/font .
docker cp reports_reports_1:/opt/LogiReport/Server/history .
docker cp reports_reports_1:/opt/LogiReport/Server/style .
- InterSystems Reports Server を停止します:
docker-compose -f docker-compose_setup.yml down
2つ目の手順
ここまでの流れで永続的なデータストレージを使ったレポートを始める準備ができました。
-
InterSystems Reports Server を初期化処理せずに開始します:
docker-compose up -d
-
Public Reports
内に、実パスで新しいフォルダリソースを作成します:/reports
ドキュメントはこちら。
Public Reports
をオープンするため、Publish
>From Server Machine
を選択します:
/reports
を示す新しいフォルダを作成します。
カタログ(IRIS への接続を定義するもの)と2つのレポート(reportset1
とreportset2
)が含まれているはずです。
これらを実行してください(ブラウザで参照するには Run
ボタンを使い、HTML, PDF, Excel, Text, RTF, XML, PostScript 形式を選択するには Advanced Run
ボタンを使います)。
ここでは、レポートがどのように参照できるを説明します。
ご覧の通り、Reports は Unicode をサポートします。
この例では、データソースとして同じ IRIS を使用していますが、一般的には、カタログで定義された他の IRIS インスタンスでも構いません。
このデモでは、HoleFoods
データセットを使用しています(zpm "install samples-bi"
でインストールしています)。
新しい接続を追加するには、Designerで新しいカタログを作成します。その後、新しいレポートを作成し、reports
フォルダ内の新しいサブフォルダにすべてをエクスポートします。もちろん、InterSystems Reports Server コンテナはどのデータソースIRISインスタンスにもネットワークアクセスできる必要があります。
これで終わりです。
さて、Reports を停止したい場合は、次のように実行します。docker-compose stop
Reports を再開するには、次のように実行します。docker-compose up -d
なお、すべてのレポートは引き続き利用可能です。
デバッグ
全てのログは、/opt/LogiReport/Server/logs
フォルダに格納されます。
エラーが発生した場合は、ボリュームに追加して Reports を再起動し、エラーを再現してください。
ドキュメントには log levels を調整する方法が記載されています。
レポートが正確に UI に届かない場合は、bin
フォルダにあるLogConfig.properties
ファイルを調整してください。
logger.Engine.level = TRIVIAL
logger.DHTML.level = TRIVIAL
logger.Designer.level = TRIVIAL
logger.Event.level = TRIVIAL
logger.Error.level = TRIVIAL
logger.Access.level = TRIVIAL
logger.Manage.level = TRIVIAL
logger.Debug.level = TRIVIAL
logger.Performance.level = TRIVIAL
logger.Dump.level = TRIVIAL
埋込とAPI
Webアプリケーションにレポートを埋め込むには Embedded API を使用します。
その他の 利用可能な API は、ドキュメントをご参照ください。
まとめ
InterSystems Reportsは、運用レポートを組み込んだ堅牢な最新のレポート・ソリューションを提供します。
InterSystems Reports Server は、エンドユーザにブラウザベースのアクセスを提供し、レポートの実行、スケジューリング、フィルタリング、および変更を可能にします。
InterSystems Reports Server は、Docker 環境で効率的に実行することができます。