【Claris FileMaker 19 新機能】パス変換ができる関数「ConvertFromFileMakerPath」と「ConvertToFileMakerPath」
2020年06月02日 10:00 AM
Claris FileMaker 19
Claris FileMaker Pro 19 で 新しい関数「ConvertFromFileMakerPath」、「ConvertToFileMakerPath」が追加されました。
これにより、ファイルパス変換がより簡単にできるようになりました!
▼ファイルパス変換について
「FileMaker内でのパスの書き方」と「macOSなどのPOSIXオペレーティングシステム」、「Windowsオペレーティングシステム」、「Webベースシステム」でのパスの書き方はそれぞれ違いがあります。そのため、パスの使用先によってパス変換が必要となります。
例えば、
・プラグインとファイルをやり取りする際のファイルパス情報
・「Eventを送信」スクリプトステップを使用して Claris FileMaker に複数のファイルを一括で取込をする
・FileMaker Goでプレビュー表示をするために書き出したPDFをWebビューアで表示する
といった時にファイルパスをFileMaker形式から標準形式に変換して使用する必要があります。
例えば、Get(デスクトップパス)で取得できるパスとイベント送信スクリプトステップ内での指定パスは、以下のように、区切りの文字「/」「¥」が違います。
▼新しい関数「 ConvertFromFileMakerPath 」の使い方
FileMaker 形式のパスを標準形式に変換します。
構文:ConvertFromFileMakerPath ( FileMaker パス ; 形式 )
引数:
FileMaker パス — ”file:”、”filemac:” などから始まるFileMaker形式のファイルパス
Claris FileMaker 19 ヘルプ 「ファイルパスの作成」
https://help.claris.com/ja/pro-help/#page/FMP_Help%2Fcreating-file-paths.html
形式 — 返すパスの標準形式の指定。“PosixPath”、”URLPath”、”WinPath” が指定できます。
・PosixPath:macOSやLinuxなどのUnix系のシステムで使用されるパス形式
・URLPath:Webベースのシステムで使用されるパス形式
・WinPath:Windowsシステムで使用されるパス形式
使用例:
ConvertFromFileMakerPath ( “file:/C:/Users/m_aoyama/Documents/test.xlsx” ; 形式 )
この関数はエラーの場合、「?」を返します。上の例では PosixPath 形式の場合に「?」となっていますが、これは引数となるFileMakerパスがプラットフォーム固有のものであるためです。そのため、以下の場合では、WinPath 形式の場合に「?」となります。
ConvertFromFileMakerPath ( “file:/Macintosh HD/Users/m_aoyama/Desktop/test.xlsx” ; 形式 )
▼新しい関数の使い方:ConvertToFileMakerPath
標準形式のパスを FileMaker 形式に変換します。
構文:ConverToFileMakerPath ( FileMaker パス ; 形式 )
引数の形式:PosixPath、URLPath、WinPath が指定できます。
使用例:
ConvertToFileMakerPath ( “/Users/m_aoyama/Documents/test.xlsx” ; PosixPath )
▼使用例
では、実際に実装した例をご紹介します。
以前、「顧客情報のcsv形式のファイルを一括で複数ファイル取込したい。」というご要望がありました。1つのフォルダに複数のcsvファイルが保存されていて、ファイル数やファイル名はその都度変わる仕様でした。それぞれのcsvには、複数の顧客の情報が入っています。
使用環境はWindwosです。
ご要望を実現する方法として、
1)デスクトップにある「csvフォルダ」のパスを取得
2)フォルダのパスをFileMaker形式からWindows形式に変換
3)「Event送信」スクリプトステップを使用してコマンドプロンプトを起動し、RENコマンドでファイル拡張子を.csvから.txtに変換
4)フォルダの一括インポートをおこなう
フォルダの一括インポートは、複数のピクチャ、PDF、オーディオ/ビデオファイル、またはテキストファイルをすべてを同時にインポートすることができます。インポートすると、1ファイルが1レコードとして、インポートされて、テキストファイルの場合、テキストフィールドに、テキストファイルの内容が保存されます。
5)インポートしたテキストデータを「フィールド内容のエクスポート」スクリプトステップを使用して、csv形式で書き出す
ファイル名やファイル数が分からなかったためインポートできませんでしたが、一括でインポートしたデータを規則性のあるファイル名に変更して書き出すことで、インポートしないといけないデータをコントロールできます。
6)書き出したcsv形式のファイルをLoop処理でインポートして顧客情報のレコードを作っていく
という方法を取りました。
RENコマンドを使用するため、ファイルパスを下記のように、FileMaker形式のパスからWindowsオペレーションの標準形式に変換する必要があります。先頭の”/”を取り除き、”/”を”¥”に置き換えることが必要です。
例)
FileMaker形式 /C:/Users/ユーザ名/Desktop/csv/
Windows形式 C:\Users\ユーザ名\Desktop\csv\
作成したスクリプトはこのようになります。
8行目で新しい関数を使用していますが、V18以前と書き方を比較すると計算式を簡略化することができました。
ぜひ皆様も新しい関数をお試しください!
(最終更新日:2020/7/16)