変数
この記事では、「変数」について紹介します。
変数を扱えるようになるとより多くのことをAUTOROでできるようになります。
つまづく方も多いポイントですが、しっかりと理解してワークフローを構築しましょう。
【この記事で扱う内容】
- 変数の概念
- AUTOROでの変数の設定方法
変数の概念
変数とは、「データを入れておける名前のついた箱」と表現できます。
箱の名前を「変数名」、箱に入っているデータを「値」と呼びます。
ある名前を持つ箱に値を入れておくことで、その値を必要な場所で取り出して使えるようになります。
箱の中の値は、任意または条件に応じて変える事ができます。そのため「変数」と言います。
※画像検索すると変数のイメージがたくさん出てきます。
条件に応じて値が"変わる"から「変数」
変数の利点は、「条件に応じて変化する値を、同じ名前(変数名=箱の名前)で呼び出せる点」
にあります。
日常生活に当てはめてみると、以下のような出来事も変数として考えることができます。
例1:「今日のランチは何を食べましたか?」
この記事を読んでいる大半の方は、昨日のランチで食べたものと今日のランチで食べたものは違うはずです。
「変数」というと、数学的で複雑な概念を想像してしまうのですが、今回の質問のように日常生活の中でも無数の「変数」を私たちは使っています。
「ランチ」という言葉の指し示す食べ物はほぼ毎日変化しますが、お昼に食べていれば「ランチ」という名称は変わりません。
例2:「機嫌」と変数
突然ですが質問です。ご機嫌いかがですか?
…この質問に対する答えはその時に応じて色々かと思われます。最高だったり最悪だったり、ぼちぼちだったり…
ところで、これは「機嫌」という名前の変数に、良いとか悪いとかの"値"が格納されている
と解釈できます。
上述の「箱」の比喩を適用すると、「機嫌」とは、良いとか悪いとかいった値(データ)を入れておくための箱と言えます。
その他、「天気」「年齢」「今後のキャリア」などにも同様の解釈を適用することが可能です。
ポイントは、同じ言葉(機嫌や天気などの変数名)で、条件に応じて変化する"値(中身)"を取り出せる
所です。
今回の例で言うと、「機嫌」という1つの変数名で、良い悪いなどの、条件に応じて変化する可能性がある値を取り出せるのです。
※応用的に考えると、機嫌という言葉を理解していない場合はエラーになるとか、私の頭の辞書には機嫌という言葉が登録されていないからエラーになる…という解釈も可能です。
AUTOROでの変数の設定方法
実際にAUTOROのアクションで変数を設定してみましょう。
例として、変数名が「宛先」、値が「菊池様」である変数を作ってみます。
変数を作成するには「StoreValue」アクションを利用します。
別アクションのアウトプットに対して変数名を設定することで、
- 取得した値をスクリプトで整形する
- 複数の値と組み合わせて利用する
といった汎用的な値の設定ができるようになります。
AUTOROにおける変数の使用例
実際のAUTOROワークフローを通じて、条件に応じて値が変化する「変数」の性質を観察してみます。
今回は例として、以下のワークフローを作成します。
各地の天気状況が記載されたWebページを開き、地名と天気のテキストを出力する
- OpenBrowser(ブラウザを開く)を設定します。
- URLに以下を入力します。
https://weather.yahoo.co.jp/weather/world/CN/57516/
地名と気温を取得します
- AUTORO Assistantを使用して、「地名」のセレクタを取得します。
- GetText(テキストを取得)アクションを設定します。
- ブラウザパラメータに1で開いたブラウザを指定します。
- CSSセレクタパラメータに取得したセレクタをペーストします。
- StoreValue(変数に保存)を設定します。
- 変数名をplaceとします。
- 値をGetTextのアウトプットとします。
- 「天気」についても同様の設定を行います。
変数名はtenkiとします。
変数を呼び出し、地名と天気を含むテキストを出力します。
- Text(テキストを作成)アクションを設定します。
- 変数の値を呼び出す記法を使用して、テキストに変数の値を出力させるよう設定します。
今日の${place}は${tenki}です
変数の値を呼び出す記法についてはこちらをご参照ください。
実際にワークフローを実行し、5のテキストを確認してみましょう。
1で指定したURL(重慶の天気)が出力されるはずです。
6が問題なく確認できたら、1のURLを以下に変更して再度ワークフローを実行してみましょう。
https://weather.yahoo.co.jp/weather/world/CD/64210/
このスクリーンショットからは、以下が確認できます。
- 条件(開くURL)が変わったため、変数の値(重慶→キンシャサ,晴れ時々曇→雨のち曇)が変化した
- URL以外の変数名などは変更していない。よって同じ変数名で異なる値が呼び出せている。
# ブラウザを開く +open_browser_1: action>: OpenBrowser url: 'https://weather.yahoo.co.jp/weather/world/CN/57516/' lang: 'ja-JP' headless: true useShadowDomSelector: false # テキストを取得 +get_text_1: action>: GetText browser: +open_browser_1 selector: '.yjM' ignoreError: true # 変数に保存 +store_value_1: action>: StoreValue key: place value: +get_text_1 # テキストを取得 +get_text_2: action>: GetText browser: +open_browser_1 selector: '.forecastDetail_top:nth-child(1) .telop' ignoreError: true # 変数に保存 +store_value_2: action>: StoreValue key: tenki value: +get_text_2 # テキストを作成 +text_1: action>: Text text: '今日の${place}は${tenki}です'