BizTalk サービスでの式 - 使用法と例

更新日: 2015年8月

Microsoft Azure BizTalk サービスでの式マップ操作の一覧です。

 

マップ操作 説明 パラメーター 出力

算術式

入力および定数を使用して数式を評価します。算術式は次の演算子で構成されます。

  • 加算

  • 減算

  • 乗算

  • 除算

  • 剰余

  • 絶対値

  • 最大

  • Minimum

  • 四捨五入

  • 平方根算出

0 ~ 100 のオプションの入力パラメーターを使用できます。

 

入力

数値

算術式

入力および定数を使用して定義された数式。

noteメモ
式の最大長は 1024 文字です。

計算の結果を表す数値。

算術式の例:BizTalk サービス」を参照してください。

論理式

条件を評価し、評価結果をブール値で出力します。論理式は次の演算子で構成されています。

  • 関係演算子:

    >

    <

    >=

    <=

    ==

    !=

  • 論理否定 (!)

  • 条件 AND (&&)

    条件 OR (||)

0 ~ 100 のオプションの入力パラメーターを使用できます。

 

入力

可能な値は、数値、文字列値またはブール値です。

論理式

入力および定数を使用して定義された式であり、ブール値で評価されます。

noteメモ
式の最大長は 1024 文字です。

論理式が true を返した場合は true が返されます。それ以外の場合は False が返されます。

論理式の例:BizTalk サービス」を参照してください。

If-Then-Else 式

2 つの可能な出力のいずれかが結果として得られるステートメントを評価します。

0 ~ 100 のオプションの入力パラメーターを使用できます。

 

入力

可能な値は、数値、文字列値またはブール値です。

条件

入力および定数を使用して定義された式。

Then Value

ステートメントまたは式が true の場合は、この値が使用されます。

Else Value

ステートメントまたは式が false 場合は、この値が使用されます。

noteメモ
式の最大長は 1024 文字です。

結果は、条件式の true 評価または false 評価に基づいたものとなります。

true の場合は、Then Value が使用されます。false の場合は、Else Value が使用されます。

If-Then-Else 式の例:BizTalk サービス」を参照してください。

条件付き割り当て

2 つの入力パラメーターのいずれか 1 つから値を返します。1 番目の入力値が True の場合は、2 番目の入力値を使用して出力ドキュメント内にノードが作成されます。1 番目の入力値が False の場合は、対応するノードは出力ドキュメント内に作成されません。

厳密に 2 つの入力パラメーターが必要です。

 

条件

結果としてブール値をもたらす式。次のいずれかです。

  • ツリー ノードからのリンク

  • マップ操作 からのリンク

値の割り当て

条件が true の場合に宛先ノードに値が割り当てられます。

noteメモ
このマップ操作は宛先ツリー ノードにのみ接続できます。

Condition 値が "true" の場合は、Assign Value 入力値を使用してノードが作成されます。

条件付き割り当ての例:BizTalk サービス」を参照してください。

次の表に、任意のマップ操作で使用できる追加の関数の一覧を表示します。

 

関数 説明

Exists

Exists(Source_Node_Name)

ソース ドキュメント内の要素名を示す単一の入力が必要です。要素が存在する場合は、True が返されます。それ以外の場合は False が返されます。

IsDate

IsDate(Input1)

文字列型の 1 つの入力が必要です。入力を DateTime オブジェクトに解析するには、DateTime.TryParse() メソッドを使用します。入力が正常に分析されると、True が返されます。それ以外の場合は False が返されます。

IsEmpty

IsEmpty(Input1)

文字列型の 1 つの入力が必要です。文字列が NULL または空の場合は、True が返されます。それ以外の場合は False が返されます。入力が文字列オブジェクトでない場合は、True が返されます。

IsNil

IsNil(Source_Node_Name)

ソース ドキュメント内の要素名を示す単一の引数が必要です。要素が存在し、かつ xsi:nil が True に設定されている場合は、True が返されます。それ以外の場合は False が返されます。

IsNumber

IsNumber(Input1)

文字列型の 1 つの入力が必要です。入力を double に解析するには、Double.TryParse() メソッドを使用します。入力が正常に分析されると、True が返されます。それ以外の場合は False が返されます。

noteメモ
コンマ “,” は 3 桁の区切り文字としてサポートされ、ピリオドは “.” 小数点としてサポートされます。

Important重要
マップ操作と関数はすべて、他のマップ操作および関数内で使用できます。ただし、Exists と IsNil については例外です。Exists と IsNil は、ソース ドキュメント内の単一ノードを指します。

BizTalk サービス には、エラーを処理する方法と、空または Null のノードを処理する方法を構成する機能があります。次に示す [] マップ操作のエラー処理動作は構成可能です。

  • 論理式

  • 算術式

  • If-Then-Else 式

手順:

  1. Visual Studio で [BizTalk サービス プロジェクト] または [BizTalk サービス アーティファクト] プロジェクトを開きます。

  2. 変換 (.trfm) をダブルクリックして 変換 デザイナーを開きます。

  3. 変換 ツール バーで、[設定] をクリックします。

[エラー処理] タブ

[エラー処理] タブの次の [] マップ操作 には、2 つの [動作] オプションがあります。

  • 論理式:

    • [フェール マップ]:変換 全体が中止されます。変換 はパイプラインの内部で実行されるため、パイプラインの内部でエラーが発生し、続いてメッセージを送信したクライアントにエラーが送信されます。

    • [出力の既定値 False]:マップ操作が失敗した場合は、出力として False が返されます。

  • [算術式]:

    • [フェール マップ]:変換 全体が中止されます。変換 はパイプラインの内部で実行されるため、パイプラインの内部でエラーが発生し、続いてメッセージを送信したクライアントにエラーが送信されます。

    • [出力既定値 NaN]:マップ操作 が失敗すると、NaN (Not a Number) が出力として返されます。

    • [出力既定値 0]:マップ操作 が失敗すると、ゼロ (0) が出力として返されます。

  • [If-Then-Else 式]:

    • [フェール マップ]:変換 全体が中止されます。変換 はパイプラインの内部で実行されるため、パイプラインの内部でエラーが発生し、続いてメッセージを送信したクライアントにエラーが送信されます。

    • [出力の型に基づいて Null/Zero/False を出力する]:マップ操作でエラーが発生した場合は、出力の型に基づいて出力として Null/Zero/False が返されます。

[Null/空のデータ処理] タブ

[Null/空のデータ処理] タブには 3 つのオプションがあります。

  • 累計操作に空のノードを含める:このオプションは既定ではオンになっていません。オンにしていないと、空のノードは反復に含まれません。オンにすると、空のノードを含むすべてのノードが反復に含まれます。

    例:10 個の <record> ノードを持つドキュメントがあるとします。これらの <record> ノードのうち 3 つが空です。[累計操作に空のノードを含める] がオフの場合、マップ操作 は値 7 を返します。[累計操作に空のノードを含める] がオンの場合、マップ操作 は値 10 を返します。

  • 反復に空のノードを含める:このオプションは既定ではオンになっていません。オンにしていないと、空のノードは反復に含まれません。オンにすると、空のノードを含むすべてのノードが反復に含まれます。

    例:10 個の <record> ノードを持つドキュメントがあるとします。これらの <record> ノードのうち 3 つが空です。[反復に空のノードを含める] がオフの場合、マップ操作 は、空でないノードに対して 7 回反復されます。その結果、ターゲット内に <record> ノードが 7 個生成されます。[反復に空のノードを含める] がオンの場合、マップ操作 は、空のノードを含むすべてのノードに対して 10 回反復されます。その結果、ターゲット内に <record> ノードが 10 個生成されます。

  • ターゲット ノードの生成:空のノードを含めるように設定した場合、出力内に空のノードを生成するかどうかを指定できます。具体的な内容は次のとおりです。

    • 空のノードを生成しない:既定のオプション。

    • 空のノードを生成する

    例:10 個の <record> ノードを持つドキュメントがあるとします。これらの <record> ノードのうち 3 つが空です。[累計操作に空のノードを含める] または [反復に空のノードを含める] がオンになっていない場合、マップ操作 は空でないノードに対して 7 回反復されます。その結果、ターゲット内に <record> ノードが 7 個生成されます。[反復に空のノードを含める] がオンの場合、マップ操作 は、空のノードを含むすべてのノードに対して 10 回反復されます。その結果、ターゲット内に <record> ノードが 10 個生成されます。

関連項目

その他のリソース

変換またはマップの作成

表示: