Claris FileMaker からFileMaker 以外のファイルを操作 ~ファイルの削除・ファイル名の変更等をしてみよう~
2022年06月29日 10:00 AM
ファイルメーカーのTips
Claris FileMaker から Claris FileMaker 以外のファイルを操作できることをご存じでしょうか。
インポートやエクスポート等はよく使う機能だと思いますが、実は、それ以外の操作もできるのです。
例えば、レコードをインポート後に、インポート元のテキストファイルが残ってしまい、毎回削除するのが面倒だなあ、などと感じたことはないでしょうか。
スクリプトでインポート元のファイルを削除したりファイル名を変えることもできますし、ファイル名を指定してインポートする場合、インポート前にそのファイルが実際に存在するのか確認することもできます。
FileMaker 18 から追加された機能ですが、今回は使用ケースを通して、ファイル操作に関する機能を少しご紹介したいと思います。
以下のケースを想定します。
- インポート対象ファイルは、1時間ごとにドキュメントフォルダ内に置かれ、ファイル名は日時によって違う。
master_yyyymmdd_hh.csv のように “master“ の後ろに日時が付いている。
- 1時間ごとに上記csvファイルをインポート。
- インポート完了後にファイルを削除、もしくはファイル名を変更。
スクリプトで実装する手順は以下の通りです。
- 計算式を使って、インポート対象となるファイル名を生成
- 1で生成されたファイル名のファイルが存在するかを確認
- インポート
- インポート元のファイルを削除(もしくはファイル名を変更)
そして、以下のスクリプトステップを使います。
・ファイルの存在を取得
・ファイルを削除
・ファイルの名前変更
では、実際にスクリプトを見てみましょう。
こちらはインポート後にファイルを削除します。
現在の日付と時刻からファイル名を生成し、変数に設定しています。
日付が2022/6/20、時刻が14時台だとすると、ファイル名は「master_20220620_14.csv」となります。
次に「ファイルの存在を取得」ステップで、ドキュメントフォルダ内にファイル名が一致するファイルが存在するかどうかを確認しています。
結果が1の場合ファイルが存在する、0の場合ファイルが存在しない、ということになります。
結果が1であればインポートを実行し、インポートが完了すれば「ファイルを削除」ステップで該当するファイルを削除する、という流れになります。
ファイル名を変更する場合は、インポート後の処理を下図のように変更します。
「ファイルの名前変更」ステップで、元のファイル名を変更します。今回は頭に“済”を付けましたので、元のファイル名が「master_20220620_14.csv」の場合、「済master_20220620_14.csv」にリネームされます。
このスクリプトを手動で実行してもよいですが、FileMaker Serverのスクリプトスケジュールで1時間ごとに実行するように設定すれば自動で毎時間実行できます。
実際に運用する場合は、ファイルが存在しなかった場合の対応や、ファイル削除時やファイル名変更時にエラーが発生した場合の対応等を追加しておくとよいでしょう。
また、インポートするファイル名に規則性が無い、といった場合には、ドキュメントフォルダ内であれば「Get ( ドキュメントパス一覧 ) 関数」で簡単にファイルの一覧を取得することができます。
私は、ご紹介したケースとは少し違いますが、ダウンロードしたPDFファイルやエクスポートしたテキストファイルなどをインポート後に削除する、といった用途に使用しています。たかが削除という簡単な作業ではありますが、面倒なことがなくなってストレスも減りました。
是非ご活用いただければ幸いです。