指定のAutomator Actionをパラメータ指定つきで実行するAppleScriptです。
Automatorは、登場当初から「なにこれ、仕様がダメダメじゃん」という感想しかありませんでした。
各Actionをキーワード検索できる仕様になっているものの、検索キーワードが固定で、ゆらぎを許容しない狂気の仕様。
その割に、ものによっては「写真」だったり「画像」だったりと、検索キーワードがゆらぎまくっています。とくに日本語などという同義語がたくさん存在する系の言語では、その苦痛は尋常なものではありません。
# フィードバックしたものの、Apple側が聞く耳持たない感じだったのでVersion 1.0で見捨てました
おまけに、まとまった処理を書こうとすると、途中の処理をつなぐActionがごっそり存在せず、あとはひたすら普通にAppleScriptを書くことに。気がつくと、スクリプトエディタで書いたほうがはるかに速い……とまあ、自分とAutomatorの相性は最悪です。
とはいえ、この先何があるかわかりません。Automatorにしかない機能を呼び出さないと実現できない(奇特な)処理に遭遇するかもしれません。Automator Actionを呼び出す方法についても、一応経験を積んでおくべきでしょう。
AMWorkflow経由でAutomator Actionを呼び出したとき、指定できるパラメータはAction自体のURLと、inputパラメータ。
inputパラメータについては、指定したものがそのままAutomator Action側に伝えられるようです。
Automator Action側のinputにこのinputパラメータの内容が伝えられるようです。一方のparametersパラメータについては、
{|temporary items path|:"/var/folders/h4/...../1/com.apple.Automator.RunScript", ignoresInput:false, source:"on run {input, parameters} set aClass to convToStr(input) display dialog aClass as string ....
のような内容になっていました。
若干間違っていたのと、AMWorkflowを呼び出すのにメインスレッド実行を強制する必要はなかったので修正版を掲載しておきます。
AppleScript名:Automator Actionを実行 v3.1 |
–Original By Shane Stanley 2020/1/28 –https://www.macscripter.net/viewtopic.php?id=47364 –Modified by Takaaki Naganoya 2020/6/4 –Error reported by hiro 2020/6/10 use AppleScript version "2.5" — macOS 10.11 or later use framework "Foundation" use framework "Automator" use scripting additions property |NSURL| : a reference to current application’s |NSURL| property AMWorkflow : a reference to current application’s AMWorkflow set thePath to POSIX path of (choose file of type {"com.apple.automator-workflow"}) set {theResult, theError} to runWorkflow(thePath, "AAA") of me –> {<NSAppleEventDescriptor: ’utxt’("OK")>, missing value} on runWorkflow(thePath, theInput) set theURL to |NSURL|’s fileURLWithPath:thePath set {theResult, theError} to AMWorkflow’s runWorkflowAtURL:(theURL) withInput:theInput |error|:(reference) return {theResult, theError} end runWorkflow |