【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ベースシステム」でのパスの書き方はそれぞれ違いがあります。そのため、パスの使用先によってパス変換が必要となります。

例えば、サーバー上にPDFファイルを保存がしたい、特定のフォルダから Claris FileMaker に複数のcsvファイルを一括で取込をしたい、という時に「URLから挿入スクリプトステップ」や「イベント送信スクリプトステップ」を使用することがありますが、その際にファイルパスの変換が必要です。

例えば、サーバー上にPDFファイルを保存がしたい、特定のフォルダから Claris FileMaker に複数のcsvファイルを一括で取込をしたい、という時に「URLから挿入スクリプトステップ」や「イベント送信スクリプトステップ」を使用することがありますが、その際にファイルパスの変換が必要です。

例えば、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行=1レコードで、複数行登録されている。複数のファイルを一括で取込したい。」というご要望がありました。使用環境はWindwosです。

Claris FileMaker Proでは、拡張子が .txt の一括取込はできますが、 拡張子が .csv の一括取込はできません。
フォルダからの一括インポートができるのは拡張子が .txt の場合のみです。

ご要望を実現する方法として、「Event送信スクリプトステップ」を使用してコマンドプロンプトを起動し、RENコマンドでファイル拡張子を.csvから.txtに変換し、取込後にデータを所定のフィールドに振り分けするという方法を取りました。

RENコマンドを使用するため、ファイルパスを下記のように、FileMaker形式のパスからWindowsオペレーションの標準形式に変換する必要があります。先頭の”/”を取り除き、”/”を”¥”に置き換えることが必要です。

FileMaker形式 /C:/Users/ユーザ名/Desktop/csv/

Windows形式 C:\Users\ユーザ名\Desktop\csv\

V18までだと、以下の画像のように書いていましたが

今回、新しく追加された関数を使用することで、このようにシンプルになりました。

ぜひ皆様も新しい関数をお試しください!