環境
- Windows7 Professional 32bit
- FileMaker Pro 14 Advanced
状況
- データベース用のファイルメーカー (以下、FM) ファイルがあり、システム用の FM ファイルが別にある、という構成
- データベース用 FM へ別の FM からデータをインポートする。
- データベース用 FM は日々アップデートされ、新しくなったデータベース用 FM がまるごと送られてくる。そのため再びデータをインポートし直す必要がある。
ポイント
- データベース用 FM に別の FM からデータをインポートするスクリプトを用意する。
- アップデートされたデータベース用 FM が送られてきたら、インポートスクリプトを新しいデータベース用 FM へインポートする。
- スクリプトインポート時、テーブルのフィールドに不一致があるとその内容がログファイルに出力される。
- スクリプトで設定するインポート時のテーブルおよびフィールドのひも付け [フィールドデータのインポート順] の内容もインポート可能
スクリプトを別の FileMaker ファイルへインポートする手順
- [スクリプトワークスペース] (Ctrl+Shift+S) > [ファイル] > [インポート]
- インポートするスクリプトのある FM ファイルを選択
- インポートするスクリプトにチェックし [OK]
たとえは、次のウィンドウが結果として表示されます。
インポートの概要 (詳細はログファイルを参照)
ステータス: 完了
インポートされた項目: 1
競合のために名前が変更された項目: 0
エラー数: 0(すべての参照が有効であることを確認してください。アクセス権、リレーションシップ、および参照項目はインポートされません。)
FileMaker ファイルから別の FileMaker ファイルへテーブルデータをインポートするスクリプト
- テーブルの全レコードを削除し、新しいデータを挿入する。
- シリアル値を 1 にリセットする。
- テーブル 1 つずつに対して、スクリプトを書く。
- [レコードのインポート] の [フィールドのインポート順] での [インポート方法] は、[新規レコードとして追加] を選択する。
以下例として、テーブル1 (ID フィールドにシリアル値が設定されている) に対するインポートスクリプトです。実際は他のテーブルに対しても同様のスクリプトをコピペして作成します。
レイアウト切り替え [テーブル1のレイアウト] 全レコードを表示 対象レコード削除 [ダイアログなし] 次のシリアル値を設定 [テーブル1::ID; 1] レコードのインポート [ダイアログなし; 「インポート元ファイル.fmp12」; 追加; シフト JIS]
本当は、このスクリプトを関数に切り出したかったのですけれども、ファイルメーカーの経験が少なく調べてみても上手くいきませんでした><。
おわりに
参考ページです。ありがとう存じます!
以上です。