こちらのTIPS(「テーブルを別アプリのレコードに書き出し、常に同期を取る方法」)では、テーブルの内容をレコードに書き出して同期しています。
しかし、一方方向の同期のため、書き出し先のレコードを変更しても書き出し元のテーブルには反映することが出来ません。
今回は、双方向で同期ができるように、書き出し先のアプリにもカスタマイズを設定してみます。
今回のカスタマイズで出来ること
同期されているレコードを保存したときに、同期元のテーブルを上書き更新します
テーブルを上書き更新するときは、テーブルの並び順を維持します
案件管理アプリには以下のフィールドを作成しました
集計アプリには以下のフィールドを作成しました
こちらのTIPS(「テーブルを別アプリのレコードに書き出し、常に同期を取る方法」)でアプリを作成済みでしたら採番キーと並び順を追加するだけですので、見た目よりは設定は簡単と思います。
Customineの設定
案件管理アプリ
「レコードを保存する直前(削除時は除く)」の時に同期用のキーなどを作成します。そして、「レコードを保存した直後(削除後は除く)」の時に同期します、それ以外は見た目のカスタマイズです。
集計アプリ
「レコードを保存した直後(削除後は除く)」の時に同一の採番キーを持つレコードを取得して、案件管理アプリのテーブルを上書きします。
※各アクショングラフには説明のため「やること」の名称を追加しています
案件管理アプリ
テーブル行とレコードの紐付けに必要な値を作成します
「レコードを保存する直前(削除時は除く)」に「テーブルの列に対して一度に自動採番を行う」と「テーブルの列に行番号をセットする」と「自動採番を行う」を実行します。
「テーブルの列に対して一度に自動採番を行う」では、次のように設定してください。
「自動採番を行う」では、次のように設定してください。
レコードを追加・更新します
「レコードを保存した直後(削除後は除く)」に「テーブル行をレコードとして取得する」と「レコードをもとに別のレコードを更新または追加する」を実行します。
「レコードをもとに別のレコードを更新または追加する」のマッピングでは、テーブ内のフィールドとテーブル外のフィールドの両方を指定していますので、設定時にはご注意ください。
フィールドの非表示や無効化をします
「追加画面・編集画面を表示した時」に「テーブルの行増減ボタンを非表示にする」でテーブル行を削除できないようにします。
さらに、「フィールドやグループを非表示にする」で「更新キー」を非表示にします。
採番キーと並び順は「フィールドを無効化する」で無効化にするのですが、テーブル内とテーブル外のフィールドを一度に指定できないので、2つに分けて設定します。
「詳細画面を表示した時」に「テーブルの表示行を絞り込む」で削除にチェックが入っている行を表示しないようにします。そして、「フィールドやグループを非表示にする」で「更新キー」と「削除」を非表示にします。
以上で、案件管理アプリの設定は完了です。
集計アプリ
レコード保存時に案件管理アプリのテーブルを上書きします
「レコードを保存した直後(削除後は除く)」に「キーを指定してレコードを取得する」でレコードを取得し、「レコードを並べ替える」で並び順にします。
その後、「レコードを指定アプリのテーブルに書き出す」でテーブルに書き出します。
「レコードを指定アプリのテーブルに書き出す」の設定は次のようになります。
まとめ
2つのアプリをカスタマイズすることで、テーブル行←→レコードの同期が可能になりました。
「テーブルを別アプリのレコードに書き出し、常に同期を取る方法」では、テーブル行→レコードの紐付けに「テーブルの列に対して一度に自動採番を行う」を利用しました。しかし、双方向にするにはそれだけでは足りないので「自動採番を行う」で採番キーを作成しています。
更に、テーブルに書き戻した時に並び順を維持するために、「テーブルの列に行番号をセットする」で並び順を設定しました。これは常に上書きで順番をセットするので便利です。
このように複数のキーを利用すると、レコードをまとめて処理する際に便利です。色々とお試しください。