Docly Child

条件式の作成

1653 views

この記事では、条件式を実際に作成してみます。多くのユーザーがつまづくポイントなのでしっかりと理解した上でワークフローを作成しましょう。

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

  • 条件の整理
  • 条件に必要なデータをリストアップ
  • 条件式を設定

 条件式作成の流れ

AUTOROで条件式を作成するためには、以下の流れが考えられます。

  1. 条件を整理する
  2. ワークフロー上で、条件に必要な情報を取得する
  3. 条件式を作成する

以下より、順を追って解説していきます。

 1. 条件を整理する

条件式を作成するためには、そもそも何をやりたいのか、どのような条件を作成したいのか、背景と順序はどうなっているのか…などなどを、整理する必要があります。
この整理を行うにあたっては、以下に羅列した行為を実施することが有効な場合が多いです。

  • 条件を日本語の文章で書き出してみる
  • 要素の分解
  • 必要な情報を洗い出す

ここでは、以下の条件を例として、後のフローに続いていくこととします。

「スプレッドシートのあるシートのうち、ステータスが未購入で、購入サイトの指定はexampleXXX.com、購入するものが画像のとき」
(条件を文章で書き出してみる が達成されました)

今回の条件は、以下のように分解できます。

 

今回の条件の作成に必要な情報は以下となります。

  • スプレッドシートの「ステータス」
  • スプレッドシートの「購入サイト」
  • スプレッドシートの「購入素材」
 

今回の条件は、次のような図で表すことができます。

今回は、「①、②、③すべての条件がTrueになるとき」という条件が必要であることがわかります。

概ね以下となります。これはワークフロー作成のコツでもあります。

  • やりたいことや条件を順序立てて日本語で記述する
  • 事実を確認する
  • 事実と解釈を分ける
  • テスト用のワークフローなどを作成し、条件式が正しい結果を出力するかどうか、確認する
  • 主語を明記する

 2. 必要な情報を取得

条件分岐を設定する前に、条件分岐に必要な情報を集めるワークフローを設定しましょう。 今回の条件である場合は、次のようなワークフローで情報を取得します。

 3. 条件式を作成

必要な情報をワークフローで取得することができたら、取得データを利用して条件式を作成していきます。
条件式には、変数/JavaScript/正規表現を利用することができます。

必要な情報と期待する結果を比較演算子で繋ぎ、要素ごとに式を作成します。

  • ステータス列が未購入row[1] === "未購入"
  • 購入サイト列がXXX.comrow[2] === "exampleXXX.com"
  • 購入素材列が画像row[3] === "画像"

「3つの条件すべてに一致するとき」であるので、&& (論理積,AND,”かつ”)でそれぞれの条件式を結合します。完成した式は次のように${条件式}のフォーマットで記載します。

${row[1] === "未購入" && row[2] === "exampleXXX.com" && row[3] === "画像"}

※論理和(OR,”または”)の条件式を作成する際は、|| でそれぞれの条件式を結合します。

Compareアクションを使って条件式を作成することも可能です。
詳細な方法はこちらをご参照ください。


今回の例では、論理積(AND)により複数の条件をまとめる必要があるため、Compareアクションより比較/論理演算子を使用することが推奨されます。

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: 'https://docs.google.com/spreadsheets/d/1gNmzDTecIO-q9zAD3OshLJ1J4JThwapxPdHrMIAKKUE/edit#gid=0'
  meta:
    display:

# セルの値を取得_A~F列を2行目から取得
+get_cells_1:
  action>: GetCells
  spreadsheet: +get_spreadsheet_1
  range: 'シート1!A2:F'

# 各要素について繰り返す_シートから取得した各行
+for_each_1:
  for_each>:
    row: +get_cells_1
  _do:

    # 真のとき_ステータスが未購入で、購入サイトの指定はexampleXXX.com、購入するものが画像のとき
    +if_1:
      if>: ${row[1] === "未購入" && row[2] === "exampleXXX.com" && row[3] === "画像"}
      _do:

        # テキストを作成(条件を満たしていた場合の処理)
        +text_1:
          action>: Text
          text: "条件を満たしています。\n\n${row[1]}\n${row[2]}\n${row[3]}"
<>

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