条件分岐(IF)

4560 views

この記事では、条件分岐の設定方法について紹介します。

【できるようになること】

  • 条件分岐の設定
  • 条件式の設定
条件分岐を利用する場面

AUTOROでは、「ある条件を満たしていた場合のみ、ある処理を実行する」といった条件分岐(IF)処理が可能です。
条件分岐は、あらゆるワークフローで頻繁に使用されています。

 条件分岐(IF)

AUTOROの条件分岐では次のような特徴があります。

TRUEの場合のみ処理が実行されるため、TRUEの場合とFALSE(TRUEではない)の場合とそれぞれに条件分岐の設定をおこなう必要があります。

 条件分岐の設定方法

ワークフロー設定における条件分岐には「IF」を利用します。

IFに条件式を設定すると、IFの範囲内のアクションが実行されます。

  • 「IF」をドラッグ&ドロップします。
  • 「真のとき」「真のとき < おわり」の間にアクションを設定します。

「IF」で条件分岐を行うためには、「条件式」の設定が必要になります。

設定された条件式がTRUE(真)を返すときだけ、IFで囲まれたフローが実行されます。

  • 「条件」のパラメータに条件式を入力します。

条件式を指定する方法は、大きく分けて2つあります。

(例)弊社サイトのセミナーページで、最新のセミナータイトルに「自動化」と入っていれば、そのタイトルをスプレッドシートに転記する。

上記画像ではセミナー名に特定の文字が入っているかの判定でindexOf() メソッドを使用しています。

${変数名.indexOf("特定の文字") > -1}

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://www.google.com/search?q=オートロ株式会社  会社概要'
  lang: 'ja-JP'
  headless: true
  useShadowDomSelector: false
  private: false

# 要素の属性を取得_1番目のurlを取得
+get_attribute_1:
  action>: GetAttribute
  browser: +open_browser_1
  selector: '.yuRUbf a'
  attribute: href
  ignoreError: true
  private: false

# 変数に保存_url:サイトURL
+store_value_2:
  action>: StoreValue
  key: url
  value: +get_attribute_1
  private: false

# ブラウザを閉じる
+close_browser_1:
  action>: CloseBrowser
  browser: +open_browser_1
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:

# if_urlにprofileの文字列が入っている場合
+if_1:
  if>: ${url.indexOf("profile") > -1}
  _do:

    # セルの値を更新
    +update_cells_1:
      action>: UpdateCells
      spreadsheet: +get_spreadsheet_1
      range: 'シート名!A:A'
      values: ${url}
      private: false

 条件式の例

ファイル一覧などのリストを変数に保存し、変数内の要素数を取得して、想定数より多いかの判定する場合、lengthを使用します。

${変数名.length > 0}

解説: 変数が配列の要素数を持つ場合、1以上を返します

変数内に特定の文字が存在しているかを判定する場合、includesを使用します。

${変数名.includes("特定の文字")}

解説: 変数内に”特定の文字”が存在している場合、trueを返します。存在しない場合はfalseを返します。

ファイル一覧などのリストを変数に保存し、変数内に特定の文字が存在しているかを判定する場合、indexOf()が利用できます。

この場合、戻り値は配列番号になります。

${変数名.indexOf("特定の文字") > -1}

解説: 変数内に”特定の文字”が存在している場合、その配列番号を返します。存在しない場合は -1 を返します。

 条件式を使った判定例

前提:GoogleDriveのフォルダにファイルが存在していない場合の処理

  • ListItemsでフォルダ内のファイル情報を取得します
  • アウトプットを変数に保存します
  • 変数のlengthを取得することでフォルダ内のファイル数を取得できます

前提:GoogleDriveのフォルダに特定のファイル名が存在している場合の処理

  • ListItemsでフォルダ内のファイル情報を取得します
  • SearchItemFromListで特定のファイル名を検索します
  • アウトプットを変数に保存します
  • 変数のlengthを取得することでフォルダ内に特定のファイル名が存在しているか判定できます

前提:サイトのニュースリリース一覧を取得し、タイトルに「新発売」を含む場合の処理

  • ExtractDataでニュースリリースページの日付やタイトルを抽出します
  • ForEachで抽出データを繰り返し処理します
  • タイトル列の変数に対してincludesで特定の文字列を含むかを判定できます

前提:スプレッドシートのタイトル行に「メールアドレス」列が存在するかで分岐処理する場合。存在していた場合は「メールアドレス」列番号を取得し、各行のメールアドレスデータを取得。

  • スプレッドシートのタイトル行を取得します
  • タイトル行を変数に保存します
  • タイトル行変数に対してIndexOfで「メールアドレス」列数を変数に保存します。存在しない場合は-1が設定されます。
  • 上記変数の値でメールアドレス列の有無を判定できます(0以上:メールアドレス列あり、-1:メールアドレス列なし)
  • メールアドレス列がある場合は、スプレッドシート行を繰り返し処理し、変数[列数]でメールアドレスが取得できます

 

<IF>条件分岐

このページは役に立ちましたか?