Skip To Content

選択肢とは

選択肢は、ジオイベント サービスの構成可能なエレメントであり、指定された条件に基づいてジオイベント、またはイベント レコードを複数の目的のうち 1 つにルーティングします。 選択肢は、プログラミング言語の if-else 条件ステートメントなどのように、イベント レコードに順番に適用される条件ステートメントを使用する構成可能エレメントです。 条件ステートメントのほかに、指定された条件ステートメントのリストを通過しないイベントに対しては、オプションの最終ルートを定義できます。

選択肢の仕組み

前述のように、選択肢は、ジオイベントが進むことができるルートのリストを指定します。 各ルートは、イベントが通過するために満たす必要がある条件ステートメントを定義する when 句によって評価されます。 イベントが、when 句によって定義された条件を通過すると、そのルートを進みます。 イベントが、when 句によって定義された条件を通過しない場合は、次の when 句に移動します (存在する場合)。 選択肢内の when 句は順次処理され、その選択エレメント内ですべて構成可能です。

イベント レコードが、when 句に指定されたいずれかの条件を満たさない場合は、必要に応じて、そのレコードを otherwise ルートに移動させることができます。 otherwise ルートが有効な場合、イベントはその経路に移動され、満たすべき条件は存在しません。 otherwise ルートが有効でない場合、イベント レコードは削除され、どのルートにも移動されません。

注意:

指定の when 句の条件を満たすイベント レコードは、後続の when または otherwise ルートで考慮されません。

例 1: 輸送車両の監視

この例では、既定のデータ フィードがさまざまなタイプの輸送車両に関するイベント データを提供すると仮定します。データはそれぞれ異なる方法で処理する必要があります。 データには、3 つの異なるタイプの輸送機関 (AirplaneTrainAutomobile) に関する情報が格納されるフィールド (VehicleType) が含まれています。 選択肢エレメントを使用して、各イベント レコードを車両タイプに基づいて個別の処理ワークフローにルーティングできます。 データ フィードが、3 つの車両タイプのいずれでもないイベント レコードを送信した場合、そのイベントは削除されます。

[選択肢] ダイアログの条件ステートメントの例

この例で適用される次の条件ステートメントについて考察します。

  • VehicleTypeAirplane に等しい場合、イベント レコードを飛行機として処理します。
  • VehicleTypeTrain に等しい場合、イベント レコードを列車として処理します。
  • VehicleTypeAutomobile に等しい場合、イベント レコードを自動車として処理します。
  • VehicleTypeTruck に等しい場合、イベント レコードを削除します。

条件ステートメントの例

例 2: 除雪車速度の監視

この例では、データ フィードがすべての除雪車両およびそれらの現行速度に関するイベント データを提供すると仮定します。 除雪作業中の通常の車両速度は 25 ~ 35 マイル/時です。 速度がこの範囲を下回っている場合は、除雪車が効率的に作業していないことを示し、この範囲を上回っている場合は、除雪車が損傷を受ける可能性があります。

[選択肢] ダイアログの条件ステートメントの例

除雪車による除雪時に適用される次の条件ステートメントについて考察します。

  • 速度が 24 マイル/時以下の場合、除雪車のステータスは Low Speed になります。
  • 速度が 36 マイル/時以上の場合、除雪車のステータスは High Speed になります。
  • それ以外の場合、除雪車のステータスは Normal Speed になります。

条件ステートメントの例

選択肢を使用するときの検討事項

選択肢を使用する場合は、以下に示すような多くの検討事項があります。

  • 選択肢ごとに 1 つ以上の条件ステートメントを使用する必要があります。
  • otherwise 句の定義はオプションであり、デフォルトで無効になっています。
  • 選択肢ごとに 1 つ以上の親エレメントを設定できます。親エレメントは入力フィルター、またはプロセッサのいずれかである必要があります。
  • when 句ごとにターゲット エレメントを 1 つだけ設定できます。つまり、otherwise を含む各条件ステートメントからの流出ルートは 1 つだけです。
  • ユース ケースで、1 つの when 句のターゲットを複数のエレメントにルーティングする必要がある場合 (2 つの別々の出力へのルーティングなど)、ノー オペレーション プロセッサを when 句のターゲットとして使用し、そこから分岐します。
  • 選択肢エレメントのターゲットは、空白 (ターゲットなし)、プロセッサ、フィルター、または出力のいずれかである必要があります。
  • 選択肢エレメントは別の選択肢エレメントにルーティングできません。つまり、ジオイベント サービスに 2 つの選択肢エレメントを連続して配置することはできません。
    • 選択肢への入力を別の選択肢の出力にすることはできません。
    • 選択肢のターゲットを別の選択肢にすることはできません。
  • ユース ケースで、1 つ目の選択肢エレメントのターゲットを 2 つ目の選択肢エレメントにルーティングする必要がある場合は、次の操作を実行します。

ジオイベント サービスへの選択肢の追加

ジオイベント サービスに選択肢を追加して構成するには、次の手順に従います。

  1. サービス デザイナーで、[選択肢] エレメントを [新しいエレメント] リストからキャンバスにドラッグ アンド ドロップします。 [選択肢] ダイアログが開きます。

    [選択肢] ダイアログ

  2. 新しい選択肢エレメントの [名前] を入力します。
    注意:

    選択肢では、指定した順序で 1 つ以上の条件ステートメントをイベント データに適用できます。 各条件ステートメントには一意の名前が付けられます。この名前は、条件ステートメント自体とともに、条件ステートメントがイベント データを評価する順番を示す番号 (1 から始まる) を識別します。

  3. [追加] をクリックして、条件ステートメントを追加します。

    条件ステートメントの追加

  4. [選択肢プロパティ] ダイアログで、次の手順に従って when 句を追加します。

    [選択肢プロパティ] ダイアログ

    1. 条件ステートメントの [名前] を入力します。
    2. [条件式の追加] [条件式の追加] ボタン をクリックし、when 句を追加して構成します。
    3. もう一度 [条件式の追加] [条件式の追加] ボタン をクリックし、さらに when 句を追加して構成します。
    4. [Ok] をクリックして、条件ステートメントを保存します。
  5. 上述のステップ 3 と 4 を繰り返して、必要に応じて条件ステートメントを追加します。
  6. オプションとして、[Otherwise] チェックボックスをオンにして、otherwise ルートを定義できます。

    [Otherwise] ルート オプション

    注意:

    [Otherwise] チェックボックスをオンにすると、otherwise ルートが有効になります。 when 句によって定義された条件を満たさないすべてのイベントは、otherwise ルートに移動されます。 [Otherwise] チェックボックスをオフにした場合、定義された when 句を満たしていないイベント レコードがすべて削除されます。

  7. [Ok] をクリックして選択肢エレメントを保存し、サービス デザイナーのキャンバスに追加します。
  8. 新しい選択肢エレメントをジオイベント サービスの他のエレメントに接続します。

選択肢の編集

[選択肢] ダイアログには、構成済みの条件ステートメントを確認、編集、削除、順序変更するためのオプションがあります。

  • 条件ステートメントに関連付けられた when 句を表示するには、情報ボタン にポインターを合わせます。
  • 条件ステートメントの when 句を開いて編集するには、編集ボタン をクリックします。
  • 条件ステートメントを削除するには、削除ボタン をクリックします。
  • 条件ステートメントがイベント データを評価する順番を変更するには、順序変更ボタン を使用します。

when 句のフィルターの使用

when 句では、各種フィルターを使用してイベント データを評価することができます。 各種のフィルタリング オプションの詳細については、次の参考資料をご参照ください。