式について
Gravio4では様々なところで式を使用しています。
PreMappings/PostMappings/Filterなどのコンポーネントのプロパティとトリガーの式比較を選んだ時です。
式はgval( https://github.com/PaesslerAG/gval )で実装されており、ここに記述されている機能は全て使えるはずです。
(Gravio4独自に拡張している関数がありますがそれらは別途記述。というか絶賛改良中なのでおちついたらあらためて書きます)
式を使用するところは、代入を伴う場合はどの型でも返すことができますが、代入を伴わない場合はBool型を返すように記述することができます。
ですが、Bool型を返す必要がある場合でも、例えば数値系の0はfalse、それ以外はtrueになるように型変換が自動で行われるので、あまり気にしなくても使える手軽さはあると思います。
代入が伴う箇所はPreMappingsとPostMappingsのみでそれ以外は代入がありません(今回の版では隠すことにしたMapというコンポーネントがあるのですが、これは代入があります)。
Bool型を返すには、数値や文字列などに対して比較演算をすると返すことができます。
cv.Payload > 10
cv.Payload "abc" もちろん、リテラルで直接返すこともできます。 true 使用できるパラメータについて PreMappings/PostMappingsについてはtp/tv/ap/av/cp/cvが使用できます。 tp/tv/ap/av/cp/cvについては下記コンポーネントでの式でも使用できます。 コンポーネント 今のところ式をプロパティとして持つコンポーネントは以下のものがあります。 Filter/Map(非公開)/Sort(非公開)/Search(非公開)/Split (非公開のものはここでは触れないことにします) Filterコンポーネントは入力Payloadを通過させ次のコンポーネントに渡すかを選択できるコンポーネントです。 通過させるかの条件を式で入力することができます。trueの時は通過させ、falseの時は通過しません。 上記tp/tv/ap/av/cp/cvを比較対象として条件を入力することができます。 Payloadを対象としPayloadが数値系なら cv.Payload > 10 文字列系なら(gvalは標準で正規表現比較ができる) cv.Payload =~ "^abc" JSON配列なら cv.Payload[1] > 10 JSON Objectなら cv.Payload.key1 “abc”
Splitコンポーネントは入力Payloadが文字列なら改行毎に、JSON配列なら要素毎に分割して次のコンポーネントに渡すコンポーネントです。
Splitコンポーネントでは分割後の要素を次にコンポーネントに渡すかどうかのフィルタ機能も持ち合わせており、条件を式で入力することができます。
パラメータとして、分割後の要素は Value 、何番目の要素なのかを Index で参照することができます。
(tp/tv/ap/av/cp/cvも参照可能です)
abcで始まる要素だけを次のコンポーネントに渡す
Value =~ “^abc”
偶数番目の要素だけを渡す
Index % 2 == 0

Feedback

Was this helpful?

Yes No
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.

Post your comment on this topic.

Post Comment