読者です 読者をやめる 読者になる 読者になる

M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

Pentahoの.ktrから.prptへデータを渡したいのだけど・・・

さて、例によってPentaho回りを調べているのですが、今回は.prptファイルまわりのところです。

.prptファイルはPentaho BIフレームワークにおける帳票定義ファイルで、Pentaho Report Designerでもってデータソースとデザインを設定してつくります*1

SpoonもしくはKettleの側にはこれに対応する出力処理ステップとして「Pentahoレポート出力」(Pentaho Reporting Output)なるものが存在しており.prptファイルを指定して帳票出力をさせることができます。

問題は.ktr.prptの関連付けの方法です。こちらのリファレンスでも紹介されているとおり、何らかの入力処理もしくは中間処理の結果セットを使用して、「Pentahoレポート出力」ステップにテンプレート・ファイル名(つまり.prptのパス)と出力ファイル名(例えば出力形式がPDFなら.pdfファイルのパス)を渡して帳票出力をすることはできます。

まず変換(Transformation)のステップとして以下のようなフローを組みます:

f:id:m12i:20150419230926p:plain

今回はともかく1ファイルの帳票出力ができればいいので上述のテンプレート・ファイル名や出力ファイル名を定義するために「行生成」ステップを使います:

f:id:m12i:20150419231102p:plain

「Pentahoレポート出力」ステップの設定では「行生成」で定義した値のフィールド名で各設定値を入力します:

f:id:m12i:20150419231153p:plain

あとはこの変換を実行すれば.prptファイルに基づき帳票出力が行われます。

しかし入力処理や中間処理の結果をデータソースとして、.ktr側から指定する方法がわかりません(そもそもそれが「可能なこと」なのかわかりません)。.prptの作成時にデータソースとして.ktrファイルのステップを指定することはできます*2

しかし「Pentahoレポート出力」では、他の出力系ステップ(例えばExcel出力など)のように、.ktr側で処理(ステップ)の流れの中でビジネス・ロジックの対象となる結果セットを渡すというのができないのです。つまりこちらのブログで紹介されているような変換のフロー(「Pentahoレポート出力」ステップの前段に「テーブル入力」ステップが配されている)は意味がないようなのです。あるいはReport Designer側でレポートのデータソースを設定する際に何かしらの工夫をすればよいということなのか・・・。

あれこれ調べてみましたがこれはどうも諦めざるをえないような感じです・・・。

*1:実態としてはZIPファイルであり、拡張子を.zipに変更してから解凍するとXMLファイルからなる内容物を閲覧したり編集したりもできる、というはなしなのですが、どうも手元の環境ではうまく行きません。

*2:この場合.prptファイル内の定義情報は.ktrファイルに依存したものになります。よって.ktrファイルの名前を変更したり、移動・削除したりするとレポート出力処理が実行できなくなります。