WebFacing Environment API によって、ユーザーがアプリケーションに Web ブラウザーを通じてアクセスしているか、あるいは 5250 エミュレーションを通じてアクセスしているかを検査することができます。この API は、ユーザーが持っているアクセス権のタイプに従ってプログラムの動作を変更したい場合に使用してください。例えば、プログラムがブラウザーを通じてアクセスされた場合には表示したい追加のフィールドまたは異なるテキストがあるが、5250 エミュレーションが使用されている場合にはそのフィールドまたはテキストの表示を抑制したいことがあります。
WebFacing Environment API は、QqfEnvironment と呼ばれ、WebFacing サーバー・ランタイムのパーツとなっています。外部プロシージャー名 QqfEnvironment には大文字小文字の区別があります。これは、QQFENV と呼ばれるサービス・プログラムにパッケージされたプロシージャーで、QSYS ライブラリーにあります。この API は、アプリケーションが WebFacing のもとで実行されていれば 1 を戻し、5250 エミュレーションのもとで実行されていれば 0 を戻します。
以下の例は、この API の使用法を示しています。RPG サンプルでは、外部プロシージャー QqfEnvironment は DSpec QQFENV によって定義されます。この例において、QQFENV DSpec には、サービス・プログラムと同じ名前が与えられ、プロシージャーは 0 または 1 を戻すので、整数として定義されています。DSpec rc もまた、Eval rc = QQFENV が実行された時に値 0 または 1 を保持するように定義されています。RPG プログラムは、次に、rc の値を使用して、プログラムの動作および DDS 画面に表示されるものを条件付きで決定します。
以下の DDS サンプルで、RPG モジュールの rc の値が 1 でない場合は、"Application is not running in the Webfacing environment" (アプリケーションは WebFacing 環境内で実行されていません) というテキストが表示されます。rc の値が 1 である場合は、"Application is running in the Webfacing environment" (アプリケーションは WebFacing 環境内で実行されています) というテキストが表示されます。
.........1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
FCHKENVFM CF E Workstn
*
DQQFENV PR 10I 0 Extproc('QqfEnvironment')
*
Drc S 10I 0
*
C Eval rc = QQFENV
C Eval FLD001 = rc
*
C Dow NOT *IN03
*
C If rc = 1
C Eval *in01 = *on
*
C Else
C Eval *IN01 = *off
C EndIf
*
C Exfmt FMT01
C EndDo
*
C Eval *inlr = *on
....+A*..1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A*%%TS SD 20010924 150104 USERID REL-V4R4M0 5769-PW1
A*%%EC
A DSPSIZ(24 80 *DS3)
A R FMT01
A*%%TS SD 20010924 150104 USERID REL-V4R4M0 5769-PW1
A CA03(03)
A 1 24'Testing Webfacing Environment API'
A DSPATR(HI)
A 10 3'F3=Exit'
A COLOR(BLU)
A N01 5 13'Application is not running in the -
A Webfacing environment'
A 01 6 15'Application is running in the Webf-
A acing environment'
A COLOR(RED)
A FLD001 4S 0O 7 39
A 7 22'QqfEnvironment:'
A
A*%%GP SCREEN1 01