ルーティング機能を使用して、条件に合った同期のサービスエンドポイントでサービスを呼び出す場合のステップ情報(個別)の指定例は、以下のとおりです。
画面例(ルーティング定義を利用する)
この例では、ルーティング定義“rout01”で指定した条件に従って、サービスエンドポイントが決定し、サービスを呼び出しています。
図9.20 ルーティング定義を使用した画面例(プロパティビュー)
画面例(ルーティング定義を利用しない)
この例では、条件式を使用してルーティングしています。
ヘッダ“price”の値が“1000”の条件に一致する場合は、サービスエンドポイント“endpoint01”で定義されたサービスを呼び出します。
この条件を満たさず、ヘッダ“company”の文字列が“Fujitsu”の条件に一致する場合は、サービスエンドポイント“endpoint02”で定義されたサービスを呼び出します。
どちらの条件も満たさない場合は、サービスエンドポイント“endpoint00”で定義されたサービスを呼び出します。
図9.21 ルーティング定義を使用しない同期サービス呼出しの画面例(プロパティビュー)
指定例
項目 | 説明 | 指定例 | |
---|---|---|---|
ルーティング方法 | ルーティング定義を指定するかどうかを指定します。以下から選択します。
| ルーティング定義 | |
ルーティング名 | 呼び出すサービスを決定する条件を指定したルーティングを指定します。 | rout01 | |
下記条件以外のサービスエンドポイント名 | どの条件式にも一致しなかったときに呼び出すサービスが定義されているサービスエンドポイント名を指定します。 | endpoint00 | |
条件 | |||
1 | 条件式とサービスエンドポイント名を指定します。 | ||
条件式 | 条件式を指定します。詳細は、“条件式”を参照してください。 | $price == 1000 | |
サービスエンドポイント名 | 条件に一致したときに呼び出すサービスが定義されているサービスエンドポイント名を指定します。 | endpoint01 | |
2 | 条件式とサービスエンドポイント名を指定します。 | ||
条件式 | 条件式を指定します。詳細は、“条件式”を参照してください。 | $company @EQUAL@ “Fujitsu” | |
サービスエンドポイント名 | 条件に一致したときに呼び出すサービスが定義されているサービスエンドポイント名を指定します。 | endpoint02 | |
[追加]ボタン | 条件を追加します。 | ||
[編集]ボタン | 条件を指定するダイアログボックスが表示されます。 | ||
[削除]ボタン | 条件を削除します。 | ||
呼出し先サービスからのエラーメッセージをエラーシーケンスに通知する | 提供側サービスでエラーが発生した場合に、提供側サービスから返されたエラーメッセージをエラーシーケンスに通知するかどうかを指定します。 エラーシーケンスへのエラーメッセージ通知する場合は、チェックボックスをオン(チェックつき)にしてください。 | エラーメッセージをエラーシーケンスに通知しない(チェックなし) |
条件式
ここでは、条件式で指定できる演算子と文法について説明します。
条件式で指定できる演算子を以下に示します。
演算子 | 説明 |
---|---|
> | 数値比較を行います。左辺の値が右辺の値よりも大きい場合に真となります。 |
< | 数値比較を行います。左辺の値が右辺の値よりも小さい場合に真となります。 |
>= | 数値比較を行います。左辺の値が右辺の値以上の場合に真となります。 |
<= | 数値比較を行います。左辺の値が右辺の値以下の場合に真となります。 |
== | 数値比較を行います。左辺の値が右辺の値と等しい場合に真となります。 |
!= | 数値比較を行います。左辺の値が右辺の値と異なる場合に真となります。 |
@EQUAL@ | 文字列比較を行います。左辺の文字列が右辺の文字列と等しい場合に真となります。 |
@NOTEQUAL@ | 文字列比較を行います。左辺の文字列が右辺の文字列と異なる場合に真となります。 |
条件式には、以下の文法があります。
文字列を表す場合は、“ " ”(ダブルクォーテーション)でくくります。
“ " ”がない場合は、数値として動作します。
条件式に括弧は指定できません。
論理演算子は、ANDだけ指定でき、“&&”と記述します。
ISIメッセージのプロパティを指定する場合は、プロパティ名の先頭に“$”を付けます。
比較対象値、比較演算子、および論理演算子の間には、デリミタとして必ず半角スペースを入れます。