【FileMaker】他のfmp12のファイルにあるスクリプトを実行する

今回は、
「他のfmp12(FileMaker)にあるスクリプトを動かしたい」
というお題です。

これはどういう時に使えるかというと、
・総務部の人が経理部の情報をもらいたい
・サンプルファイル（テンプレートファイル）にあるスクリプトを別のファイルにコピペせずに使いたい
・トップページは会社ポータル画面で、各部署のfmp12をその部署の人だけに見せて仕事をさせたい
などという事例の時に使えます。

# FileMaker バージョン
どのバージョンから外部接続が可能なのかは、わかりませんが、こちらで仕事で関わったバージョン11以降では外部接続が使えていました。
ご利用のFileMakerのメニューに外部データソースの扱いがあれば、可能と思います。

# 事例
よく社内であるのは、
・総務部の人が経理部の情報をもらいたい
・トップページは会社ポータル画面で、各部署のfmp12をその部署の人だけに見せて仕事をさせたい
という部分ではないでしょうか？

FileMaker開発の中級クラスにもなると、こういうこともできる？と降って湧いてくるかもしれませんね。
![スクリーンショット 2020-12-28 10.46.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/cb2486f4-8930-5ef9-bb23-d38dac82faa3.png)
上記を自分の環境に置き換えて読んでみましょう。

sample1→総務部fmp12
sample2→経理部fmp12
この例の場合、各部署にはそれぞれの部署でしか扱わない情報があるので、アクセス権などの設定もしておく必要があります。

sample1→運用アプリfmp12
sample2→サンプルアプリfmp12
この場合は、サンプルアプリにある機能を単純に運用アプリでも使いたい（組み込みたい）という意図なので、厳密なアクセス権の設定はしなくてもいい場合もあります。

# 設定
fmp12に限らず、今現在使用しているfmp１２よりも外部のファイルやデータベースを使用する（連携する）場合は、外部接続の設定をします。
1.メニューから、「ファイル」→「管理」→「外部データソース...」を選択します。
![スクリーンショット 2020-12-28 10.39.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f3e0d6a5-6f93-6cf9-5791-4e6bc076b00c.png)
最初のアクセスの場合は、以下のようなメッセージが出ます。
![スクリーンショット 2020-12-28 11.16.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/cf149f47-0bec-2063-05b7-997f33986d3d.png)

2.次に、使いたい外部ファイルを選択します。
今回は、FileMakerの外部ファイルを使用したいので、FileMakerを選択し、ファイルを選択します。
![スクリーンショット 2020-12-28 10.39.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/7b63931d-148c-c0a6-3e51-ab95fba70bcd.png)

設定は、これだけです。

ここで設定する以外に、データベース管理で、リレーションシップを構築する際、他のfmp12からのテーブルを使用するのにこの外部データソース設定をしている場合もあります。
![スクリーンショット 2020-12-28 11.16.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/5aec5833-caea-1dd6-c467-af84958ef926.png)
どちらで外部接続を設定しても、OKです。

# スクリプトを選択する
sample1からsample2のスクリプトを実行する場合、sample1にsample2のスクリプトを呼び出すスクリプトを作成します。
1.スクリプト内で、「スクリプトの実行」ステップの設定を出します。
この時、スクリプトを選択する対象は、現在扱っているfmp12ファイル内のものが表示されます。
![スクリーンショット 2020-12-28 11.00.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/8b6414c2-fb8a-1fe1-b82b-9ea49bca8aae.png)
2.この、ファイル名の部分をクリックすると、外部接続で設定したファイル名が表示されます
![スクリーンショット 2020-12-28 11.00.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/9e4feb96-7534-54d3-caf9-56611c048e81.png)
先にやった設定以外のfmp12などのファイルを使いたいけど設定に戻るのが面倒、、、というときは、設定画面に戻らず、sample2の下に表示されているデータソースの追加等からも直接追加できます。
3.sample2を選択すると、sample2で管理されているスクリプトの一覧が出てきます。
使いたいスクリプトを選択します。
![スクリーンショット 2020-12-28 11.00.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/396ceb56-69c7-2602-0d27-c58fcd61c342.png)
4.sample1で、sample2のスクリプトを指定できました。
![スクリーンショット 2020-12-28 11.00.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/b637199d-f163-e6b3-4f25-d9d102ee05d2.png)

# 動き
では、sample1で作ったスクリプトを動かしてみましょう。
![スクリーンショット 2020-12-28 10.40.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f469d643-9daa-fa78-e093-4a812361ac32.png)
sample2のスクリプトが実行され、カスタムダイアログが表示されました！
![スクリーンショット 2020-12-28 10.40.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/ba9776a6-2f93-4ee1-bfb2-c0e0dfc3872b.png)


外部接続と聞くと「なんか設定とか作りとか難しそう、、、」と感じますが、fmp12同士でも外部接続（外部データソース）と呼びますので、敷居が低くなったのではないでしょうか？
また、サンプルを使う時に、「試しに動かしてみたいけど、コピペすると動かない、、、」ともどかしく思っている場合も、この方法で試しに実行してみて、本格的にファイルに組み込む、などできますので、様々な場面で活用してみてください。