注意: 9.1 組み込み関数の規則 利用オプション
ユーザーがオブジェクトに対する特定の権限を持っているかどうかを検査します。
引数
|
戻り値
|
このファンクションを使用して、ユーザーがファイルのレコードを更新できるか、またはフィールド定義を使用できるかを判定することができます。
DEFINE FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT('''*LIBL''')
* < OR >
DEFINE FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT(*BLANKS)
USE BUILTIN(CHECK_AUTHORITY) WITH_ARGS (#FILENAME #OBJEXT FD CH) TO_GET(#OKAY)
IF COND('#OKAY *EQ Y')
UPDATE FILE(#FILENAME)
ELSE
MESSAGE MSGTXT('Not authorized to update file')
ENDIF
DEFINE FIELD(#OBJEXT) TYPE(*CHAR) LENGTH(10) DEFAULT(*BLANKS)
USE BUILTIN(CHECK_AUTHORITY) WITH_ARGS #FLDNAME #OBJEXT DF UD) TO_GET(#OKAY)
IF COND('#OKAY *EQ Y')
USE BUILTIN(GET_FIELD) WITH_ARGS(#FIELDNAME) TO_GET(#RETC #TYPE #LEN....)
ENDIF
値*CHECK_AUTH_DYNLIBLがデータ領域DC@OSVEROPに指定されていない場合、ファイルに対する権限(FD)を検査する際にライブラリまたは*LIBLが指定されていないときは、LANSAに入力された時点では存在したファイルが現在はライブラリ・リストにあることが想定されます。ライブラリ・リストをダイナミックに変更することはできません。LANSAセッションの間にライブラリ・リストが変更された場合は、新しいライブラリ・リストを認識させるためにLANSAを一度終了してから再起動する必要があります。
ヒント
値*CHECK_AUTH_DYNLIBLがデータ領域DC@OSVEROPに指定されている場合は、ファイルに対する権限(FD)を検査する際にライブラリまたはLIBLが指定されていないときは、そのつどライブラリ・リストが取得されて、CHECK_AUTHORITYで実際に使用するライブラリがダイナミックに決定されます。この設定を使用すると、パフォーマンスに影響が生じる場合があります。
ファイルに対する権限を検査する場合は、オブジェクト拡張子の値にシステム変数*PARTDTALIBを使用します。
注:FUNCTION 権限(タイプPF)を検査する場合は、引数としてPROCESSとFUNCTIONの両方を指定する必要があります。つまり、オブジェクト名は PROCESSで、オブジェクト拡張子はFUNCTIONになります。
USE BUILTIN(CHECK_AUTHORITY)
WITH_ARGS (#PROCESS CONTROL PF UD ) TO_GET(#OKAY)
IF COND('#OKAY *EQ Y')
CALL PROCESS(#PROCESS) FUNCTION(CONTROL)
ELSE
MESSAGE MSGTXT('Not authorized to function CONTROL')
ENDIF