記事
· 2021年8月16日 9m read

コンテナで InterSystems Reports を動かしてみる

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 を動かすために、以下ソフトウェアがインストールされている必要があります。

さらに必要となるのは、
- 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 として実行する必要があります。

  1. リポジトリを clone します: git clone https://github.com/eduard93/reports.git または、 archiveとしてダウンロードしてください。

  2. config.properties を編集し、InterSystems Reports Server のライセンス情報(ユーザとキー)を指定します。これらをお持ちでない場合、インターシステムズ担当者までご連絡ください。他にも多くのプロパティが documentation に記載されています。
    なお、この場合の IRIS は、レポート用のデータベースを指しており、レポート用のデータソース(後述します)ではありません。

  3. InterSystems Reports Server を初期化して開始します: docker-compose -f docker-compose_setup.yml up -d

  4. 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

  5. Reports Server を開きます。 (User/pass: admin/admin)。
    期限切れのウィンドウが表示される場合は、同じライセンス情報を再度入力してください。以下のように表示されるはずです。

image

設定の永続化

これで、Reports が実行されたので、構成を少し調整してホスト上に永続化する必要があります。
(InterSystems IRIS の構成は、Durable %SYS(永続的な %SYS) を使用して永続化されます。)

  1. server console > Administration > Configuration > Advanced ページにある Enable Resources from Real Paths オプションをチェックします。
    ドキュメントはこちら
    この設定で、レポートをリポジトリの reports フォルダにコピーするだけで、レポートを公開できるようになります。

image

  1. 永続的なストレージファイルをホストへコピーします(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 .
  1. InterSystems Reports Server を停止します: docker-compose -f docker-compose_setup.yml down

2つ目の手順

ここまでの流れで永続的なデータストレージを使ったレポートを始める準備ができました。

  1. InterSystems Reports Server を初期化処理せずに開始します: docker-compose up -d

  2. Public Reports 内に、実パスで新しいフォルダリソースを作成します: /reports
    ドキュメントはこちら
    Public Reports をオープンするため、Publish > From Server Machineを選択します:

image

/reportsを示す新しいフォルダを作成します。

image

image

カタログ(IRIS への接続を定義するもの)と2つのレポート(reportset1reportset2)が含まれているはずです。
これらを実行してください(ブラウザで参照するには Run ボタンを使い、HTML, PDF, Excel, Text, RTF, XML, PostScript 形式を選択するには Advanced Run ボタンを使います)。
ここでは、レポートがどのように参照できるを説明します。

image

image

ご覧の通り、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 環境で効率的に実行することができます。

参考リンク

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください