最近のアクセス:
[Connectivity Support] プロパティを使用する方法

[ Connectivity Support ] プロパティの説明にあるように、このプロパティには 3 つの値を使用できます: Online、Offline、および Inherit です。
オブジェクトごとにこのプロパティの値を変更することによって、アプリケーションの一部のセクションがローカルデータベースで機能するか (Offline)、REST サービスを呼び出してパネルのデータを取得するか (Online) を決めることができます。

仕組み

例として、シンプルなイベントアプリケーションを使用します。このアプリケーションには Session と Speaker に関する情報があり、イベントに関連する Tweet のリストを表示します。
このシンプルなイベントアプリケーションには、次の 3 つの Transaction オブジェクトと、それらに対応する Work With オブジェクトがあります:
イメージ:54131.png
アプリケーションが設計されたので、これをオフラインアプリケーションにしましょう。そのためには、メインの Menu オブジェクト[ Connectivity Support ] プロパティを Offline に設定します。
: メイン以外のオブジェクトはすべて、[ Connectivity Support ] プロパティが既定で Inherit になります。
イメージ:54134.jpg
Menu オブジェクトをビルドした後で、Speaker、Session、および Tweet の各テーブルを持つオフライン データベース オブジェクトが作成されます (オフライン データベース オブジェクトの説明を参照)。これらのテーブルは、オフラインオブジェクトがアクセスするテーブルです。
イメージ:54132.png
この処理が行われると、イベントアプリケーションのテーブルはすべてローカルに格納され、すべてのデータベースアクセスはそのローカルデータベース上で実行されるようになります。
しかし、Tweet をローカルに格納する代わりに、その WW をオンラインで機能させる場合はどうなるでしょうか。これを行う理由は非常に単純です: アプリケーションの他の情報に比べ、Tweet はより頻繁に変化するため、公開されたらすぐに使用できるようにする必要があります。同期により最新の Tweet の取得を待ったり、Tweet を取得するためだけに同期の頻度を増やすよりも優れています。
Tweet の Work With オブジェクト[ Connectivity Support ] プロパティを Online に設定するだけで簡単に設定できます。
オフラインデータベースに置かれるテーブルは、次の図に示すように、Speaker と Session だけになります:
イメージ:54133.png

プロシージャーまたはデータプロバイダーでの [ Connectivity Support ] プロパティの使用

[ Connectivity Support ] プロパティの説明にあるように、このプロパティはプロシージャーデータプロバイダーにも使用できます。これによって、オフラインオブジェクトからオンラインプロシージャーやデータプロバイダーを呼び出すのが簡単になります。
REST サービスとして公開されるオンラインプロシージャーをオフラインパネルから呼び出す複雑な方法では、HttpClient データタイプを使用します。プロシージャーの [ Connectivity Support ] プロパティを Online に設定すると、同じ処理を非常に簡単な方法で実行できます。この場合、オフラインアプリケーションは、このプロシージャーを常に REST サービスを介して呼び出すように強制されます。デバイスは、HttpClient データタイプを使用した場合と同様のプロセスを実行しますが、このプロパティを使用することで、より簡単に実行できます。
ここで使用したシナリオで、プロシージャーを呼び出します。このプロシージャーは REST サービスとして公開されており、イベントについて言及している新しい Tweet をすべて返すものとします。
オフライン ネイティブ モバイル アプリケーションのアーキテクチャで説明したように、アプリケーションがオフラインアーキテクチャに設定された場合、既定ではすべてのプロシージャーをローカルで呼び出します。Tweet プロシージャーを呼び出すときにこの動作を回避するには、そのプロシージャーの [ Connectivity Support ] プロパティを Online に変更します。

[ Connectivity Support ] の値 Inherit について

値に Inhterit を指定すると、呼び出し元オブジェクトの [ Connectivity Support ] プロパティに応じて、オブジェクトがオンラインまたはオフラインで機能できるようになるため、柔軟性が増します。
たとえば、Object A、Object B、Object C という 3 つのモバイルオブジェクトがあり、それぞれのオブジェクトに次のプロパティが設定されているとします:
  • Object A の [ Connectivity Support ] : Inherit
  • Object B の [ Connectivity Support ] : Online
  • Object C の [ Connectivity Support ] : Offline
B が A を呼び出した場合、A は Online オブジェクトとして機能します (Web サーバーのデータを使用)。
C が A を呼び出した場合、A は Offline オブジェクトとして機能します (オフラインデータベースのデータを使用)。
: メインオブジェクトの接続サポートが Offline である場合にのみ、これが適用されます。オンラインの場合には、アーキテクチャ全体が変更され、上のサンプルでは、B は C を呼び出すことができません。そのため、オンラインアプリケーションではオフラインオブジェクトを呼び出すことができません。

参考情報

[ Connectivity Support ] プロパティ
オフライン データベース オブジェクト
オフライン データベース オブジェクトのテーブル選択


サブページ
Created: 15/01/07 22:48 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0