Experience Builder を使用して動的かつ対話的なアプリを作成するには、次の操作を実行します。
- ウィジェットをデータに接続して、動的なコンテンツで構成します。
- ウィジェットとフレームワーク (データ ソース) 間の対話機能を設定します。
- ウィジェット間の対話機能を構成します。
Experience Builder アプリはデータ主導です。つまり、一般的に、基となるデータが更新されると、ウィジェットが表示するデータは変化します。 トリガーに対応するアクションを構成することで、ウィジェットとデータの間のやり取りを定義できます。 たとえば、マップ ウィジェットで範囲の変更をトリガーとして設定し、リストが使用しているデータ ビューのフィルター レコードをアクションとして設定することで、マップ ウィジェットが範囲を変更するたびに、リストなどの他のウィジェットがフィルタリングされ、現在の範囲内のフィーチャのみが表示されるような対話機能を作成することができます。 ウィジェットはデータに基づいているため、フレームワークおよびデータ レベルでフィルター アクションを適用することで、同じデータ ビューを使用しているすべてのウィジェットが自動的に同期されます。 また、ウィジェット間の対話機能を定義することもできます。 ウィジェットが提供するアクションは、ウィジェット内でのみ有効になります。 たとえば、2 つのマップ ウィジェットのうち、一方のマップ ウィジェットの範囲の変更をトリガーとして設定し、もう一方のマップ ウィジェットの範囲の変更をアクションとして設定することで、ユーザーが一方のマップ ウィジェットを拡大表示または画面移動した際に、2 つのマップ ウィジェットの範囲を同期させることができます。
対話機能の構造
対話機能は、トリガーを提供するソース ウィジェットの [アクション] ウィンドウで定義および管理します。 対話機能は 3 つの部分で構成されます。
- ソース ウィジェットからのトリガー
- トリガーに対応するトリガー (ウィジェットとアプリ フレームワークを含む)
- その使用目的に関連するターゲットからのアクション
ソース ウィジェットのトリガーは 1 度だけ追加できます。ただし、同じまたは異なるターゲットからの特定のトリガーに複数のアクションを追加できます。
トリガー
トリガーはソース ウィジェットにより生成されるイベントです。 トリガーが発生すると、それに対応して、そのトリガーに追加されたアクションが実行されます。 次の表に、現在サポートされている 2 つのトリガーを示します。
トリガー | 説明 |
---|---|
範囲の変更 | 画面移動、ズーム、サイズ変更などによりマップの範囲が変わると、トリガーが発生します。 |
レコード選択の変更 | レコードが選択されたか、レコードの選択が解除されると、トリガーが発生します。 |
ウィジェットの利用可能なトリガーを表示するには、その設定を開いて、[アクション] タブの [トリガーの追加] をクリックします。 ソース ウィジェットとサポートされるトリガーを次の表に示します。
ソース ウィジェット | 範囲の変更 | レコード選択の変更 |
---|---|---|
マップ | ![]() | ![]() |
フィーチャ情報 | ![]() | |
リスト | ![]() | |
テーブル | ![]() |
ターゲット
ターゲットはアクションを実行します。 ターゲットはウィジェットまたはフレームワークです。 フレームワークをターゲットとして選択すると、アクションは、アプリ内の関連するすべてのウィジェットとページを通してグローバルに実行されます。
アクション
フレームワーク特定のビジネス ロジックを実行するターゲット (特にウィジェット) によって提供されます。 アクションの中には、ターゲットがトリガーからのメッセージを処理する方法に応じて、追加の構成が必要なものもあります。 たとえば、データ ビューのフィルター アクションを構成していて、トリガーが異なるデータに基づいている場合、属性または空間リレーションシップを設定することで、ターゲットのデータ ビューをフィルター処理できます。 SQL 条件を設定することもできます。
ターゲットはそれぞれ、異なったトリガーに対応するアクションを提供します。 トリガーを追加しターゲットを選択すると、利用可能なアクションが表示されます。 ターゲットとそれに対応するアクションを次の表に示します。
ターゲット | アクション* | トリガー: レコード選択の変更 | トリガー: 範囲の変更 |
---|---|---|---|
フレームワーク | [データ レコードのフィルタリング] - 今後アプリから表示または処理するために、条件に一致したデータ ビュー内のレコードのみを保持します。 |
![]() | ![]() |
[データ レコードの選択]** - レコードを選択済みとしてマークし、[選択フィーチャ] ビュー内に配置します。 |
![]() | ||
マップ ウィジェット | [画面移動] - 現在の縮尺を維持して指定した位置に中央配置します。 |
![]() | ![]() |
[ズーム] - 指定した位置にズームします。 |
![]() | ![]() |
|
[フラッシュ] - マップ状のフィーチャを点滅表示します。 |
![]() | ||
[フィルター] - マップ ウィジェットで表示するために、条件に一致したフィーチャのみを保持します。 |
![]() |
*フレームワーク アクションで、アクション データがデフォルト ビューの場合、そのデータとビューを使用しているすべてのウィジェットに影響を与えます。 アクション データが指定したビューの場合、アクションはそのビューを使用しているウィジェットにのみ影響します。 ウィジェット アクションの場合、アクションはターゲット ウィジェットに対してのみ実行されます (たとえば、マップ フィルター アクションはマップ内のレコードのみをフィルタリングし、同じレイヤーを使用している他のすべてのウィジェットには影響を与えません)。
**レコードの選択状態はアプリ全体で同期され、選択済みのレコードはデータの [選択フィーチャ] ビューに保存されます。 選択したレコードを表示するためのウィジェット構成が異なる場合があります。
対話機能の構成と管理
ソース ウィジェット (トリガーを提供するウィジェット) の [アクション] タブで対話機能を構成します。 トリガーを追加および選択し、ターゲットを選択して、アクションを追加および選択します。 各トリガーは 1 度だけ追加できますが、[アクションの追加] をクリックして同じトリガーに複数のアクションを追加することができます。 同じトリガーのアクションは順番に発生します。 トリガーの下でグループ化されているアクションをドラッグして、順番を変更します。
[フィルター]、[フラッシュ]、[データ レコードの選択] などのアクションによっては、追加の構成が必要になります。 アクションを選択すると、[アクション設定] オプションが表示されます。 構成を完了したら、アクションの [設定] ボタン をクリックして、後から設定を変更できます。 アクションを追加した後にアクションまたはターゲットを変更するには、削除してから新たに追加する必要があります。 トリガーを削除すると、そのトリガーに追加されたアクションもすべて削除されます。
使用例
次のようなアプリの設計要件をサポートするアクション トリガーを追加します。
- 2 つのマップ、2 つのシーン、またはマップとシーンを比較するアプリを構築して、2 つのマップ ウィジェットの範囲が常に同期するようにするとします。 両ウィジェットに [範囲の変更] トリガーを追加し、別のウィジェットをそれぞれのターゲットとして選択して、[画面移動] アクションまたは [ズーム] アクションを選択します。
- リスト ウィジェットをマップ ウィジェットに追加して、マップの現在の範囲内にあるレコードだけがリストに表示されるようにするとします。 [範囲の変更] トリガーをマップ ウィジェットに追加し、フレームワークの [データ レコードのフィルタリング] アクションを選択して、リスト設定で構成されたデータ ビューとしてアクション データを選択し、範囲との空間リレーションシップでアクションを構成できます。