1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FileMakerServerからファイル挿入の代わりにURLから挿入スクリプトでオブジェクトフィールドに取り込む。

Posted at

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から挿入でとってくだせぇ。
一応ローカル、サーバー共に検証して、できたので、大丈夫なはずです。
今後とも良い使い方したいですね。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?