はじめに
本ページでは、外部のデータベースサーバ(以下、サーバー)を利用するUnifinityアプリケーション(以下、クライアント)の設計例を紹介します。
サーバーのデータを利用する場合の設計方針
サーバーから取得したデータをクライアントで利用する場合は、以下のルールに沿ってシステムを設計します
サーバー
- データ取得用のAPIを用意します
- データ更新用のAPIを用意します
クライアント
- ロジック・コントロールはデータベース(以下、内部DB)を参照させる
- サーバーの情報を読み込む場合は、「ネットワーク/GETロジック」でサーバーAPIにアクセスし、その結果を内部DBにを書き込みます
- サーバーの情報を更新する場合は、「ネットワーク/POSTロジック」で内部DBのデータをAPIに送信することでサーバー上のデータを書き換えます
サーバーから取得した情報をオフラインで編集する
サーバーから取得したデータをオフライン状態で編集し、
オンラインとなった場合にデータを同期させたい場合は以下のように設計します。
内部DBのテーブル設計
オフライン時に編集する必要があるテーブルに、送信状態を示すカラムを追加します。
同期処理
同期処理は以下のように作成します。
- 情報未送信のデータをサーバーに送信します
- データ更新時に異常が発生した場合
- 送信したレコードの送信状態に「未送信」を設定します
- データ更新が正常終了した場合
- 送信したレコードの送信状態に「送信済み」を設定します
同期タイミング
- 同期ボタンを作成し、ボタンの実行処理に「同期処理」を設定します
- 画面遷移などによる通信発生時に必ず「同期処理」を実行するようにします
データの競合時の制御
- データ競合の検出方法・データ競合時の振る舞いについてはサーバーのデータ更新APIを設計する際に取り決める必要があります