ウィジェットへのアクションの追加

Experience Builder を使用して動的かつ対話的なアプリを作成するには、次の操作を実行します。

  • ウィジェットをデータに接続して、動的なコンテンツで構成します。
  • ウィジェットとフレームワーク (データ ソース) 間の対話機能を設定します。
  • ウィジェット間の対話機能を構成します。

2 種類のアクション (メッセージ アクションデータ アクション) をウィジェットに追加できます。 メッセージ アクションはトリガーを待機し、リストを絞り込んで、マップの現在の範囲内のレコードのみを表示するなどのアクションを自動的に実行します。 データ アクションには [アクション] ボタンがあります。エンド ユーザーは、ウィジェットの実行時にこのボタンをクリックし、リストの中から実行したいアクションを選択できます (レコードをファイルにエクスポートするなど)。

メッセージ アクション

Experience Builder アプリはデータ主導です。つまり、一般的に、基となるデータが更新されると、ウィジェットが表示するデータは変化します。 トリガーに対応するメッセージ アクションを構成することで、ウィジェットとデータ間の対話機能を定義できます。 たとえば、マップ ウィジェットが範囲を変更すると、他のウィジェット (リストなど) がフィルタリングされ、現在の範囲内のフィーチャのみが表示されるようなやり取りを作成することができます。 そのために、マップ ウィジェットで [範囲の変更] をトリガーとして設定し、リストが使用しているデータ ビューの [データ レコードのフィルタリング] をアクションとして設定します。 ウィジェットはデータ主導なので、フレームワーク レベルでフィルター アクションをデータに適用することで、同じデータ ビューを使用しているすべてのウィジェットが自動的に同期されます。 また、ウィジェット間の対話機能を定義することもできます。 ウィジェットが提供するアクションは、そのウィジェット内でのみ有効になります。 たとえば、2 つのマップ ウィジェットのうち、一方のマップ ウィジェットの範囲の変更をトリガーとして設定し、もう一方のマップ ウィジェットの [範囲の変更] をアクションとして設定することで、ユーザーが一方のマップ ウィジェットを拡大表示または画面移動した際に、2 つのマップ ウィジェットの範囲を同期させることができます。

これらの対話機能は、トリガーを提供するソース ウィジェットの [アクション] ウィンドウで定義および管理します。 [メッセージ アクション] 構成には 3 つの部分があります。

  • ソース ウィジェットからのトリガー
  • トリガーに対応するターゲット (ウィジェットとアプリ フレームワークを含む)
  • その使用目的に関連するターゲットからのアクション

ソース ウィジェットのトリガーは 1 度だけ追加できます。ただし、同じまたは異なるターゲットからの特定のトリガーに複数のアクションを追加できます。

トリガー

トリガーはソース ウィジェットにより生成されるイベントです。 トリガーが発生すると、それに対応して、そのトリガーに追加されたアクションが実行されます。 次の表に、現在サポートされている 4 つのトリガーを示します。

トリガー説明

データのフィルタリングの変更

データ ソースにフィルターが適用されると、トリガーが発生します。

範囲の変更

画面移動、ズーム、サイズ変更などによりマップの範囲が変わると、トリガーが発生します。

レコード選択の変更

レコードが選択されたか、レコードの選択が解除されると、トリガーが発生します。

作成されたレコード

トリガーは、作成されたレコードがソース ウィジェットに読み込まれると起動します。

ウィジェットの利用可能なトリガーを表示するには、その設定を開いて、[アクション] タブの [トリガーの追加] をクリックします。 ソース ウィジェットとサポートされるトリガーを次の表に示します。

ソース ウィジェットデータのフィルタリングの変更範囲の変更レコード選択の変更作成されたレコード

チャート

Yes

フィーチャ情報

Yes

フィルター

Yes

リスト

Yes

マップ

Yes

Yes

クエリ

Yes

Yes

検索

Yes

Yes

Yes

テーブル

Yes

ターゲット

ターゲットはアクションを実行します。 ターゲットはウィジェットまたはフレームワークです。 フレームワークをターゲットとして選択すると、アクションは、アプリ内の関連するすべてのウィジェットとページを通してグローバルに実行されます。

アクション

フレームワーク特定のビジネス ロジックを実行するターゲット (特にウィジェット) によって提供されます。 アクションの中には、ターゲットがトリガーからのメッセージを処理する方法に応じて、追加の構成が必要なものもあります。 たとえば、データ ビューのフィルター アクションを構成していて、トリガーが異なるデータに基づいている場合、属性または空間リレーションシップを設定することで、ターゲットのデータ ビューをフィルター処理できます。 SQL 条件を設定することもできます。

ターゲットはそれぞれ、異なったトリガーに対応するアクションを提供します。 トリガーを追加しターゲットを選択すると、利用可能なアクションが表示されます。 ターゲットとそれに対応するアクションを次の表に示します。

ターゲットアクション*トリガー: データのフィルタリングの変更トリガー: レコード選択の変更トリガー: 範囲の変更トリガー: 作成されたレコード

フレームワーク

[データ レコードのフィルタリング] - 今後アプリから表示または処理するために、条件に一致したデータ ビュー内のレコードのみを保持します。

Yes

Yes

[データ レコードの選択]** - レコードを選択済みとしてマークし、[選択フィーチャ] ビュー内に配置します。

Yes

マップ ウィジェット

[画面移動] - 現在の縮尺を維持して指定した位置に中央配置します。

Yes

Yes

Yes

Yes

[ズーム]*** - 指定した位置にズームします。

Yes

Yes

Yes

Yes

[フラッシュ] - マップ状のフィーチャを点滅表示します。

Yes

[フィルター] - マップ ウィジェットで表示するために、条件に一致したフィーチャのみを保持します。

Yes

[マップ上に表示] - 作成されたレコードを、新しいレイヤーとしてマップに表示します。

Yes

*フレームワーク アクションで、アクション データがデフォルト ビューの場合、そのデータとビューを使用しているすべてのウィジェットに影響を与えます。 アクション データが指定したビューの場合、アクションはそのビューを使用しているウィジェットにのみ影響します。 ウィジェット アクションの場合、アクションはターゲット ウィジェットに対してのみ実行されます (たとえば、マップ フィルター アクションはマップ内のレコードのみをフィルタリングし、同じレイヤーを使用している他のすべてのウィジェットには影響を与えません)。

**レコードの選択状態はアプリ全体で同期され、選択済みのレコードはデータの [選択フィーチャ] ビューに保存されます。 選択したレコードを表示するためのウィジェット構成が異なる場合があります。

*** [ズーム] アクションを追加すると、[アクション設定] ウィンドウの [ズーム縮尺] 設定を変更できます。 [カスタム] を選択してマップのズーム レベルを調整するか、[自動] を選択してマップのデフォルト縮尺を使用します。

**** [マップ上に表示] アクションを追加すると、作成されたレコードのシンボルをカスタマイズできます。 [カスタム シンボルの使用] を選択して、ポイント、ライン、ポリゴンの塗りつぶし、アウトライン、透過表示などをカスタマイズします。 [レイヤー定義シンボルの使用] を選択して、ソース ウィジェットの現在のアクションと関連付けられているレイヤーのシンボルを使用します。

データ アクション

エンド ユーザーが、実行時にアプリのデータを処理できるよう、データ アクションを構成できます。 ソース ウィジェットの [アクション] ボタンをクリックして、データセットを特定のウィジェット (テーブルのクエリ結果を表示するなど) に渡すか、アプリ フレームワークに渡すか (データのエクスポートを行う) を選択します。

これらの対話機能は、ランタイム データセットを提供するソース ウィジェットの [アクション] ウィンドウで定義および管理します。 データ アクションの構成には 2 つの部分があります。

  • データセットを受け取るターゲット (ウィジェットとアプリ フレームワーク)
  • ターゲットが提供するデータ アクション (エンド ユーザーが選択した場合にのみ実行される)

ターゲットに渡されるデータセットは、ソース ウィジェットによって異なります。 たとえば、リスト ウィジェットは、選択したレコードだけをテーブル ウィジェットに渡します。また、チャート ウィジェットは、選択されているかどうかに関係なく、すべての統計情報データをテーブル ウィジェットに渡します。 以下の表に、使用可能なソース ウィジェット、ターゲットとサポートされるデータ アクション (ターゲット: データ アクション)、および各ソース ウィジェットが該当するアクションに対して渡すデータセットを示します。

ソース ウィジェットフレームワーク: エクスポートマップ: ズームマップ: 画面移動マップ: マップ上に表示*テーブル: テーブルでの表示

チャート

すべてまたは選択したレコード (統計情報データ)

N/A

N/A

N/A

すべてのレコード (統計情報データ)

フィーチャ情報

選択

選択

選択

選択

選択

リスト

すべてまたは選択したレコード

選択

選択

選択

選択

クエリ

すべてまたは選択したレコード (クエリ結果)

すべてのレコード (クエリ結果)

すべてのレコード (クエリ結果)

すべてのレコード (クエリ結果)

すべてのレコード (クエリ結果)

テーブル

すべてまたは選択したレコード

選択

選択

選択

N/A

* [マップ上に表示] アクションを追加すると、作成されたレコードのシンボルをカスタマイズできます。

データ アクションがターゲット ウィジェットで実行されると、ターゲット ウィジェットには解除用のボタンが表示されます。 たとえば、エンド ユーザーがリスト ウィジェットのデータを選択し、そのデータをテーブル ウィジェットで表示する場合、新しいシートの横に、テーブルからシートを削除するためのボタンが表示されます。 同様に、[マップ上に表示] データ アクションを選択すると、マップからデータ アクションを消去するためのボタンが表示されます。 (ページを更新すると、すべてのデータ アクション結果が消去されます。)

対話機能の構成

ソース ウィジェットの [アクション] パネルで、メッセージ アクションとデータ アクションを構成できます。

メッセージ アクションの構成

メッセージ アクションは、ソース ウィジェット (トリガーを提供するウィジェット) の設定で構成されます。

  1. [アクション] パネルの [メッセージ アクション] タブで [トリガーの追加] をクリックします。
  2. トリガーを選択し、ターゲットを選択して、アクションを追加および選択します。

    [フィルター][フラッシュ][データ レコードの選択] などのアクションによっては、追加の構成が必要になります。 アクションを選択すると、[アクション設定] オプションが表示されます。 各トリガーは、一度しか追加できません。

  3. 同じトリガーに対して複数のアクションを追加するには、[アクションの追加] をクリックします。

    同じトリガーのアクションは順番に発生します。

  4. トリガーの下でグループ化されているアクションをドラッグして、順番を変更します。
  5. 構成済みの設定を後から変更するには、アクションの [設定] ボタン 設定 をクリックします。
  6. アクションを追加した後にアクションまたはターゲットを変更するには、削除してから新たに追加する必要があります。

    トリガーを削除すると、そのトリガーに追加されたアクションもすべて削除されます。

データ アクションの構成

データ アクションはソース ウィジェットの設定で構成されます。ただし、エクスポートだけは例外で、[データ] パネルのデータ ソースに対して構成されます。 データ アクションはデフォルトで有効になっており、ウィジェットの [アクション] ボタンには、すべての使用可能なデータ アクションが自動的に含まれます。

  1. [アクション] パネルの [データ アクション] タブで、データ アクションをオンまたはオフにすることで、ウィジェットのアクション メニューのオプションを指定できます。 それ以外の場合は [データ アクションを有効化] をオフにし、ウィジェットから [アクション] ボタンを外します。
  2. オンにした各データ アクションについて、操作するソース ウィジェットのターゲット ウィジェット (マップ ウィジェットなど) を選択します。

    ソース ウィジェットと同じページにあるターゲット ウィジェットのみ選択できます。

    注意:

    ページにターゲット ウィジェットを追加すると、同じページ上の使用可能なソース ウィジェットに、対応するデータ アクションが自動的に追加されます。

    ヒント:

    データ アクションはアプリのターゲット位置までジャンプしないため、最適な結果を得るには、ソース ウィジェットをターゲット ウィジェットの隣に配置します。

  3. [エクスポート] データ アクションを除外するには、[データ] パネルで、データ ソースの [エクスポートの許可] をオフにします。

使用例

メッセージ アクションを追加すると、次のようなアプリ設計要件に対応できるようになります。

  • 2 つのマップ、2 つのシーン、またはマップとシーンを比較するアプリを構築して、2 つのマップ ウィジェットの範囲が常に同期するようにするとします。 両ウィジェットに [範囲の変更] トリガーを追加し、別のウィジェットをそれぞれのターゲットとして選択して、[画面移動] アクションまたは [ズーム] アクションを選択します。
  • リスト ウィジェットをマップ ウィジェットに追加して、マップの現在の範囲内にあるレコードだけがリストに表示されるようにするとします。 [範囲の変更] トリガーをマップ ウィジェットに追加し、フレームワークの [データ レコードのフィルタリング] アクションを選択して、リスト ウィジェット設定で構成されたデータ ビューとしてアクション データを選択し、範囲との空間リレーションシップでアクションを構成できます。

データ アクションを使用すると、次のようなアプリ設計要件に対応できるようになります。

  • チャート ウィジェットを追加して、数値データまたは定性的データをグラフに表し、チャートで生成された統計情報データをテーブル ウィジェットに表示するオプションをエンド ユーザーに提供できます。 チャート ウィジェットの横にテーブル ウィジェットを追加すると、[テーブルでの表示] データ アクションがチャート ウィジェットに自動的に追加されます。 エンド ユーザーが、実行時にチャート ウィジェットの [アクション] ボタンをクリックして [テーブルでの表示] を選択すると、テーブル ウィジェットに統計情報を表示できます。
  • リスト ウィジェットを追加してデータ レコードを表示し、マップ ウィジェットを追加して別のデータ レコードを表示します。 リストで選択されたレコードに対応するマップ上のフィーチャを表示し、1 つのマップでさまざまなデータを比較するオプションをエンド ユーザーに提供できます。 その場合、エンド ユーザーは実行時にリスト ウィジェットの [アクション] ボタンをクリックし、[マップ上に表示] を選択します。
  • テーブル ウィジェットにデータ レコードを表示し、エンド ユーザーがデータをエクスポートできるようにします。 その場合は、データ ソースに対して [エクスポートの許可] が有効になった状態で、テーブル ウィジェットの [アクション] ボタンをクリックして、選択したレコードかすべてのレコードをエクスポートできます。