入力パラメータの形式をチェックする
https://xoblos.hatenablog.jp/entry/2022/05/13/152353
上記の記事で、業務変数「年月」の長さをチェックする条件式で、
LEN("$(val:年月)")=6
のように、業務変数の値 $(val:年月) をダブルクォート「"」で挟んでいる理由を解説します。
3桁(3文字)の部門コードがあり、業務変数(入力パラメータ)から取得するとします。
LEN($(val:部門コード))=3
という条件式で長さが3文字かを判定すると、入力された部門コードが「120」ならばOKとなりますが、「020」ならばNG(3文字でない)となります。
これは、ExcelのLEN関数(文字列の文字数を返す)が、与えられた値が数値だった場合
は一旦数値を文字列に変換し、前ゼロがとれて評価されていると思われるからです。
次が、Excelでセルに入力してみたときの結果。
=LEN(120) → 3
=LEN(020) → [ENTER] → =LEN(20) → 2
=LEN("020") → 3
このため、
LEN($(val:部門コード))=3
ではなく、
LEN("$(val:部門コード)")=3
のように、業務変数の値 $(val:部門コード) をダブルクォート「"」で挟んで指定します。
逆に、変数を数値として条件判定に使う場合は、ダブルクォート「"」で挟んではいけません。業務変数(入力パラメータ)のケースとして解説しましたが、作業変数、項目名変数を指定する場合も、同様の注意が必要です。