Windowsの開発者と話をしていて、「複数のGUIアプリを操作して自動化するという話が理解できない」と言われます。
ファイル情報(選択中のファイル、選択中のフォルダ)をFinderから取得して
spotlight機能を用いて選択中のフォルダ以下のPages書類を抽出し
個別にPagesでオープンしてPDFを書き出し
書き出したPDFをファイル名順にならべかえて連結し
DropboxにREST API経由でアップロードして共有し
得られた共有URLを指定の送付先にメール(Mail.app)で送信する
と、複数のGUIアプリを操作した自動化のワークフローは、普通にありえるものです。ありふれすぎています。
自動化のサイズ
ここで、ひとことに「自動化」といったときに、ユーザーごとに想定する「サイズ」がぜんぜん違うことに気づきます。
・(A)メニュー項目をいくつか連続して操作する「操作自動化」
・(B)1つの連続した操作を繰り返して実行する「作業自動化」
・(C)MacがタイマーでいくつかのScriptを実行してロボット動作する「業務自動化」
(A)<(B)<(c)と粒度の大きさが変わるところで、世間で言われる「自動化」というのは、ほぼ(A)の操作自動化のレベルと思われます。
自分が行なっているのは、(B)や(c)のレベルの自動化です。
(A)のレベルの「操作自動化」が悪いとは言いませんし、そういうレベルでも自動化に取り組むことには意義はあることでしょう。
ただ、(B)(c)と比べると成果として得られる「メリットが少ない」とは思います。操作を行うための心理的な障壁を下げる、という意味ではメリットがあるのかもしれませんが……。
(B)や(C)では、まとまった動作を放置状態のMacで行うものであり、人間が作業を眺めている必要はないものです。
放置状態で勝手に作業
(B「作業自動化」)や(C)「業務自動化」では、人間がいちいち指示する必要がないか、Scriptの動作を開始する場合にのみ対象フォルダなどのパラメータを指定するものです。
独立した作業なり業務を実行できるようにしておけば、実行するMacの台数を増やせば、それだけ同時にこなせる仕事が増やせます。
それだけ自動化してあれば、作業のためにアルバイトを雇う必要もありませんし、夜通し作業を行わせておいてもよいでしょう。
作業自動化や業務自動化に必要な「仕様書」
これらのまとまった作業を行うAppleScriptを作って運用する場合には、開発前に「仕様書」が必要になります。たいしたものでなくてもいいですが、どういった作業をどういう手順で行うのか、プログラムに書く前に人間の言葉でまとめておく必要はあるのです。
それは、箇条書きの文章で書いておいてもいいですし、画面キャプチャをまとめておいてもよいでしょう。
仕様書を書かないと、どこに向かって、どのように進んでいくのかを誰も理解していないという話になってしまいますし、それではScriptはおろか関与する人々が誰も「正しい作業」を理解できていないという話になってしまいます。