FileMakerServerからファイル挿入の代わりにURLから挿入スクリプトでObjectに取り込む。
FileMakerServerのサーバーサイドスクリプトでは「ファイル挿入」スクリプトステップが使用できない。
サーバーサイドでObjectに入れられれば、凄く便利になる気がする。
・今回利用するのは「URLから挿入」スクリプトステップ。
URLから挿入スクリプトを利用していい感じに取り込めたら最高。
まず、サーバーサイドのドキュメントパスは以下となる。
環境がWindowsServerなもので...Macはこれじゃダメです。
C:\Program Files\FileMaker\FileMaker Server\Data\Documents
これは、
ConvertFromFileMakerPath ( Get ( ドキュメントパス ) ; WinPath )
で上記の値が取得できる。
・URLから挿入スクリプトで取得する場合は、前に"file:///"をつける必要がある。
私はここから躓いた。
いつものようにURLから挿入スクリプトで「自動エンコードしない」にして頑張ってました。
頑張ってエスケープの問題か?とかファイル名がおかしいのか?とか色々試行錯誤してもダメ。
エラーコード「1630」、「100」の嵐。
諦めかけたその時、"Program Files"と"FileMaker Server"にスペースが...
スペースを一度%20に置き換えてみたら。サーバーサイドからファイルが挿入された。
うわぁぁぁぁぁぁぁぁぁ。
うわぁぁぁぁぁぁぁぁぁ。
もう一度スペースに置き換えて、自動エンコードにチェックを入れて再度試してみる。
うわぁぁぁぁぁぁぁぁぁ。
俺が悩んでた時間はなんだったのか。
なんやかんやでURLから挿入スクリプトでファイルがとれました。
一応今後の誰かのために
変数を設定[$FilePath; 値:ConvertFromFileMakerPath ( Get ( ドキュメントパス ) ; WinPath )]
変数を設定[$FileName; 値:"ここはふぁいるめいがはいります"]
変数を設定[$Path; 値:"file:///" & Substitute ( $FilePath ; Char ( 92 ) ; Char ( 47 ) ) & $FileName]
変数を設定[$cURL; 値:"Optionをつけるならここ。例えばエラー、traceとか?"]
あとはURLから挿入でとってくだせぇ。
一応ローカル、サーバー共に検証して、できたので、大丈夫なはずです。
今後とも良い使い方したいですね。