開発工数短縮!プロシジャの処理を共通化する方法

サポぶろぐ

皆さん、こんにちは!
株式会社アシストでWebFOCUSのサポートを担当しています津田です。

皆さんはWebFOCUSでたくさんのレポートやグラフを作成する中で、レポートごとに何度も
同じコマンドや一時項目を作成し直すことはないでしょうか。
よく使うコマンドや一時項目は保存しておいて、複数のレポートで使い回せればいいのに…
と思ったことはありませんか?

…ということで今回のテーマは、

開発工数短縮!プロシジャの処理を共通化する方法

です!

プロシジャ内のコマンドや一連の処理、一時項目の式を共通化して簡単に使い回す方法として、
以下のような方法があります。

 1)すべてのレポート/グラフに共通のコマンドを設定する
   →グローバルプロファイルに設定を書き込む。

 2)複数のレポート/グラフで共通の処理や設定を使用する
   →共通設定を記述したプロシジャを呼び出す。

 3)複数のレポート/グラフで同じ一時項目を使用する
   →シノニム内に一時項目を作成する。

今回は、2) と 3) の方法について紹介します。
1) の方法については、サポぶろぐの「もう面倒くさくない!WebFOCUSの共通設定はここに書け!
で紹介しているので、是非そちらもご確認ください。

複数のレポート/グラフで共通の処理や設定を使用する

任意のプロシジャを呼び出して実行する[-INCLUDE]コマンドを使用することで、一度作成した
プロシジャの処理を、他のプロシジャ内で呼び出して使用することができるようになります。

<構文>

———————————————————————-
-INCLUDE プロシジャ名
———————————————————————-

※ドメインまたはコンテンツ配下のプロシジャに関しましては、プロシジャ名を
 フルパスで指定してください。(例:IBFS:/WFC/Repository/フォルダ/プロシジャ名.fex)

以下に使用方法の例を紹介しますので、皆さんも是非お好みの処理を共通化してみてください!


【手順】

1:共通設定を記述したプロシジャを作成します。   
  下記例では、ドメイン(またはコンテンツ)配下のPublicフォルダに[commondatetime.fex] ファイルを作成します。

[サンプル]
-*------------------------------------------------------------------------------------
-SET &COMMONDATE = EDIT(&YYMD,'9999年99月99日');
-SET &COMMONTIME = EDIT(&TOD,'99$:99$:99');
-TYPE &COMMONDATE
-TYPE &COMMONTIME
-SET &COMMON_DATETIME = &COMMONDATE | ' ' | &COMMONTIME;
-*------------------------------------------------------------------------------------
※実行時の日付と時間を「YYYY年MM月DD日 hh:mm:ss」形式で取得する変数を作成しています。

2:レポート/グラフ用のプロシジャ内で、1のプロシジャを呼び出して実行します。

[サンプル]
-*------------------------------------------------------------------------------------
-INCLUDE IBFS:/WFC/Repository/Public/commondatetime.fex
TABLE FILE CAR
SUM SALES
BY COUNTRY
ON TABLE HEADING
"実行日時:&COMMON_DATETIME"
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET ASNAMES ON
ON TABLE NOTOTAL
ON TABLE PCHOLD FORMAT HTML
ON TABLE SET HTMLEMBEDIMG ON
ON TABLE SET HTMLCSS ON
END
-*------------------------------------------------------------------------------------

[実行結果]

実行結果


また、App StudioではGUI操作から[-INCLUDE]コマンドを追加することができます。


【手順】

1:レポート/グラフを開きます。

2:[プロシジャビュー]パネルを開き、共通設定用のプロシジャを呼び出したい位置の
  1つ上の要素を右クリックします。

App Studio手順2

3:メニューから[新規作成] – [INCLUDE]を選択します。

App Studio手順3

4:呼び出したい[プロシジャ]を選択して[OK]をクリックします。

App Studio手順4


複数のレポート/グラフで同じ一時項目を使用する

シノニムファイルに予め一時項目を作成しておくことで、同じシノニムを使用した
すべてのレポート/グラフで同一の一時項目を使用することができるようになります!

以下に設定手順を記載します。
他レポートでも共通して一時項目を使い回したい時にとても便利ですので、是非シノニム内に
一時項目を作る方法をお試しください!


【シノニム内一時項目の作成手順】

1:Webコンソール(http://サーバ名:8121/)へアクセスします。

2:画面左端から[アプリケーション]アイコンを選択し、アプリケーションフォルダの
  一覧から、任意のシノニムのあるフォルダを選択します。

3:一時項目を追加したいシノニムを右クリックし、[開く]を選択します。

4:シノニムの編集ページにて、項目の一覧からどれか1つ項目を右クリックし、[新規式]
  - [式の詳細設定]を選択します。

5:任意の名前、フォーマット、一時項目の式を設定し、[OK]をクリックします。

6:画面左上の[ファイル]ボタンから[保存]を選択し、変更を保存して画面を閉じます。

7:次回以降レポートやグラフの新規作成時に、デフォルトで作成した一時項目が
  選択できるようになります。



「-INCLUDE」コマンドや、シノニム内の一時項目を使用することで、以下のような
メリットがあります。

 ●修正工数の短縮
  共通設定用のファイルやシノニムを1つ修正するだけで、それを使用しているすべての
  レポートやグラフに修正が反映されます

 ●作成工数の短縮
  同じ式やコマンドを何度も作成する必要がないため、レポート/グラフ作成時の手順を
  少なくすることができます

何度も利用する処理は共通化することで、開発手順を楽にしましょう!
手順について不明な点などありましたら、お気軽にサポートセンターまでお問い合わせください。

次回は「障害時に焦らない!障害発生時の初動対応のポイントと対応策について」について投稿予定です。

<この記事をかいた人>

株式会社アシスト DX推進技術本部データ活用技術統括部  津田 明日香
入社歴   : 2018年新卒入社、3年間 WebFOCUS のサポートを専任
趣味     : アニメ鑑賞、最近はVtuberに熱中
ひとこと : 雨にも負けず、風にも負けずサポセン稼働中
      (なお土日は休みます)