第四十八章Caché関数大全$PARAMETER関数


文書ディレクトリ


  • 第四十八章Caché関数大全$PARAMETER関数
  • アウトライン
  • パラメータ
  • 説明
  • 無効値
  • 第四十八章Caché関数大全$PARAMETER関数


    指定したクラスパラメータの値を返します.

    アウトライン

    $PARAMETER(class,parameter)
    

    パラメータ

  • classオプション-クラス名またはクラスインスタンスへのオブジェクト参照(OREF).省略する場合は、現在のクラスインスタンスのオブジェクトリファレンスが使用されます.省略する場合は、プレースホルダカンマを指定する必要があります.
  • parameterパラメータの名前.計算結果は文字列の式です.文字列の値はclassによって識別されるクラスの既存のパラメータの名前と一致する必要があります.

  • 説明

    $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
    

    無効な値

  • $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