フローで条件分岐したいときは、まずはBranchStartを思いつきますが、条件式の書式を間違うとコンパイルエラーになって戸惑うこともあります。
コンポーネントのリファレンスには条件式の書き方が色々と書いてあるので、よく読むと間違いに気付くのですが今回は、その中でRQLを使用したレコード形式を評価する際によく間違う(戸惑う)トピックを紹介します。
まず、リファレンスのRQLの記述例にあるように、
$record.field1 = "aaa"
$record.field2 < 3
というのは問題ないでしょう。
つづいて、固定値ではなくフロー変数を使ってみます。これもリファレンスの記述例に則って、
$record.field1 != $flow.var1
としてみました。
これも問題なく動作します。
ここで、左辺と右辺を入れ替えて
$flow.var1 != $record.field1
とすると、
「Error: FLCP_E_2035: プロパティ値が不正です : [Property=条件式][条件式が不正です : $flow.var1 != record.field1]」
というエラーが、、、
、、、、
ここで、もう一度リファレンスをよく読んでみると、[比較演算子、値]という欄に
「比較演算子としては以下のものが使用できます。右辺には文字列、数値、bool値(true/false)、変数のいずれかが指定できます。」
という記述がありました。
RQLの記述は変数ではないんでしょうね。(一見、変数みたいに思えてしまいますが、確かにリファレンスの上のほうに記述がある[変数の種類]という
一覧にもRQLは記載がありません。。)
何度見返しても条件式にタイプミスなどはないのに、コンパイルエラーが出ているといったときは、右辺に「$record」を使っていないかチェックしてみてください。
どうしても右辺にもってきたいときには、面倒ですが直前で一旦、フロー変数などに入れておくのもよいでしょう。
※条件式を編集する際には、コード補完を利用するとタイプミスなどもなく、便利です。
(条件式プロパティの右端の[・・・]をクリックして条件式プロパティウィンドウを表示します)
(表示したウィンドウで「$」と入力するとそのあとに続くコード補完候補がリスト表示されてきます)
今回はRQLの記述を中心に書いてみましたが、同じようにMQLという独自記述が存在します。
MQLについては、別途資料として纏まっているページがあるので参考にしてください。
ADN - ドキュメント - 技術情報 - 使い方のヒント - MQL (MIME Query Language for FlowService)
BranchStartとRQL
/ 公開日
更新日