【FileMaker】ローカル通知で顧客情報に遷移する

FileMaker Goでは、バージョン17からiOSでいう「通知」が出せます。
こんな感じで。
![IMG_3248.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/7f89b05f-4e69-64f0-76e6-cc0a5734a412.png)
おお
ってなりません？
これは、「[ローカル通知の構成](https://fmhelp.filemaker.com/help/17/fmp/ja/index.html#page/FMP_Help/configure-local-notification.html)」というスクリプトステップを使って出しています。

今回は、このFileMaker Goにしかできない通知のやり方です。

#設定
まずは、iOSで通知の設定がされていないとこのメッセージは出ません。
この設定、忘れずにしておきます。
![IMG_3259.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/1f4e58b0-9b74-4446-b9fb-50f53bb760bc.png)

#まずはテスト
まずは、通知がされてどのような構成で成り立っているかを見ていきます。

##動き
まずは、通知をするスクリプトを実行してみます。
これは、
1.スクリプトを実行
2.15秒後に通知がでる
3.処理を選択する
4.処理が実行される
という一連の動きのスクリプトです。
![IMG_3247.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/3fe129ea-3350-bb3f-3415-e74eb390b6d8.png)

これを実行すると、15秒後に
![IMG_3248.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/ec9481a8-d27f-1676-c765-7a402a2214f8.png)
↑この通知がぴろっと出てきます。

この通知を指で下にスライドすると、、、
選択可能な処理が現れます。
![IMG_3249.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/52ff2dc7-0d5b-0811-28ad-3a5ab2174ec7.png)

ちなみに、「...」をタップすると、
![IMG_3251.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/83134145-692d-9502-4f49-133e5f88c611.png)
通知の追加設定ができます。

「ファイル起動」をタップすると、ファイルが開き、指定したレイアウトが表示されます。
![IMG_3255.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f2315153-7833-1ddc-18d1-955a78b60e09.png)

##重要なポイント
ローカル通知の構成で、ヘルプ読んでてもさっぱり頭に入ってこないのが通知で返ってくる行番号の内容です。
ローカル通知をすると、4つの情報が返ってきます。
1.通知の名前
2.実行のトリガー
3.実行時のFileMakerが前にいるかどうか
4.指定したスクリプトの引数
これらの情報は、改行で区切られているので、GetValue関数で取得できます。

##スクリプト
では、この引数あたりを中心にスクリプトを見ていきます。
これは、最初にFileMakerで実行したスクリプトです。
１行目の「変数を設定」は関係ありません。
２行目にある、「ローカル通知の構成」で通知した時に実行するスクリプトを指定します。
![スクリプト：ローカル通知テスト2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/497b80c8-49d9-5eba-7b06-4924a10852a8.png)

ローカル通知の構成で指定したスクリプトは、下のように組まれています。
![起動スクリプト2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/43f8bbe6-ad90-96fb-567b-46b846abddab.png)
レイアウトを切り替え、ローカル通知で受け取った4つの情報を表示します。

最初腑に落ちなかったのは、「ローカル通知の構成」でスクリプトの引数としては一つしか指定していないのに、思った引数の表示ができなかったのです。
で、何度かヘルプを読んでみると、「４番目の引数に実際指定したスクリプト引数が入ってる」って事なんですよね。
他の3つは必要な人には必要だけど、不要な人には全く不要な情報って感じです。
attributeって感じ？

このテストで、実際に起動するスクリプトの引数がどのように渡っていくかがわかったので、次は顧客データでテストです。

#顧客データを表示
何かしらのアクションがあり、ローカル通知で「顧客きたよ」と通知したい場合の処理です。

##準備
まず、顧客データを作成しておきます。
![スクリーンショット 2019-12-02 23.18.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/28aea711-c7b8-6392-f019-0fb5e555c910.png)

今回は、２行目の人が来店したという設定で起動します。
主キーベタ書きです。。。通常は顧客データ::顧客IDとかきちんと設計してください。
![スクリーンショット 2019-12-02 23.18.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/2e25cebb-957c-6e60-1f2d-22fec71436be.png)

起動スクリプト 3の中身です。
簡単に、引数で受け取った４番目の情報を元に検索して該当する顧客の情報を出します。
![スクリーンショット 2019-12-02 23.19.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/63a4b6cb-86ce-bdf5-89f5-89fe7676cb09.png)

#動かしてみる
では、「ローカル通知3」のスクリプトを実行して、しばし待ちます。
出ました。
![IMG_3258.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f12950e3-86b4-213f-3fdf-8c2faa64bfec.png)
「顧客を確認」をタップします。
この「顧客を確認」をタップすると、「起動スクリプト 3」が動きます。

はい、無事にFileMakerに登録してある顧客のデータがローカル通知で通知を受け取ったおかげで手動で検索せずに顧客の情報が確認できました。
![IMG_3257.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f200ddb5-ac5e-6971-4750-5f0fee2c070d.png)

#ソース公開
今回の記事作成で作ったサンプルファイルを、GitHubに挙げておきますので、ご自由にFileMaker Goで動かしてみてください。
FileMaker Go 17,18でしか動きませんので、バージョンにご注意ください。
下のリンクをクリックしたら、"Sample_LocalAnnounceTest.fmp12"をダウンロードしてください。
[GitHub : Sample_LocalAnnounceTest.fmp12](https://github.com/atsukosekiguchi/FileMakerSample)

#うまいこと広がってくれないかな
このローカル通知、意外と使いこなせてない？感があって、今回復習も兼ねて記事にしてみました。