【FileMaker】このお客さんの情報って、、、とiPhoneでFileMakerをすぐ閲覧したい

フワッとしたタイトルですみません。。。

iPhoneやiPadなど、iOSで外出時や電話を切った後に追記しておきたい内容とかをFileMaker Goをいちいち立ち上げて顧客検索する間にやること忘れそう、、、という忘却の激しい人向けのTipsです。（長い）

# FileMakerのバージョン
今回のFileMaker側の設定で、拡張アクセス権の設定しています。
この記事で使用する拡張アクセス権は、FileMaker 16以降で実装されていますので、該当のバージョンを確認してください。
[→FileMaker 16 におけるセキュリティの機能強化](https://support.claris.com/s/article/FileMaker-16-%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E6%A9%9F%E8%83%BD%E5%BC%B7%E5%8C%96-1503693095117?language=ja)

# 動きの図
こんな感じです。
![スクリーンショット 2020-11-28 10.04.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/44affe75-b658-8181-7afb-565803d6c445.png)
自分の営業管轄のお客様情報はFileMakerに入っているけれど、連絡用に連絡先アプリに電話番号等を登録してある、というのが前提です。

# FileMaker側の設定

## アクセス権の設定
使用するFileMakerアプリの「管理」→「セキュリティ」で、アクセスを必要とするアカウントのアクセス権セットで、拡張アクセス権を編集します。
「URLによるFileMakerスクリプトの実行を許可(fmurlscript)」
このアクセス権にチェックを入れます。
![スクリーンショット 2020-11-28 10.15.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/51025ec4-4cba-ac2b-a363-6533a1354d14.png)

### 実運用する時は、、、
<font color="red">この例では、単純に完全アクセス権にチェックを入れていますが、セキュリティ的には別途専用のアクセス権を作成して拡張アクセス権を設定してください。</font>
例えば、外部アクセスを許可するレイアウトを絞りたい時は、レイアウトも指定します。
レイアウトを指定する際は、スクリプト等で使用している切り替えテーブルも含めて指定しておかないと、思わぬアクセス拒否でスクリプトが失敗することがありますので、レイアウト中で使用するスクリプトも解析してアクセスを決定します。
もしくは、表示のみの場合は、表示のみのアクセス権限を作成し、ボタンを極力省き、アクセス制限をするというのも一つの運用だと思います。[^1]
![スクリーンショット 2020-11-28 11.44.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/abc345a2-8efa-5cd8-9d96-41831fdd075c.png)


## 使用するレイアウトを作成
連絡帳から参照する顧客情報のレイアウトを作成します。
既存のレイアウトを使い回してもいいのですが、余計なボタンなどがあったり、不要なアクセスを防ぐためにも新規で作成した方が無難です。

サンプルとして、訪問営業や訪問介護を想定した、顧客情報のレイアウトを作成してみました。
![スクリーンショット 2020-11-28 11.53.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/ec1c8092-4144-b04f-b7f6-d510d5810206.png)
顧客情報ページには、訪問履歴も表示して、１ページで必要な情報を閲覧できるように配置しています。
![スクリーンショット 2020-11-28 11.54.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/987e5542-e48c-b62a-d193-daa8c5554c48.png)

## 使用するレイアウトを呼び出すスクリプトの作成
連絡先アプリからFileMaker Goにアクセスする際のスクリプトを作ります。
顧客管理であれば、顧客の詳細ページなどでしょうか。
そのページへアクセスするスクリプトを作成します。
例えば、引数に顧客番号を渡してあげて、スクリプト内で検索、レイアウトの表示という流れです。
既存のスクリプトを使いまわすより、外部アクセス用に新規でスクリプトを作成した方が、余計なアクセス権などを考えなくていいです。
![スクリーンショット 2020-11-28 11.43.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/29b47604-de98-1555-1b64-7868e8b513a0.png)

ここまでが、FileMaker側の準備です。

# iOS側の設定

## 連絡帳に連携を仕込む
今回は連絡先アプリ→FileMaker Goの連携の話なので省略しますが、FileMaker Go→連絡先アプリになんらかの方法で連絡先をエクスポートしてあることが前提になります。

ということで、連絡先アプリの該当の顧客情報にある、「ホームページ」欄に以下のように仕込みます。
```fmp19://~/sms送信テスト?script=顧客情報表示(顧客番号)&param=1234567890```

どのようなことを設定しているかというと、、、
sms送信テスト：FileMakerアプリ
script=顧客情報表示(顧客番号):起動するスクリプト
param=1234567890：スクリプトへ引き渡す引数（顧客番号）
と、FileMaker Goでどのアプリでどのスクリプトを実行し、どの顧客を表示するか、という情報を盛り込んでいます。

fmp19は、アプリを保存しているFileMaker Goのバージョンによって、末尾の数字が変わります。
この機能はfmp18以上で提供されているので、それ以下のバージョンの場合は、バージョンなしの"fmp"とします。
ただ、複数のFileMaker Goアプリが混在している環境では動作が不安定になるかもしれませんので、ご注意ください。

こんな感じで仕込みました。
![スクリーンショット 2020-11-28 12.15.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/daa7d292-452b-cd21-9938-6d789dd615f3.png)


# 動かしてみる
では、テストしてみましょう。
電話アプリの履歴にある「i」をタップし、出てきた連絡先アプリのホームページ欄をタップするだけです。
![スクリーンショット 2020-11-28 12.24.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/d2fea7b2-11f1-e108-7ae9-024a354e164d.png)
うまく検索できましたね！

指定した顧客番号が登録されていない場合は、カスタムダイアログが表示され、「OK」をタップするとアプリが終了します。
![IMG_3263.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/515737be-93f3-71a8-e046-7deb5aa63c80.png)

# 既存のアプリを連携させよう
FileMakerだけで何でもかんでも実装しよう、と考えるのではなく、使用している他のアプリの便利なところをFileMaker Goとつないで使い勝手よくしていこう、というのが昨今の考えだと思います。
FileMakerはとても敷居の低いアプリですが、やはり自分の想像した機能を実装する時にハードルが高いことがあると思います。
そういう時は、「今使っているアプリを連携して思ったことに近づけられるかな？」と考えてみてください。

[^1]: アクセス権やファイル設定などを記事にしました。　[こちら](https://qiita.com/tyuma/items/4ed2338956ef7307aa39)