[EVALUATE](解析再実行)
処理ブロックを定義します。この処理ブロックでは、記述した内容の構文を処理実行時に解析します。変数を「%(パーセント)」で囲むと、実行時に変数の保持している内容を展開して実行できます。検索条件などを動的に生成するときに使用します。
形式
[EVALUATE] 処理ブロック [EVALUATE_END]
指定する値
-
処理ブロック
データを処理する処理ブロックを記述します。処理ブロック内で各タグの構文は完結している必要があります。また、「%(パーセント)」で囲んだ変数にはタグを含んだ構文も指定できます。
記述例
- 例1
-
検索条件部分を変数化することで、実行時に検索条件を決定する場合の記述例を次に示します。この例では、資産番号「R11111」および資産状態「002」の資産IDを検索することを示しています。
[SET_VALUE] STATEMENT = '(AssetInfo.AssetNo =' 'R11111' ') and' +CRLF STATEMENT = STATEMENT + '(AssetInfo.AssetStatus =' '002' ')' [EVALUATE] [CLASS_FIND] AssetInfo [FIND_DATA] %STATEMENT% [GET_VALUE] ASSETID = AssetInfo.AssetID [SET_VALUE] STATUS = $GETSTATUS() [EVALUATE_END] [IF] (STATUS = NORMAL) [THEN] [SET_VALUE] MSG = 'ASSETID =' +ASSETID $ECHO(MSG) [ELSE] [SET_VALUE] MSG = 'CLASS_FIND (' +STATUS+ ')' $ECHO(MSG) [IF_END]
- 実行結果
-
ASSETID = 10000
- 例2
-
この例では、ユーザIDからユーザの名前を取得する処理を、変数に格納して検索することを示しています。
[SET_VALUE] STATEMENT = '[CLASS_FIND]' + CRLF STATEMENT = STATEMENT + 'UserEntry' + CRLF STATEMENT = STATEMENT + '[FIND_DATA]' + CRLF STATEMENT = STATEMENT + 'UserID =' + USERID + CRLF STATEMENT = STATEMENT + '[GET_VALUE]' + CRLF STATEMENT = STATEMENT + 'USERNAME = UserEntry.UserName' + CRLF [EVALUATE] %STATEMENT% [EVALUATE_END]