> InterSystems Reports は Logi Analytics 社の製品である Logi Report(旧名:JReport)使用しています。InterSystems Reports は、InterSystems IRIS、InterSystems IRIS for Health で動作し、以下に示すように堅牢でモダンなレポートソリューションを提供します。 > > - レポート開発者とエンドユーザーの両方がカスタマイズ可能な、組み込み型のオペレーショナルレポート。 > - 請求書、文書、フォームなどの特殊なレイアウト要素や、特定のフォームグリッドを開発することができるピクセルパーフェクトなフォーマット。 > - 集約されたデータと詳細なデータの構造を提供する帯状のレイアウト。 > - ヘッダー、フッター、アグリゲーション、詳細データ、画像、サブレポートを正確に配置。 > - 多彩なページレポートタイプ。 > - PDF、XLS、HTML、XMLなどのファイルフォーマットへのエクスポート、印刷、法規制遵守のためのアーカイブを含む、大規模なダイナミックレポートのスケジューリングと配布。 > > InterSystems Reports は、以下の内容で構成されています。: > > - レポートデザイナーには「デザイン」タブと「プレビュー」タブがあり、レポート開発者はライブデータを使ったレポートの作成とプレビューができます。 > - エンドユーザーにブラウザベースのアクセスを提供し、レポートの実行、スケジューリング、フィルタリング、修正を可能にするレポートサーバーを用意します。 以上、[InterSystems ドキュメント](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_intro) から抜粋。 この記事では、InterSystems Reports の サーバー部分に焦点を当て、すべてのデータを永続化しながらコンテナでレポートサーバーを実行するためのガイドをご提供しています。 # 前提条件 InterSystems Reports を動かすために、以下ソフトウェアがインストールされている必要があります。 - [Docker](https://docs.docker.com/engine/install/) - InterSystems Reports は Docker がなくても動作しますが、この記事では Docker で動作する環境に焦点を当てています。 - (オプション) [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - リポジトリを clone するためにインストールします。 [アーカイブとしてダウンロードもできます](https://github.com/eduard93/reports/archive/refs/heads/master.zip)。 - (オプション) [InterSystems Reports デザイナー](https://wrc.intersystems.com/) - 必要に応じて新しいレポート作成に使用します。 さらに必要となるのは、 - [containers.intersystems.com](https://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](https://github.com/eduard93/reports/archive/refs/heads/master.zip)としてダウンロードしてください。 2. `config.properties` を編集し、InterSystems Reports Server のライセンス情報(ユーザとキー)を指定します。これらをお持ちでない場合、インターシステムズ担当者までご連絡ください。他にも多くのプロパティが [documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server) に記載されています。 なお、この場合の 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](http://localhost:8888) を開きます。 (User/pass: `admin`/`admin`)。 期限切れのウィンドウが表示される場合は、同じライセンス情報を再度入力してください。以下のように表示されるはずです。 ![image](https://user-images.githubusercontent.com/5127457/120627117-04bded00-c46c-11eb-99ad-5bc89e3bfb76.png) # 設定の永続化 これで、Reports が実行されたので、構成を少し調整してホスト上に永続化する必要があります。 (InterSystems IRIS の構成は、[Durable %SYS(永続的な %SYS)](https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=ADOCK#ADOCK_iris_durable) を使用して永続化されます。) 6. `server console` > `Administration` > `Configuration` > `Advanced` ページにある `Enable Resources from Real Paths` オプションをチェックします。 [ドキュメントはこちら](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path)。 この設定で、レポートをリポジトリの `reports` フォルダにコピーするだけで、レポートを公開できるようになります。 ![image](https://user-images.githubusercontent.com/5127457/120627668-90377e00-c46c-11eb-87c4-9745665c1857.png) 7. 永続的なストレージファイルをホストへコピーします([docs](https://hub.docker.com/r/logianalytics/logireport-server)): ``` 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 . ``` 8. InterSystems Reports Server を停止します: `docker-compose -f docker-compose_setup.yml down` # 2つ目の手順 ここまでの流れで永続的なデータストレージを使ったレポートを始める準備ができました。 9. InterSystems Reports Server を初期化処理せずに開始します: `docker-compose up -d` 10. `Public Reports` 内に、実パスで新しいフォルダリソースを作成します: `/reports` [ドキュメントはこちら](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path)。 `Public Reports` をオープンするため、`Publish` > `From Server Machine`を選択します: ![image](https://user-images.githubusercontent.com/5127457/120638494-da266100-c478-11eb-80a0-b89ba4e345db.png) `/reports`を示す新しいフォルダを作成します。 ![image](https://user-images.githubusercontent.com/5127457/120638907-6fc1f080-c479-11eb-965d-8346d603ada2.png) ![image](https://user-images.githubusercontent.com/5127457/120638753-34bfbd00-c479-11eb-893f-0980ebe4f569.png) カタログ(IRIS への接続を定義するもの)と2つのレポート(`reportset1`と`reportset2`)が含まれているはずです。 これらを実行してください(ブラウザで参照するには `Run` ボタンを使い、HTML, PDF, Excel, Text, RTF, XML, PostScript 形式を選択するには `Advanced Run` ボタンを使います)。 ここでは、レポートがどのように参照できるを説明します。 ![image](https://user-images.githubusercontent.com/5127457/120632926-333ec680-c472-11eb-8367-c1769fc344ce.png) ![image](https://user-images.githubusercontent.com/5127457/120632973-42257900-c472-11eb-870f-9af4f77a5161.png) ご覧の通り、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](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging) を調整する方法が記載されています。 レポートが正確に 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](https://documentation.logianalytics.com/logiinfov12/content/embedded-reports-api.htm) を使用します。 その他の [利用可能な API](https://documentation.logianalytics.com/logireportserverguidev17/content/html/api/wkapi_srv.htm) は、ドキュメントをご参照ください。 # まとめ InterSystems Reportsは、運用レポートを組み込んだ堅牢な最新のレポート・ソリューションを提供します。 InterSystems Reports Server は、エンドユーザにブラウザベースのアクセスを提供し、レポートの実行、スケジューリング、フィルタリング、および変更を可能にします。 InterSystems Reports Server は、Docker 環境で効率的に実行することができます。 # 参考リンク - [ここで説明したコンテナのリポジトリ](https://github.com/eduard93/reports) - [InterSystems Reports のドキュメント](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server) - [ロギング](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging)