8.28 RDMLコマンド内の引用符
引用符が不要になった箇所
条件コマンドやCHANGEコマンドでは、式を単一引用符で囲む必要がなくなりました。
条件コマンド
以下のコマンドの条件式から引用符を省略することができます。(IF、DOUNTIL、DOWHILE、CONTINUE、LEAVE、CONDCHECK)また、IFとCONDでは、パラメータ名をそのまま使用できます。
IF ( ( #QUANTITY *LT 10 ) *AND ( #MEASURE *GT 42.67 ) )
DOUNTIL ( #I >= 11 )
DOWHILE ( #J < 11 )
#J += 1
ENDWHILE
#I += 1
ENDUNTIL
ENDIF
CHANGEコマンド
式を単一引用符で囲む必要はなくなりました。
CHANGE #STD_NUM To(1 + 1)
CHANGE #STD_NUM To(#AMNT + #PRICE)
CHANGE #STD_TEXT To(#ADDRESS1 + #ADDRESS2)
下位互換性を保つために式を単一引用符で囲むこともできます。
CHANGE #STD_NUM To('1 + 1')
文字列は二重引用符で囲みます。
CHANGE Field(#STD_TEXT) To("a" + "b" + "c")
結果は、abcになります。
CHANGE Field(#STD_TEXT) To("a + b + c")
結果は、a + b + cになります。
注:多くの場合、CHANGEコマンドの代わりにASSIGNコマンドを使用することができます。
二重引用符に関する注意点
RDML/RDMLXで記述された以下のCHANGEコマンドは、フルRDMLXでも構文的には正しいコマンドですが、意味は異なります。
CHANGE Field(#STD_TEXT) To("abc")
RDML/RDMLXでは、このコマンドは値"ABC"を#STD_TEXTに割り当てます。
フルRDMLXでは、この同じコマンドはABCを割り当てるだけです。
この問題に対応するために、Visual LANSAの機能が強化されており、RDML/RDMLXコマンドの項目の二重引用符に意味を持たせることができるようになっています。例えば、このCHANGEコマンドは以下のように変換されます。
CHANGE Field(#STD_TEXT) To('"abc"')
このコマンドは"ABC"の値を割り当てます。
参照