話題 22  FM でApplescript, JavaScript, Automatorを利用する。

Applescript


当方, 実はApplescriptもAutomatorもましてやJavascriptもまったく初心者です。

Filemakerと上記3つのプログラムを利用できれば外部のソフトの連携においてかなりのことができます。Filemakerは MacOSでは もともとApplescriptを実行させる script stepがありますから, Applescriptを熟知しておれば, それだけで実に心強いです。


Javascript


また Mac OS X10.10(Yosemite)からスクリプトエディタでJavaScriptも記述できるようになって, Applescriptと同じような使い方ができるようになりました。


Filemakerでは直接 Javascriptを実行する Script stepはありませんが, クリプトエディタでJavascriptを書いてそれを,実行専用のプログラム( たとえば  WWW_JS” )として保存します。



FMの”Applescriptを実行する” script stepで 以下のように記述すると


tell application "WWW_JS "

  activate

end tell




Javascriptを実行することができます

このとき WWW_JSのプログラムがどこにあるか聞いてきますので, 

確実に指定してください。”ブラウズ"ボタンで 表示させると確実です。

また, プログラムの名前を変えたときに, 上記の画面が出ず, 正しくFilemakerが認識しないことがあります。そのときは“WWW_JS”を “WWW-JS    “のように空白を足して保存しようとすると, 上記の画面が出て正しく認識されるようです。




Automator


MacOSには Automator という Apple純正のソフトが標準搭載されていますが, これは Finder関係, File関係の仕事を簡単にやってくれる優れものです。Filemakerでは Automatorを直接実行させるstepはありません。しかしそれを  実行専用のプログラムとして保存すれば, Javascriptと同様に “Applescript実行” stepで 動かすことができます。ほんとうにこれは使えますね。



上記のように, Automatorの  > ファイル >変換 > 書き出し で 実行専用プログラムとして保存できます。



Sample File

Safariの 最前面の URL を クリップボードにコピーして それを Filemakerに取り込むsampleです。

Applescript, Automator 別々に 取り込むことができます。


Applescript, Automatorの実行専用プログラム, WWW_AS, WWW_AMを作成して

Applescript 実行 Stepで 以下のように記述したのですが,

tell application "WWW_AS "

  activate

end tell

このソフトをを別のマシンで download して動かすと, WWW_AS, WWW_JS とも一応 独立application ですから

“システム環境設定”の セキュリティ と ブライバシー” から “WWW_ASを実行できない”旨のクレームが出ます。


たしかに セキュリティの問題もあるので, 実行専用プログラムは御自分のマシンで作成して見てください。 Applescriptの記述型 step の Scriptのみ 実装しました。

Applescript は

property theURL : ""

tell application "Safari"

display dialog "AppleScriptでClipboardにコピーします"

set theURL to URL of current tab of window 1

set the clipboard to theURL

end tell

Javascriptでは クリップボードに取り込むことができませんでした。小窓に表示されるところまでです。FMから実行するとSafariを全面に出すことができません。当方の力不足です。

( http://www.openspc2.org/reibun/JXA/Yosemite/ から使わせていただきました。)

var Safari = Application("Safari");

var win = Safari.windows;

var url = win[0].currentTab.url();

Safari.includeStandardAdditions = true;

Safari.displayAlert(url);


これを Javascript モードのスクリプトエディタに書きだして, 実行専用プログラムを作成してください。







 
sample File download (fmp.12)Tech_22_files/sample22.zip