WebFOCUSの必須機能!HOLDファイルを知ろう!
こんにちは!
株式会社アシストでWebFOCUSのサポートを担当している吉江です。
残暑もいよいよ退き、秋本番になってまいりました!
毎年なんだかんだ"食欲の秋"になってしまうのですが、今年はお家時間を最大限活用し、"読書の秋"として感性を磨いて
いけたらとひっそり思っております。
さて、皆様「HOLD」という言葉に聞き覚えはありませんか?
HOLDは一言で言うと、一時ファイルを作成する機能です。
こう聞くと「そうなんだ!」くらいで終わってしまうと思いますが、実はこのHOLDはWebFOCUSでレポート開発を行う上
で頻繁に使用する、非常に大切な機能なのです!
HOLDを使用すると、以下のようなことを実現できます。
・任意の軸で集計した値を取得した一時ファイルを作成し、このHOLDファイルを使ってレポートを作成できる
・条件で絞ったデータをHOLDし、別レポートの条件に使用できる
・HOLDしたデータの値を変数に格納できる
・HOLDを応用すると、一時ファイル同士を縦結合し、縦持ちのデータを作成できる
(OracleでいうUnionのような動作)
これらを行うためには、しっかりとHOLDの仕方や特徴を理解する必要があります!
ぜひ、この記事でHOLDの基礎を知って頂ければと思います。
HOLD機能とは?
レポート実行時に画面上に結果を表示するのではなく、WebFOCUSサーバ側の一時領域に出力結果(HOLDファイル)
を出力する機能です。
HOLDするとレポートのマスターファイルとFTMファイル(データファイル)が一時領域(例:\ibi\srv82\wfs\edatemp\
tsXXXXXX配下)に作成され、処理が終了すると自動で削除されます。
※HOLD指定時にあえて出力先ディレクトリを指定することで、一時領域ではなく、任意のディレクトリにHOLDファイルを出力し保持できます。
この場合は、自動では削除されません。
この一時領域に作成されたHOLDファイルを利用してレポートを作成するなど、二次検索を行うことが可能です。
これによりHOLDを利用することで、1回の検索では実現できないレポートの作成を行うことができます!
HOLDの特徴
HOLDには、以下のような主な特徴があります。
ここに記載されている特徴は、押さえておいて頂けると嬉しいです
・作成されるファイルの出力形式
出力フォーマットを何も指定せずにHOLDした場合は、BINARY形式のデータが出力されます。
・同時に複数実行された際の動作
WebFOCUSでは1セッションごとにエージェントが動作し、エージェントごとに異なる一時領域にHOLDファイルが
生成されます。
このため同時に複数の実行が行われた場合にも、一時領域に作成されたHOLDファイルは上書きが発生しません。
・パフォーマンス
HOLD出力を行うとディスクI/Oが発生するため、データ量が多いとパフォーマンスの低下を招く可能性があります。
項目数を絞り込む、条件を指定し必要なデータのみを抜き出すなどして、必要なデータのみをHOLD出力するように
心掛けましょう!
HOLDの指定方法
App StudioとInfoAssistでは、HOLDの指定方法が異なります。
それぞれでの指定方法を以下に記載します。
App Studio
1)レポートキャンバスでHOLDしたいリクエストを作成します。
2)画面上部で[フォーマット]をクリックします。
3)リボンメニューから[出力フォーマット]をクリックし、[スタイルなしフォーマット]-[ファイル定義付きバイナリ
データ(BINARY)]を選択します。
4)リボンメニューの[ターゲット(PCHOLD)]が[ターゲット(HOLD)]に変わったことを確認し[ターゲット(HOLD)]を
クリックします。
5)表示された出力先画面で、以下のように指定し[OK]をクリックします。
ターゲット:一時ファイル
名前:任意の一時ファイル名(例:HLD1)
※ここで[名前]右横にある[…]を選択し一時ファイル名を指定した場合、一時領域ではなく任意のディレクトリ
配下にHOLDファイルが作成される動作となります。
以上でHOLDの設定は終了です。
6)上記で作成したHOLDファイルを使用し二次検索を行う際は、同じプロシジャ中で新しくレポートを作成します。
プロシジャビューパネルを開き、HOLDしたレポートを右クリック – [新規作成]-[レポート]をクリックします。
7)データソースの選択画面で、手順5で指定したHOLDファイル名(例:HLD1)を選択し[OK]をクリックします。
8)表示されたレポートキャンバス画面から、HOLDファイルを基にしたレポートを作成できます。
InfoAssist
1)レポートキャンバスでHOLDしたいリクエストを作成します。
2)画面上部で[ホーム]をクリックし、リボンメニューの[ファイル]をクリックします。
3)表示された一時ファイル画面で、以下のように指定し[保存]をクリックします。
ファイル名:任意の一時ファイル名(例:HLD1)
※ここで左端のツリーよりフォルダを選択した場合、一時領域ではなく任意のディレクトリ配下にHOLDファイル
が作成される動作となります。
以上でHOLDの設定は終了です。
4)手順3までで作成したHOLDファイルを使用し二次検索を行う際は、InfoAssist画面下部
に表示される[レポートの作成]をクリックします。
5)表示されたレポートの作成画面から、HOLDファイルを基にしたレポートを作成できます。
今回は上記内容を通して、HOLDの基礎を学んで頂きました!
次回は実践編として、HOLDを用いたOracleでいうUnionのような縦結合機能(APPEND)についてご紹介します。
APPENDはとても便利ですが、縦結合するためのHOLDファイルの作り方などに慣れるまでの間は苦戦する方も
多い機能となります。
HOLDとAPPENDを使いこなしスムーズにレポート開発を行って頂けるよう、コツを伝授できればと思いますので、
次回の「これが分かればもう怖くない!APPENDのコツ」を是非楽しみにお待ちください!!
<この記事を書いた人>
株式会社アシスト DX推進技術本部データ活用技術統括部
吉江 舞音(よしえ まいね)
入社歴 :2011年新卒入社、10年間WebFOCUSのサポートを専任
趣味 :テニス(週2で頑張ってます!)、観劇(ミュージカルが好き♡)
ひとこと :テニスで満身創痍のため、マッサージガンを買おうと画策中です!