Skip to main content

 

データを使用する

 

モバイルアプリが対象
OutSystems

読み取り専用データ

このデータの同期パターンは、以下に示すように、アプリがオフラインの間にエンドユーザーにはデータの読み取りのみが必要で、同期すべきデータが少ないモバイルアプリに推奨されます。

  • サーバーデータベースは、時間とともに変化する可能性のあるマスターデータを保持しています。
  • 同期によって、サーバーデータベースからすべてのデータをダウンロードし、デバイスのローカルストレージに保存します。
  • デバイスで行われたデータの変更は、サーバーに伝達されません。

以下は、読み取り専用データパターンのロジックの概要です。

  1. データを取得するために、サーバーを起動します。

  2. データベースのデータを返します。

  3. ローカルストレージのデータを削除し、サーバーから取得したデータで作成し直します。

同期するデータ量を低減するため、ユーザーに関係ある最低限のデータのみをダウンロードして保存します。

読み取り専用データパターンのサンプルモジュールをダウンロードします。このサンプルモジュールでは、データの同期の例として複数の企業が使用されています。以下のセクションでは、この同期パターンを自動的に作成する方法を説明し、サンプルモジュールで使用されているデータモデルとロジックについて詳細に説明します。

エンティティのパターンを自動的に生成する

あるエンティティについて、このパターンを実装するために必要なロジックを自動的に生成するには、以下の手順を実行します。

  1. Service Studioで[Data]タブを開きます。

  2. [Local Storage]で、データベースで同期するエンティティのローカルエンティティを選択します。

  3. [LocalCompany]を右クリックし、[Create Action to Sync Data (Read-Only)]を選択します。

    このオプションは、ローカルエンティティがデータベースエンティティに(Idをデータベースエンティティへの外部キーとして)リンクされている場合にのみ使用できます。これができるのは、[Local Storage]を右クリックしてから[Add Entity from Database...]を選択してローカルエンティティを作成した場合です。**

    アクションを作成してデータを同期する (読み取り専用)

これにより、読み取り専用同期パターンを実装するために必要なアクションが作成されます。

SyncLocal<Entity>
ローカルエンティティとサーバーデータベースのエンティティのと間の同期を開始するクライアントアクションです。
Sync<Entity>
SyncLocal<Entity>アクションによって呼び出されるサーバーアクションです。クライアントのローカルストレージに保存されるデータベースのエンティティの現在のレコードを取得します。

このパターンを同期テンプレートの仕組みで実行する場合は、OfflineDataSyncクライアントアクションでSyncLocal<Entity>の呼び出しを追加します。

データモデル

このサンプルでは、データベースエンティティCompanyとそれに対応するローカルストレージエンティティLocalCompanyを定義します。

読み取り専用データパターンデータモデル

OfflineDataSyncロジック

以下は、OfflineDataSyncクライアントアクションのロジックの説明です。

読み取り専用データパターンOfflineDataSync

  1. ServerDataSyncサーバーアクションを呼び出し、データベースからデータを取得します。サーバーは、Companyレコードのリストを返します。
  2. ローカルストレージのすべてのCompanyレコードを削除します。
  3. サーバーから返されたレコードのリストを使用し、ローカルストレージのCompanyレコードを作成し直します。

DeleteAllLocalCompaniesおよびCreateOrUpdateAllLocalCompaniesは、LocalCompanyローカルストレージエンティティに自動的に作成されるエンティティアクションです。これは、レコード処理を容易にするローカルストレージ機能の1つです。

ServerDataSyncロジック

以下は、ServerDataSyncサーバーアクションのロジックの説明です。

読み取り専用データパターンServerDataSync

  1. GetCompanies Aggregateは、データベースからすべてのCompanyレコードを取り出します。
  2. Aggregateから返されたレコードを、アクションの出力パラメータに割り当てます。
  • Was this article helpful?