レポートプログラムを編集せずにエラーメッセージを変更したい。
こんなエラーメッセージが表示されても、どう対応して良いか分からないよ・・・
エラーメッセージはWebFOCUSのコマンドでカスタマイズすることができますが、通常はレポートプログラムにソースコードの組み込みが必要になります。
ただ、Desinger等のセルフサービス機能を使って作成したレポートはテキスト編集を行うとGUIで開けなくなってしまいますので、管理者側でエラーメッセージを変更する手順をご紹介します。
標準画面はエラーメッセージのみが表示される
対応方法の説明をテンプレート化しておける
このページに書かれている手順は、レポートプログラムの前後に別のプログラムを割り込み実行させる方法を採用しておりますので、本件のエラーメッセージにカスタマイズのような対応例だけではなく、その他のレポート実行の前後に何らかの処理を入れたいといった場合にも利用することが可能です。
また、エラーメッセージ画面の作成方法についてはこちらの記事でも紹介していますので、合わせてご確認ください。
主レポートの実行前と実行後に呼び出されるプログラムを作成
以下のようなレポートを作成します。
実行前プロシジャ
本記事ではプロシジャのファイルパスは「IBFS:/WFC/Repository/common/before.fex」となります。
下記の内容は、ブラウザ画面に表示されるエラーメッセージを「EMGFILE」という名前で一時的に保存する指定です。
SET EMGSRV=FILE
FILEDEF EMGFILE DISK ERR.TXT
-RUN
実行後プロシジャ
本記事ではプロシジャのファイルパスは「IBFS:/WFC/Repository/common/after.fex」となります。
下記の内容は、エラーがある場合(エラーコードが0以外の場合)に、独自のエラーメッセージ画面(HTML)を表示する指定です。
実行前プロシジャにて保存した EMGFILE の文字を、HTML中に出力しています。
-RUN
-IF &FOCERRNUM EQ '0' THEN GOTO :NERROR;
-HTMLFORM BEGIN
<html>
<head>
<title>エラーが発生しました</title>
</head>
<body>
以下のエラーが発生したので管理者にご確認ください
<pre style="background-color:#e7ebff;">
!IBI.FIL.EMGFILE;
</pre>
連絡先:admin@webfocus.com
</body>
</html>
-HTMLFORM END
-:NERROR
上記のプログラムを設定ファイルとして定義
以下の手順で実行前プロシジャと実行後プロシジャを設定します。
WF_APP_PREには実行前プロシジャのファイルパスを定義します。
WF_APP_POSTには実行後プロシジャのファイルパスを定義します。
WF_APP_PRE=IBFS:/WFC/Repository/common/before.fex WF_APP_POST=IBFS:/WFC/Repository/common/after.fex
以上で設定は完了です。
レポート実行の前後で共通する処理を予め設定しておけるんだね。