ショートカットアプリを使ってFileMaker Proから写真を撮る
更新日:2022年3月24日
FileMaker Proへ撮った写真を登録するには
写真を撮る
Macに何らかの方法で転送する(iPhoneならAirdropが楽)
FileMaker Proのオブジェクトフィールドへ入れる
と、そこそこ手間がかかります。
※Windowsの場合は当社のFM WinCameraを検討してください(CM)
https://www.mirai-switch.com/fm-wincamera
この問題を少し解決するためにmacOSのショートカットアプリを試してみました。
ショートカットアプリは元々iPhoneやiPadで動作するものでしたが、それがmacOS Montereyから対応しました。
12.2までは、ちょっと出来がイマイチだったのですが、12.3からは少しマシになりました。仕様通りでしたらmacOS Montereyリリース時点でこの記事を書いていたのですが、ショートカットの命令のカメラが起動しなかったのです・・・。
完成図

「写真を撮る」ボタンが押されるとカメラが起動し

撮影するとFileMaker Proのオブジェクトフィールドに入ります。
作り方
どういう仕組みかと言うと、
ショートカットアプリの特定のショートカットを起動
写真を撮る
写真をBase64変換する
Base64変換したテキストをクリップボードに入れる
ショートカットアプリからFileMaker Proのファイルのスクリプトを実行
FileMaker Proのファイル側で貼り付け
Base64テキストを変換して画像として表示
という手順になります。
3.でわざわざBase64変換せずに画像としてそのままクリップボードに入れれば良いのでは?と思うかもしれませんが、何故か上手くいかなかったのです。
1.ショートカットアプリの特定のショートカットを起動

と入力すれば「Macで写真」というショートカットが実行されます。
最後の「&」が意味不明ですが、何故か入れないとエラーが出るのです。
ショートカットを起動するURLスキームの説明は下記を参考にしてください。
MacでURLスキームを使用してショートカットを実行する
https://support.apple.com/ja-jp/guide/shortcuts-mac/apd624386f42/mac
2.写真を撮る

右の「写真」と表示されている部分で「写真」と入れて「写真を撮る」を選択します。
特に設定は不要です。
「カメラプレビューを表示」のチェックを外すと動作しません。
写真の数を増やすと動作しません。
3.写真をBase64変換する

右の「写真」と表示されている部分で「base」と入れて「Base64エンコード」を選択します。
選択時に、「写真を撮る」の直後に入れると上記のようになります。しかし、一番上に挿入すると、「写真」の部分が「入力」と表示されています。順番を変えれば「写真」になるはずです。
「入力」と表示されている場合は「マジック変数」を選択すると、「写真を撮る」の直後に「写真」と表示されますので選択します。
この辺の操作が少し独特です。
4.Base64変換したテキストをクリップボードに入れる

右の「写真」と表示されている部分で「クリップボード」と入れて「クリップボードにコピー」を選択します。
5.ショートカットアプリからFileMaker Proのファイルのスクリプトを実行

右の「写真」と表示されている部分で「URLを開く」と入れて「URLを開く」を選択します。
ファイル名「Macで写真を撮る」
スクリプト名「カメラから貼り付け」
設定はFileMaker のURLスキームの話です。
開いているファイルのスクリプトを実行するので「fmp://$/」と書きます。
詳細は下記を参照して下さい。
URL を使用してファイルを開く
https://help.claris.com/ja/pro-help/content/opening-files-url.html
セキュリティの設定
だいたい動かないときはこの設定を忘れがちです。
「URLによるFileMakerスクリプトの実行を許可」にチェックを入れておきましょう。

6.FileMaker Proのファイル側で貼り付け

クリップボードにあるBase64テキストをFileMakerのファイルに貼り付けます。貼り付けるフィールドはレイアウト上に配置する必要があります。
7.Base64テキストを変換して画像として表示
撮影した画像はPNG形式です。
ファイル名はPNGの拡張子にしておきましょう。
計算結果を「オブジェクト」にしておきましょう。

これで完成です。
その他
画像サイズが小さいのでハードウェアに依存するのかなと思い、iMac(M1)で実行しても変わりませんでした。今までの写真はMacBook Air(M1)。

iMacの方が広角レンズなので、そこのハードウェア的な差は出ましたが解像度は480×360でした。