第四十八章Caché関数大全$PARAMETER関数
文書ディレクトリ
第四十八章Caché関数大全$PARAMETER関数
第四十八章Caché関数大全$PARAMETER関数
指定したクラスパラメータの値を返します.
アウトライン $PARAMETER(class,parameter)
パラメータ
$PARAMETER(class,parameter)
パラメータ
説明 $PARAMETER
は、指定されたクラスパラメータの値を返します.$PARAMETER
は、現在のクラスコンテキストまたは指定されたクラスコンテキストでこのパラメータを検索できます.クラス名を引用符付き文字列として指定したり、OREFを指定したり、クラスパラメータを無視したりして、現在のインスタンスをデフォルトで使用することができます($THIS
を参照).指定クラスはオプションです.カンマ区切り文字を指定する必要があります.DHC-APP> WRITE $PARAMETER("%Library.Boolean","XSDTYPE")
boolean
次の例に示すように、オブジェクト構文を使用してパラメータ値を返す方法はいくつかあります./// d ##class(PHA.TEST.Function).PARAMETER()
ClassMethod PARAMETER()
{
ZNSPACE "Samples"
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
}
DHC-APP>d ##class(PHA.TEST.Function).PARAMETER()
ObjectScript function:
Name,SSN,Home.City,Home.State
class parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State
無効な値
DHC-APP> WRITE $PARAMETER("%Library.Boolean","XSDTYPE")
boolean
/// d ##class(PHA.TEST.Function).PARAMETER()
ClassMethod PARAMETER()
{
ZNSPACE "Samples"
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
}
DHC-APP>d ##class(PHA.TEST.Function).PARAMETER()
ObjectScript function:
Name,SSN,Home.City,Home.State
class parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State
$PARAMETER("","XMLTYPE")
:無効なOREF(空の文字列、整数、小数など)の呼び出しを試みると、
エラーが発生します.$PARAMETER("bogus","XMLTYPE")
:存在しないクラスを呼び出そうとすると、
エラーが発生し、指定したクラス名に続きます.パッケージ名が指定されていない場合、Cachéはデフォルト名を使用します.たとえば、存在しないクラス“bogus”
を呼び出してみると、
エラー* User.bogus
になります.$PARAMETER(,"XMLTYPE")
:オブジェクトインスタンスが確立されていないときにデフォルトのオブジェクトをデフォルトで使用しようとすると、
エラーが発生します.$PARAMETER("%SYSTEM.Task","")
:無効なパラメータ名(空の文字列など)を参照しようとするか、数値参照パラメータによって
エラーが生成されます.$PARAMETER("%SYSTEM.Task","MakeCoffee")
:存在しないパラメータ名を参照しようとすると、空の文字列が返されます(“”
).例
次の例では、クラス名を指定し、XMLTYPEおよびXSDTYPEパラメータのクラスのデフォルト値を返します.SAMPLES>WRITE $PARAMETER("%SYSTEM.Task","XMLTYPE")
SYSTEMTask
SAMPLES>WRITE $PARAMETER("%Date","XSDTYPE")
date
次の例では、OREFを指定し、この例のXMLTYPEパラメータの値を返します.SAMPLES>SET oref=##class(%SYSTEM.Task).%New()
SAMPLES>WRITE $PARAMETER(oref,"XMLTYPE")
SYSTEMTask
次の例では、$PARAMETER
構文およびクラス構文を使用してシステムパラメータを返します.SAMPLES>WRITE $PARAMETER("%SYSTEM.SQL","%RandomSig")
N74U7m1MbDMBIA
SAMPLES>WRITE ##class(%SYSTEM.SQL).#%RandomSig
N74U7m1MbDMBIA
SAMPLES>WRITE $PARAMETER("%SYSTEM.Task","XMLTYPE")
SYSTEMTask
SAMPLES>WRITE $PARAMETER("%Date","XSDTYPE")
date
SAMPLES>SET oref=##class(%SYSTEM.Task).%New()
SAMPLES>WRITE $PARAMETER(oref,"XMLTYPE")
SYSTEMTask
SAMPLES>WRITE $PARAMETER("%SYSTEM.SQL","%RandomSig")
N74U7m1MbDMBIA
SAMPLES>WRITE ##class(%SYSTEM.SQL).#%RandomSig
N74U7m1MbDMBIA