# Undefined method for nil:NILClass エラー

undefined method エラーを3分以内に解消

空白のデータピルで関数を使用しようとすると、 Undefined method for nil:NILClass エラーが発生します。これは、実行時に、データピルに値が何も渡されなかったことを示しています。

Undefined method for nil:NILClass エラーの例 Undefined method for nil:NILClass エラーの例

# 解決策

実行時のデータピルの値は事前にはわからないため、Workato ではこうした状況に対応できるレシピを作成することをお勧めしています。

safe navigation operator である & を関数に追加します。以下に例を示します。

[Datapill]&.capitalize

この演算子は、データピルが有効な値を持っているかどうかを最初に確認します。データピルが有効な場合は、指定された関数を実行します。それ以外の場合は、関数をスキップし、null を返します。これにより、 Undefined method for nil:NILClass エラーでレシピが停止しないようになります。

save-navigation-operator safe navigation operator と .capitalize 関数を使用した例

safe navigation operator の詳細については、こちらを参照してください。

# このエラーが発生する理由

データピルの値が実行時に null の場合、このエラーが発生します。 Get アクションでフィールドが欠落したレコードが返される場合、 Search アクションで結果が返されない場合、あるいは SQL クエリーで0行が返される場合に、このエラーが発生する可能性があります。

このサンプルレシピでは、ステップ3 (Update lead in Marketo) で、前のステップからのデータピルに対して関数が使用されています。ステップ2からの出力に値がない場合、レシピの実行時のデータピルには値が含まれません。

Undefined method for nil:NILClass エラーの例 Undefined method for nil:NILClass エラーの例

capitalize 関数はデータピルが値を持たない場合は実行されず、ジョブは以下のエラーメッセージを表示して失敗します。

Error calculating input for field 'company':
Formula received a nil value:
undefined method `capitalize' for nil:NilClass


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