8.2.1 VarIsNull

LANSA Composer

8.2.1 システム・プロパティの評価機能


[ファンクション呼び出しにより算出/セット]のオプションを選択した場合は、指定のシステム・プロパティの値を評価(そして設定)するLANSAファンクションが配布またはインストールされていることを必ず確認しておいてください。

  • このファンクションはRDMLで作成されていても、フルRDMLXでも構いません。
  • ファンクションはfunction options(*direct)で定義されていなければなりません。
  • このファンクションは、現在使用しているLANSA Composerのバージョンと互換性のあるLANSAのレベルで作成され、コンパイルされたものでなければなりません。
  • ファンクションはLANSAシステムの区画モジュール・ライブラリおよびLANSA Composerがインストールされている、LANSA Composerサーバーの区画(例: LICLICLIB)に配布されていなければなりません。

 

LANSA Composerがファンクションを呼び出してシステム・プロパティの値を評価する時は、LANSA交換リストを利用して通信を行います。具体的には、ファンクションは次のフィールドが(必要な場合)定義されていなければならず、これを使用して要求の認識を行い、結果を戻します。出力変数と示されているフィールドの場合、値を戻す前に、ファンクションではEXCHANGEコマンドを使ってLANSA交換リストに変数を送らなければなりません。

名前

説明

タイプ

使途

DXREQUES

要求コード。  LANSA Composerは次の値のいずれかを設定します。

'GET' - ファンクションが指定のシステム・プロパティを評価することを示し、その値はフィールドDXSPVLに格納されます。

'SET' - ファンクションが指定のシステム・プロパティの値をフィールドDXSPVLに提供された値に設定することを示します。

A(10)

入力

DXSPID

システム プロパティ識別子。  ファンクションを利用して複数のシステム・プロパティの値を評価・設定することも可能です。  このような設計の場合、ファンクションではこの値(またはDXSPII値、もしくはその両方)を使って、どのシステム・プロパティの評価・設定の要求なのかを決定します。

A(20)

入力

DXSPII

システム プロパティ内部識別子。  これはLANSA Composerがそれぞれのシステム・プロパティ定義に割リ当てる、一意の内部識別子です。

A(32)

入力

DXSPVL

システム プロパティ値

GET要求の場合、ファンクションでは指定のシステム・プロパティの評価する値をこのフィールド値に設定しなければなりません。

SET要求の場合、ファンクションではこのフィールドに提供された値を利用して、指定のシステム・プロパティの値を設定しなければなりません。

A(256)

入力 (SET)

出力 (GET)

DXRESULT

結果コード。  ファンションが正常に終了した場合は、このフィールドに'OK'を設定します。  結果コードにこれ以外の値が含まれている場合、LANSA Composerでは評価要求が失敗したと見なされ、戻りのシステム・プロパティ値は使用されません。

A(2)

出力

 

 

以下の例では、RDMLXファンクションがMY_PROPERTYという名前のシステム・プロパティを評価(そして値を設定)します。

 

function options(*direct)

 

* ---------------------------------------------------------------------------

* Program mainline

* ---------------------------------------------------------------------------

 

case of_field(#dxspid)

 

    when value_is(= 'MY_PROPERTY')

 

        case of_field(#dxreques)

 

            when value_is(= 'GET')

 

                #dxspvl := 'MY_PROPERTY_VALUE'

                #dxresult := 'OK'

                exchange fields(#dxspvl #dxresult)

 

            when value_is(= 'SET')

 

                * MY_PROPERTY is NOT intended to be writeable

                #dxresult := 'ER'

                exchange fields(#dxresult)

                abort msgtxt('System property MY_PROPERTY not writeable')

 

        endcase

 

    otherwise

 

        abort msgtxt('System property name not recognised by this function')

 

endcase

 

return