$PARAMETER (ObjectScript)
構文
$PARAMETER(class,parameter)
引数
引数 | 説明 |
---|---|
class | オプション — クラス名、またはクラス・インスタンスへのオブジェクト参照 (OREF)。省略した場合は、現在のクラス・インスタンスのオブジェクト参照が使用されます。省略した場合は、プレースホルダのコンマを指定する必要があります。 |
parameter | パラメータ名です。有効な文字列に評価される式。文字列の値は、class で指定されたクラスの既存のパラメータ名と一致する必要があります。 |
説明
$PARAMETER は、指定されたクラスのパラメータの値を返します。$PARAMETER は、現在のクラス・コンテキストまたは指定されたクラス・コンテキストで、この parameter を検索できます。class 名を引用符付き文字列として指定するか、OREF を指定するか、または class 引数を省略して既定として現在のインスタンスを使用することができます ($THIS を参照)。class はオプションで指定できますが、区切り文字としてコンマを指定する必要があります。
例えば以下のようになります。
WRITE $PARAMETER("%Library.Boolean","XSDTYPE")
以下の例に示すように、オブジェクト構文を使用してパラメータの値を返すにはいくつかの方法があります。
WRITE "ObjectScript function:",!
WRITE $PARAMETER("Sample.Person","EXTENTQUERYSPEC")
WRITE !,"class parameter:",!
WRITE ##class(Sample.Person).#EXTENTQUERYSPEC
WRITE !,"instance parameter:",!
SET myinst=##class(Sample.Person).%New()
WRITE myinst.%GetParameter("EXTENTQUERYSPEC")
WRITE !,"instance parameter:",!
WRITE myinst.#EXTENTQUERYSPEC
無効な値
-
$PARAMETER("","XMLTYPE") : 無効な OREF (空の文字列、整数、小数など) を呼び出そうとすると、<INVALID OREF> エラーになります。
-
$PARAMETER("bogus","XMLTYPE") : 存在しないクラスを呼び出そうとすると、<CLASS DOES NOT EXIST> の後に指定されたクラス名が記述されたエラーが発生します。パッケージ名が指定されていない場合、InterSystems IRIS は既定値を採用します。例えば、存在しない class “bogus” を呼び出そうとすると、エラー <CLASS DOES NOT EXIST> *User.bogus が出力されます。
-
$PARAMETER(,"XMLTYPE") : 現在のオブジェクト・インスタンスが確立されていない場合に既定に設定しようとすると、<NO CURRENT OBJECT> エラーが発生します。
-
$PARAMETER("%SYSTEM.Task","") : 無効な parameter 名 (例えば、空の文字列) を参照しようとしたり、パラメータを数字で参照しようとしたりすると、<ILLEGAL VALUE> エラーが発生します。
-
$PARAMETER("%SYSTEM.Task","MakeCoffee") : 存在しない parameter 名を参照しようとすると、空の文字列 ("") が返されます。
例
以下の例では、クラス名を指定して、XMLTYPE および XSDTYPE パラメータのクラス既定値を返します。
WRITE $PARAMETER("%SYSTEM.Task","XMLTYPE"),!
WRITE $PARAMETER("%Date","XSDTYPE")
以下の例では、OREF を指定して、このインスタンスの XMLTYPE パラメータの値を返します。
SET oref=##class(%SYSTEM.Task).%New()
WRITE $PARAMETER(oref,"XMLTYPE")
以下の例では、$PARAMETER 構文とクラス構文を使用してシステム・パラメータを返します。
WRITE $PARAMETER("%SYSTEM.SQL","%RandomSig"),!
WRITE ##class(%SYSTEM.SQL).#%RandomSig
関連項目
-
$CLASSMETHOD 関数
-
$CLASSNAME 関数
-
$METHOD 関数
-
$PROPERTY 関数
-
$THIS 特殊変数