式言語のルール

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  FlowForce 式言語 >

式言語のルール

FlowForce 式内でエラーを回避するためには、 以下のルールを守ってください:

 

許可されたまたは宣言された値のみを使用してください。
文字列をそのまま使用するには、一重引用符で囲んでください。
文字列フィールド内に式を埋め込むには、中かっこ、つまり、 { と } 文字で囲んでください。
式は入力された箇所のフィールド内で意味を持つ必要があります。

 

式言語のルールの詳細を確認してみましょう。

 

ルール #1: 許可された、または、宣言された値のみを使用します

FlowForce 式内では以下の構造文を使用することがで許可されています:

 

FlowForce 式関数 (完全なレファレンスに関しては、 以下を参照してください: 式関数 )
FlowForce 演算子 (以下を参照: 演算子 )
数値
文字列の値
前に宣言された値

 

FlowForce 式が許可されているフィールドのテキスト内部に入力すると、リアルタイムで構文のチェックが行われます。構文が正確ではない場合、 FlowForce は、文字を赤でハイライトします。以下は構文検証エラーのサンプルです:

expression_error01

 

ソース または ターゲット がジョブ内で宣言されていないため、 FlowForce が式を解釈できないため、エラーが発生します。問題はこれらの値を(例えば、ジョブ入力パラメーターとして)宣言することにより解決されます :

expression_error02

 

ルール #2: 文字列を一重引用符で囲みます

文字列をそのまま使用するには、一重引用符で囲んでください。 それ以外の場合、 式は、期待しない結果を出す場合があり、また、検証に失敗する場合があります。次の例を考慮してください:

 

評価...

説明

expression_in_compute01

2

値のデータ型は、数値です。

expre_1plus1_string

1+1

値のデータ型は、文字列です。

expression_in_compute02

true

値のデータ型は、ブール値です。

 

データの型を他の型に変換する必要がある場合、 FlowForce 式関数を使用してください (以下も参照してください: ルール #4 )。

 

ルール #3: 文字列フィールド内で中かっこを使用します

文字列フィールド内に式を埋め込むには、中かっこで囲んでください。下のサンプルでは、中かっこは、( FlowForce 式関数である) 式 instance-id() を文字列の残りから区切ります。

expression_in_string05

 

フィールド全体が 型 「式」の場合、中かっこを使用しないでください。 例えば、 system/compute ビルトイン関数の「式」パラメーターでは、関数はこの型を持ちます。(中かっこが使用されていない)下の例はこのフィールドのための正しい値の使用の例です:

expression_correct

 

式フィールド内に中かっこを入力することは、構文エラーをトリガーします:

expression_incorrect

 

以下も参照してください: 文字列フィールド内に式を埋め込む

 

ルール #4: 正確なデータ型を使用してください

最後に、 FlowForce は、ジョブを保存する際に、データの型のチェックを行います。 フィールドにより期待されるデータ型に一致しないフィールドに式が入力されると、エラーが発生します。各フィールドできたいされるデータ型は、各フィールドの右端に表示されています。 例:

expression_field_type

 

ですから、 1+1 などの式は、明示的に数値として評価されるため、文字列のフィールドでは有効ではありません。その一方、 式 '1+1' は、有効な文字列フィールドです。 次の例を考慮してください:

 

評価

説明

1/4

0.25 (数値として)

値のデータ型は、数値です。

 

この式をフィールド内、または、数値を期待するコンテキストで使用してください。 それ以外の場合、 ジョブの検証は失敗します。

1+1==2

true (ブール値として)

値のデータ型は、ブール値です。

 

この式をフィールド内、または、ブール値の値を期待するコンテキストで使用してください。 それ以外の場合、 ジョブの検証は失敗します。

'apple'

apple (文字列として)

値のデータ型は、文字列です。

 

この式をフィールド内、または、文字列の値を期待するコンテキストで使用してください。それ以外の場合、 ジョブの検証は失敗します。

concat('1','2','3')

123 (文字列として)

値のデータ型は、文字列です。

 

この式をフィールド内、または、文字列の値を期待するコンテキストで使用してください。  それ以外の場合、 ジョブの検証は失敗します。

1+'apple'

-

この式は有効ではありません、 FlowForce は、ジョブを保存しようとすると、エラーを返します。2つの異なるデータ型(文字列と数字)が比較されているため、検証を行うことはできません。

{content(stdout(result))}

[...] (文字列として)

 

 

この式は、2つのネストされた式関数を使用します:

 

関数 stdout は、シェルコマンドの標準出力をストリームとして取得します。
関数 content は、ストリームの値を文字列に変換します。

 

式は、正確ですが、ジョブは、以下の条件が満たされている場合のみ検証を成功することができます:

 

値 「結果」 は既に宣言されています。
値 「結果」  シェルコマンドの標準出力を含んでいます。
式は文字列フィールドに埋め込まれています。

 

以下も参照してください: 式関数の呼び出し


(C) 2019 Altova GmbH