読者です 読者をやめる 読者になる 読者になる

新機能 Magic Variables

その他 その他-Tips

(2017年3月3日修正)
Workflow 1.7.1で、マジック変数の編集機能が全てのフィールドをサポートしたため、記事をアップデートしました。


Version 1.7で追加されたMagic Valiables(以下マジック変数と呼びます)について書きました。

文章としてちゃんとした形にまとめることができませんでしたので、箇条書きのような何かです。
読みづらいですがご容赦下さい。

熱い語りはMacStoriesの編集長 Federico Viticciの記事をどうぞ!
Workflow 1.7 Introduces Magic Variables for Easier, More Powerful Visual Automation – MacStories

機能

マジック変数には、大雑把に言うと以下の3つの機能が内蔵されています。

  • 自動的にSet Variableされる機能
  • Get Details of ◯◯ の機能
  • 変数内のアイテムを別のTypeに変換する機能

一つずつ見ていきます。

Set Variableしなくても自動的にSet Variableされる機能

通常の変数の場合、上流で再利用したい値(アイテム)をSet Variableで変数に格納しておき、下流でその変数を取得して使う、という処理の流れになります。
▼Set Variable → Get Variable
f:id:four_or_three:20170213204704p:plain:w250

マジック変数を使うと、上流でSet Variableをしていなくても下流で値(アイテム)の取得が可能です。
▼マジック変数によるアイテムの取得
f:id:four_or_three:20170213204716p:plain:w250

下流でマジック変数を使用することにより、上流で自動的にSet Variableが実行される機能と言っていいでしょう。

上流の全てのアクションの出力を、マジック変数として取得することができます。

Get Details of ◯◯ の機能

従来の通常の変数からは、当然ですが、変数に入っているアイテムそのものしか取得できませんでした。
マジック変数では、変数に入っているアイテムの中から自分が必要とする要素を抽出して使用することができます。

▼マジック変数を設置した後、マジック変数をタップすると、抽出できる要素がリストアップされる
f:id:four_or_three:20170213205249p:plain:w250

▼ファイルサイズを指定して実行してみた
f:id:four_or_three:20170213205306p:plain:w250

これは、「Get Details of ◯◯」アクションの機能を変数内に取り入れたと言えます。

変数内のアイテムを別のTypeに変換する機能

この機能は通常、2つ目の「Get Details of ◯◯」の機能とセットで使用します。

先ほどと同じこのワークフローで説明します。
f:id:four_or_three:20170213224123p:plain:w250

マジック変数の「Text」をタップすると、上のほうに「as Text」という表示があります。
f:id:four_or_three:20170213211533p:plain:w250

TextをTextとして取り扱う、つまりTypeの変換をせずにそのまま使用するという意味です。

「as Text」の部分をタップするとTypeの一覧が出ます。
f:id:four_or_three:20170213211550p:plain:w250

ここで変換したいTypeを選択することで、変数内のアイテムのType変換を行うことができます。
▼「as Dictionary」を選択し、さらに「Key"xyz"のValueを取得」を指定した
f:id:four_or_three:20170213211601p:plain:w250

▼実行すると、テキストをDictionaryとして解釈し、さらにそこからValueを取り出すことができた
f:id:four_or_three:20170213211613p:plain:w250


(別の例)
App Store短縮URLが含まれたテキストをApp Store appとして解釈し、さらに説明文(Description)の取得を指定
f:id:four_or_three:20170213212038p:plain:w250

▼実行
f:id:four_or_three:20170213212048p:plain:w250

「Get ◯◯ from Input」アクションの機能を変数内に取り入れたと言ってもいいでしょう。

補助的な機能

大変便利なマジック変数ですが、適当に使うとこうなります。
f:id:four_or_three:20170213212657p:plain:w250

取得したものが何なのかわからないという問題です。

マジック変数には、これを解決するための補助的な機能が備わっています。

マジック変数に固有の名前を与える機能

▼マジック変数をタップし、最上段の「Rename」をタップするとマジック変数をリネームできる
f:id:four_or_three:20170213212801p:plain:w250

▼何なのか見ただけでわかるようになりました
f:id:four_or_three:20170214132600p:plain:w250

この作業は重要です。

私の場合、後で再利用したいアクションの出力には、その場でマジック変数のRenameを行っておきます。
Set Variableをするのと手間が変わらなくなってしまうので馬鹿馬鹿しいと感じるかもしれませんが、従来のSet Variableが与えてくれていた"固有の変数名"の視覚情報が完全になくなってしまうとフローをあとで読み取るのにどうしても余計な時間がかかってしまいますし、バグ(取得する変数の取り違え)の元にもなります。

記憶の新しいうちに固有の変数名を与えておくことで、これらを回避できます。

下流にCommentを置いておいて、いつでもRenameできるようにしておくといいかも
f:id:four_or_three:20170213214550p:plain:w250

マジック変数の出どころを明らかにする機能

▼マジック変数をタップし、最上段の「Reveal Action」をタップすると
f:id:four_or_three:20170213215006p:plain:w250

▼そのマジック変数の出どころ(アクション)にジャンプします。
f:id:four_or_three:20170213215015p:plain:w250

ちょっと分かりにくいですが、当該アクションがハイライトされています。
「Go Back」をタップすると元いたところに戻ります。

現在のバージョンではこの機能は不安定で、すぐ消えてしまったりします。

特殊変数に関する変更点

特殊変数というのは、Input、Clipboardなど、Set Variableで生成する変数以外のことです。

Input変数の廃止
  • かわりに、直上のマジック変数を使用
Workflow Input変数の追加
  • ワークフローのInputが格納された変数
  • Action Extensionで引き渡されたアイテムが入っている
  • URLスキーム (input=string) で渡された値も入っている
  • マジック変数の機能が使用可能
  • Action Extension有効時のみ、設置が可能
  • 設置した後にAction Extensionを無効にするのはOK
Current Date変数の追加
  • 現在日時が格納された変数
  • 別のTypeとして読み込む機能はなく、Format Dateの機能のみが内蔵されている
Clipboard, Repeat Index, Repeat Item
  • マジック変数の機能が使用可能

感想

  • マジック変数のRenameは重要
  • Reveal Action(出どころを明らかにする機能)の不完全さが、マジック変数の使い勝手を著しく制限している
    → 今後のアップデートで化けると予想される
  • マジック変数の活用によってアクションの数を大幅に減らすことができるが、それによって処理が高速化されるわけではないと思われる
  • マジック変数によって何かが新たにできるようになったわけではないので、どうしても馴染めなければSet Variableしよう
広告を非表示にする