# formula への条件の追加
想定外のシナリオに耐性のあるレシピを作成することも重要です。たとえば、トリガーデータの値に抜けがある場合や、別の型のデータが入っている場合が考えられます。
条件付きロジックを使用すれば、そうした状況に備えたレシピを作成することができます。
# 条件
Ruby の三項構文 (if-else ステートメントの一般的な略記法) を使えば、formula を条件付きで実行することができます。三項構文は次のような形になります。
condition ? expression1 : expression2
# 動作
# condition
true
または false
に評価するブール式。
# expression1
condition
が true
の場合はこの式が返されます。
# expression2
condition
が false
の場合はこの式が返されます。
# 例 : ファーストネームとフルネームのいずれかを使用する
以下の例では、Message 入力項目に、条件に応じて Full name と First name のどちらかを渡します。
Full name の存在を確認し、存在するなら Full name を、存在しないなら First name を出力する
三項 formula について以下に詳しく説明します。
Full name.present?
は、Full name ピルに値があるかどうかをチェックします。値があれば評価結果はtrue
になり、なければfalse
になります。- formula の2つ目の
?
は、評価する条件と返す値を区切るためのものです。1つ目の?
は.present?
formula の一部ですが、2つ目の?
は空白文字で区切られており、三項構文の一部であることに注意してください。 - ジョブの実行時、Full name ピルに値があれば、Full name の値が Message 入力項目にマッピングされます。
- ジョブの実行時、Full name ピルに値がなければ、First name の値が Message 入力項目にマッピングされます。もちろん、この First name ピルにも値がなく、 Message が必須の入力項目である場合、ジョブはこのステップでエラーになります。
Ruby の三項構文の詳細については、こちらの記事 (opens new window)を参照してください。
# 例 : 空の項目をスキップする
レコードを更新する際は、既存のデータは変えず、更新された項目だけを変更することが推奨されます。そのような場合、skip
formula を使用すると、対象項目を変更しないよう Workato アクションに指示することができます。
以下の例では、更新された Salesforce レコードを使って Marketo のリードを更新します。Salesforce の Company が存在するかどうかをチェックし、存在する場合は Salesforce の Company を Marketo に出力します。存在しない場合、Marketo レコードを変更しません。
Company の存在をチェックして、存在するなら Company を出力し、存在しないなら変更しない
値を渡さないようにする方法
skip formula を使用すると、入力項目にデータを渡さないようにすることができます。
# 安全参照演算子
入力が有効かどうかチェックします。有効な場合は、入力データに対して指定された操作を行い、有効でない場合は null
値を返します。
# 構文
Input&.operation
- Input - 入力データピル。任意のデータ型を指定できます。
- operation - 入力が
null
でない場合に入力データに適用される formula です。入力のデータ型と互換性のある formula が必要です。
# 動作の仕組み
安全参照演算子 (&.
) は、入力データが有効かチェックします。入力データが null
または未定義の場合には、null
値を返します。入力データが有効な場合は、operation 引数で指定された操作を実行します。これにより、null
値の処理を簡単な式で記述することが可能になります。
- 使用する前
Created Date データピルを to_date
formula で日付のデータ型に変換する必要があるとします。この formula はデータピルに null
値があるとエラーになるので、このロジックに三項式を使って対処する必要があります。
三項条件の使用
- 使用した後
代わりに &.
演算子を使用します。安全参照演算子を使用すれば、Created Date に null
値が入っていても、簡単な formula 式で対処できます。
安全参照演算子の使用
Last updated: 2023/8/31 1:07:14