# formula への条件の追加

想定外のシナリオに耐性のあるレシピを作成することも重要です。たとえば、トリガーデータの値に抜けがある場合や、別の型のデータが入っている場合が考えられます。

条件付きロジックを使用すれば、そうした状況に備えたレシピを作成することができます。

# 条件

Ruby の三項構文 (if-else ステートメントの一般的な略記法) を使えば、formula を条件付きで実行することができます。三項構文は次のような形になります。

condition ? expression1 : expression2

# 動作

# condition

true または false に評価するブール式。

# expression1

conditiontrue の場合はこの式が返されます。

# expression2

conditionfalse の場合はこの式が返されます。

# 例 : ファーストネームとフルネームのいずれかを使用する

以下の例では、Message 入力項目に、条件に応じて Full nameFirst name のどちらかを渡します。

三項構文 Full name の存在を確認し、存在するなら Full name を、存在しないなら First name を出力する

三項 formula について以下に詳しく説明します。

  1. Full name.present? は、Full name ピルに値があるかどうかをチェックします。値があれば評価結果は true になり、なければ false になります。
  2. formula の2つ目の ? は、評価する条件と返す値を区切るためのものです。1つ目の ?.present? formula の一部ですが、2つ目の ? は空白文字で区切られており、三項構文の一部であることに注意してください。
  3. ジョブの実行時、Full name ピルに値があれば、Full name の値が Message 入力項目にマッピングされます。
  4. ジョブの実行時、Full name ピルに値がなければ、First name の値が Message 入力項目にマッピングされます。もちろん、この First name ピルにも値がなく、 Message が必須の入力項目である場合、ジョブはこのステップでエラーになります。

Ruby の三項構文の詳細については、こちらの記事 (opens new window)を参照してください。

# 例 : 空の項目をスキップする

レコードを更新する際は、既存のデータは変えず、更新された項目だけを変更することが推奨されます。そのような場合、skip formula を使用すると、対象項目を変更しないよう Workato アクションに指示することができます。

以下の例では、更新された Salesforce レコードを使って Marketo のリードを更新します。Salesforce の Company が存在するかどうかをチェックし、存在する場合は Salesforce の Company を Marketo に出力します。存在しない場合、Marketo レコードを変更しません。

skip 構文 Company の存在をチェックして、存在するなら Company を出力し、存在しないなら変更しない

値を渡さないようにする方法

skip formula を使用すると、入力項目にデータを渡さないようにすることができます。

# 安全参照演算子

入力が有効かどうかチェックします。有効な場合は、入力データに対して指定された操作を行い、有効でない場合は null 値を返します。

# 構文

Input&.operation

  • Input - 入力データピル。任意のデータ型を指定できます。
  • operation - 入力が null でない場合に入力データに適用される formula です。入力のデータ型と互換性のある formula が必要です。

# 動作の仕組み

安全参照演算子 (&.) は、入力データが有効かチェックします。入力データが null または未定義の場合には、null 値を返します。入力データが有効な場合は、operation 引数で指定された操作を実行します。これにより、null 値の処理を簡単な式で記述することが可能になります。

  • 使用する前

Created Date データピルを to_date formula で日付のデータ型に変換する必要があるとします。この formula はデータピルに null 値があるとエラーになるので、このロジックに三項式を使って対処する必要があります。 安全参照演算子を使用しない場合 三項条件の使用

  • 使用した後

代わりに &. 演算子を使用します。安全参照演算子を使用すれば、Created Datenull 値が入っていても、簡単な formula 式で対処できます。 安全参照演算子の使用 安全参照演算子の使用


Last updated: 2023/8/31 1:07:14