スコープ
この記事では「スコープ」について紹介します。
スコープは、「変数や関数が利用できる範囲」のことを示します。
AUTOROでもアウトプットの使用範囲などに影響をするため、AUTOROで複雑なワークフローを構築する際に必要な知識となっています。
スコープとは
以下2つの項目でスコープの考え方を紹介します。
- プログラミングにおいてのスコープ
- AUTOROにおいてのスコープ
スコープについて、ある程度理解のある方は「AUTOROにおけるスコープ」の項目からご覧ください。
プログラミングにおけるスコープとは、「変数や関数が利用できる範囲」のことを示します。
スコープには、それぞれ「グローバルスコープ」と「ローカルスコープ」というものに分かれ、それぞれ権限が異なります。
例として、
グローバルスコープ=家
ローカルスコープ=部屋
に例えます。
この家では以下のようなルールがあります。
- 家は、部屋に情報を渡すことができます。
- 部屋は家から情報を受け取ることができますが、家に情報を渡すことができません。
- 家の中には部屋が複数ありますが、部屋同士で情報のやり取りをすることができません。
このようにそれぞれ利用できる情報の範囲を持っていることをスコープといい、スコープの種類は持っている権限と利用できる範囲が異なることを表します。
AUTOROでは、アウトプットの使用範囲がスコープによって変わります。
基本的にはグローバルスコープとなり、アウトプットを他のアクションに設定できます。
繰り返しや条件分岐など、制御タスク内にアクションを設定する制御タスクを使用した際は、それぞれの範囲がローカルスコープとなり、アウトプットを使用できる範囲に制限が生じます。
実際にアウトプットを紐づけようとすると、アウトプットがハイライトされずに選択ができません。
それぞれ使用できるアウトプットの範囲についてまとめると、以下の通りとなります。
通常
グローバルスコープとなり、全ての範囲でアウトプットが使用できる。
制御タスク内に設定されたアクション
ローカルスコープとなり、グローバルスコープのアウトプットと、それぞれの制御タスク内に存在するアウトプットしか使用できません。
- 制御タスク内にあるアウトプットは、グローバルスコープでは使用できません。
簡単にいうと、繰り返し(If)やエラーを捕捉(Try)の内部に設定されたアクションのアウトプットは、その外側の範囲で使用することはできません。
スコープ外のアウトプットを使用
制御タスク内のアウトプットを外側に持ち出したい場合、StoreValueアクション(変数に保存)を使用します。
変数に保存したアウトプットは、スコープ外でも使用することが可能になります。
変数の概念については、以下ページをご覧ください。
変数
スコープ<scope>繰り返し<ForEach>アウトプット<アウトプットが設定できない>undefined