外出用に FileMaker Go へデータをダウンロードしておく

Hitoshi Arakawa | 2024/06/04 Tue 04:10

最近は語学学習をしており、FileMaker で作ったフラッシュカード(暗記カード)アプリが活躍している。

従来の紙に書くフラッシュカードもやってみたが、数が増えると途端に管理が大変になる。それに外出先に持ち歩くのも難しい。やはりアプリで暗記したい。

そして市販の Anki 等のアプリも検討したが、やはり FileMaker で自分だけのアプリを作ったほうが一番やりやすいのだ。

フラッシュカードアプリは FileMaker Server にデータを置いている。FileMaker Server は自宅マシンで動かしている。フラッシュカードの都合上、外出先からもアクセスし、電車の中などでも勉強したい。

外出先から自宅の FileMaker Server にアクセスするには Twingate を使えばいい。

Twingate で外出先から自宅ネットワークにアクセス|荒川仁志 https://note.com/hitoshiarakawa/n/n4eb014a72574

しかし実際に運用してみるとアプリのレスポンスが遅くなる。特にフラッシュカードの都合上、カードの出題順をランダムにしたりする処理があったりするからだろう。隙間時間にさっと勉強したいので、遅いのはつらい。それでなくても、Twingate での接続にログインやらで少し時間を使うんだから。

となると、FileMaker Go にレコードデータを入れておき、オフラインで使うのが一番だ。

僕の使い方では FileMaker Server から FileMaker Go に外出前に最新のデータを落としておけばいい。FileMaker Go から FileMaker Server へのデータの更新はしなくていい。要するにダウンロードだけでいい。一人で使うし、複雑なスクリプトを組まなくていい。

この場合は、空のファイルを用意し、スクリプトで Import のスクリプトステップを使えば毎回簡単に取り込みができる。Import の場合、Relationship に FileMaker Server のファイルのテーブルを追加しておけばよく、Relationship などは結ばなくてよい。

またスクリプトステップでのインポート元のファイルは、fmnet:/{FileMaker Server の IP アドレス}/{ファイル名}.fmp12 のように指定する。

インポートでなぜか二重にレコードが取り込まれることがあった。PrimaryKey を Matching Field にしているのに。二重取り込みを防ぐには、取り込み前に一旦 FileMaker Go 内のレコードをすべて削除することにした。

参考:
FileMaker Go と FileMaker Server のデータ同期のベストプラクティス - YouTube
https://www.youtube.com/watch?v=GYXYZVx-nlw