1
0

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 にホストされている共有ファイルで fmp プロトコルリンクを生成

Last updated at Posted at 2022-06-21

はじめに

対象読者

  • Claris FileMaker ユーザ
  • fmp プロトコルリンクを生成したい人
  • ちょっとした手間をかけるのも嫌というめんどくさがりやな人

fmp プロトコルとは

URL を使用して、共有ファイルまたはローカルファイルを開く、またはファイル内のスクリプトを実行することができます。FileMaker Pro または FileMaker Go をインストールすると、次の URL スキーマがオペレーティングシステムに登録されます。これにより、これらのスキーマを使用する URL は FileMaker Pro または FileMaker Go により処理されます:

fmp – 最後にインストールされたアプリケーションバージョンがこのスキーマの URL を処理します。

対応したいこと

  • ファイル名に日本語等のマルチバイト文字が含まれていても問題ないようにする

本題

計算式

  • 以下のような計算式を書くことで、生成できる
  • Let で上書きしていくことで可読性が高くなるが、ワンライナー的に書いても構わない
Let (
  [
    filepath = Get ( ファイルパス );
    filepath = GetAsURLEncoded ( filepath );
    filepath = Substitute ( filepath ; "fmnet:%2F" ; "fmp://" );
    filepath = Substitute ( filepath ; "%2F" ; "/" )
  ];

  filepath
)

クリップボードへ格納

  • レイアウト上へグローバルフィールドを設置しておいて、一度そこへ変数を格納し、コピーさせることで、手軽にクリップボードへ格納できる
    • コピー というステップが、以下の条件でないと正しく動作しないので要注意
      • レイアウト上にフィールドが存在している
      • そのフィールドにはカーソルが入る状態である
  • たとえば以下は トップ というテーブルに gtmptxt1 というグローバルフィールドが存在している状況で、そのフィールドが設置されているレイアウトで動作されることが前提となる
    • なので、より確実丁寧にするには、以下のようにやっておくとヨシ
      • 手前でレイアウトを切り替えるとか、
      • あるいは一時的にウインドウを開いて閉じるようにするとか、
      • 格納し終わったらグローバルフィールドの中身を空にする処理を入れるとか……

image.png

応用

Slack のブックマークへ登録

  • Slack の各 channel には Add a bookmark がある(日本語環境だと 関連ページを追加する というらしい )
  • ここには http/https:// だけでなく fmp:// も登録できるので、ワンクリックで FileMaker ファイルを開くことができるようになる

image.png
image.png

スクリプトの実行

  • URL に引数をつけるとスクリプトを実行したり、さらにそのスクリプトへ引数を渡したりすることもできる
"?script=display_opts_id" & "&param=" & users::id
  • この場合、 options という変数を別途定義して、グローバルフィールドに値を格納する際に、$filepath & $options を含めてあげるなどすればよい
  • なお、実行するスクリプトへ引数を複数渡したい時は param だと一つきりしか渡せないので &$変数=値 を複数渡してあげるとよい

おわりに

感想

  • Slack のブックマークに追加できることを知った嬉しさのノリで、つい、前提となるところからの記事を書いてしまったが、勢いってだいじだと思います。
1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?