WELエラーコード ​

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

すべてのWELエラーには安定したコードが含まれます。エラーメッセージが変更または翻訳されても、コードは同じままです。エラーの検索、アラートの設定、またはサポートリクエストへの記載にコードを使用します。

_ は、これらの例で式が受け取る入力です。詳細については、入力変数を参照してください。

機能の提供状況

WELは現在、一部のお客様にご利用いただけます。ご利用のワークスペースで利用可能かどうかを確認するには、Customer Success Representativeにお問い合わせください。

エラーコードは次のカテゴリに分類されます。

カテゴリ範囲説明
解析および静的分析E001–E021式自体の形式が不正です。キャッチできません。
型エラーE100–E107値が操作に必要な型ではありません。キャッチ可能です。
ランタイムエラーE200–E238データが不正、欠落、または範囲外です。キャッチ可能です。
ホストエラーE300–E303式の外部で何かが失敗しました。ほとんどの場合、キャッチできません。

ファミリの識別 ​

エラーファミリはエラーの発生元を示します。

  • E0xx: 式はすべての入力に対して不正であり、解析できないスクリプトからは何も復旧できないため、キャッチできません。これらはプロダクションではなく、式の記述中に表面化します。

  • E1xxおよびE2xx: 式自体には問題ありませんが、この特定のレコードが想定された形状を持っていません。たとえば、フィールドが欠落している、または数値が必要な場所に文字列がある場合です。これらはプロダクションで最も表面化しやすいエラーであり、多くの場合、通常は正常に実行されるバッチの途中で発生します。これらはキャッチ可能なため、何を行うかを決定できます。

  • E3xx: 式自体には問題ありませんが、依存するホスト関数または別の依存関係が想定どおりに動作しませんでした。キャッチ可能性はコードによって異なります。 E300はキャッチ可能です。欠落した任意のホスト値は復旧可能であるためです。 E301–E303はキャッチできません。ホスト自体が失敗したためです。

キャッチ可能性 ​

try-fallback演算子|?は、キャッチ可能なエラーをキャッチし、代わりにフォールバックを返します。キャッチできないエラーは常に伝播します。

text
_.customer.email |? 'unknown'
Integer(_.qty) |? 0

|?と|の比較 ​

|?と|の違いは非常に重要であり、ここで混同するとよく混乱の原因になります。

Operator処理する対象処理しない対象
|null値エラー
|?エラー該当なし

存在しないフィールドを読み取るとE104が発生します。これはnullを生成しないため、|では保護されません。

text
_.customer.nickname | 'none'      // still raises E104
_.customer.nickname |? 'none'     // returns 'none'

キーが存在し、その値がnullまたは空白になる可能性がある場合は、通常、あらゆる種類の欠如をnullに正規化するpresenceとともに|を使用します。

text
presence(_.display_name) | 'Unknown'

形状自体が異なる可能性がある場合は|?を使用します。

フォールバックは判断であり、修正ではありません

|? 0を通貨フィールドで使用すると、不正な形式の金額が気づかれずに0になり、ジョブは成功として報告されます。それが正しい場合もあれば、誤った請求書が気づかれずに送信される場合もあります。

欠落が想定され、デフォルト値が本当に正しい場合にのみ、フォールバックを使用してください。そうでない場合は、エラーを伝播させてください。失敗したジョブは目に見えますが、誤った数値は目に見えません。

解析および静的分析エラー ​

WELは評価が開始される前にこれらのエラーを発生させます。これらはすべての入力で発生し、キャッチできません。

コードメッセージ解像度
E001スクリプトには、ランタイムがサポートするより新しいWELバージョンが必要です式で、このエンジンにない機能が使用されています。エンジンバージョンを確認します。
E002予期しないトークン構文エラーです。メッセージ内のキャレット(^)は、問題のあるトークンを指します。
E003終了していない文字列リテラル引用符('または")が閉じられていません。アポストロフィは一重引用符(')と同じ文字を使用するため、一重引用符で囲まれた文字列内のアポストロフィは文字列を早く閉じてしまいます。
E004無効な数値リテラル余分な区切り文字または不正な形式の指数がないか確認します。
E005無効なバイナリリテラル0x"..."リテラルに16進数字以外のものが含まれています。
E006予期しない入力の終わり何かが閉じられていません: 角かっこ([)、かっこ(()、または本体のないdo。
E007無効な正規表現パターンをコンパイルできません。
E008Binary()に非ASCII文字を含めることはできません代わりに、明示的なエンコーディングを指定してencode_stringを使用します。
E009変数はすでに定義されています内側のバインディングの名前を変更します。 WELではシャドーイングは許可されていません。
E010未定義の変数入力ミス、またはそれをバインドするletの外側で名前が使用されています。
E011未定義の関数入力ミス、または存在しない関数です。標準ライブラリを確認します。
E012引数の数が正しくありません関数のリファレンスエントリにあるシグネチャを確認します。
E013無効なロケール設定アクションのロケール設定を確認します。
E014式のネストが深すぎます式をletバインディングに分割します。
E015識別子が長すぎます名前を短くします。
E016無効な形式指定f-stringまたはformat関数の形式文字列を確認します。
E017無効なhostfx参照ホスト関数参照の構文を確認します。
E018HostFx名前空間は許可されていませんこのコンテキストでは名前空間が許可されていません。
E019数値リテラルが長すぎます桁数を減らすか、値をStringとして読み取って変換します。
E020コンストラクタの定数が無効ですリテラルがコンストラクタに適合しません。 Duration('P1D')でこれが発生します。 DurationはPT24Hなどのクロック期間を受け取ります。
E021式が大きすぎます複数のステップに変換を分割します。

型エラー ​

WELは、値が操作に必要な型でない場合にこれらのエラーを発生させます。すべての型エラーはキャッチ可能です。

WELは、関数または演算子を満たすために引数を自動的に強制変換しません。入力型が必要な型と一致しない場合は、値を明示的に変換します。詳細は変換関数を参照してください。

コードメッセージ解像度
E100型の不一致: 1つの型が想定されましたが、別の型が渡されました明示的に変換します: String(...)、Integer(...)、Decimal(...)。 WELで最も一般的なエラーです。
E101これらの型では演算子がサポートされていません両方のオペランドを確認します。 Stringに数値を加算するとこれが発生します。いずれかを変換します。
E102ある型を別の型にキャストできませんたとえば、Integer('3 items')は変換されません。先に値をクリーンアップするか、|?を使用してデフォルトを指定します。
E103DecimalとFloatの精度が混在しています両側を同じ型にします。金額の場合は両方をDecimalにします。詳細はデータ型を参照してください。
E104この型ではフィールドにアクセスできませんフィールドが欠落しているか、値がMapではありません。デフォルトにはhas_key?または|?を使用します。
E105Lambdaが異なる数の引数を想定していますlambdaのパラメータを確認します。 Mapでのfilter_byは1つではなく2つを渡します。
E106関数が異なる数の引数を想定していますシグネチャを確認します。
E107ここではLambdaを値として使用できませんラムダは、それを受け取る関数への引数としてのみ有効です。

E103は金額に関するものです ​

DecimalとFloatは混在できません。暗黙の混在は、Decimalを使用する価値である正確性を損ないます。 Floatが計算に入ると結果は近似値になり、下流ではそれを判別できません。

合計でE103が発生した場合、ほとんどの場合、修正はDecimalをFloatに変換するのではなく、もう一方のオペランドをDecimalにすることです。

レシピではデフォルトで混合精度が有効になります

Transform dataアクションには、DecimalとFloatを混在できるかどうかを設定するMixed precisionフィールドがあります。このフィールドのデフォルトはallowです。つまり、フィールドをdenyに設定しない限り、レシピアクションではE103は発生しません。

ランタイムエラー ​

WELは、入力値を処理できない場合に評価中にこれらのエラーを発生させます。すべてのランタイムエラーはキャッチ可能です。

データの形状とアクセス ​

データが操作で想定される形状または値を持たない場合、次のエラーが発生します。

コードメッセージ解像度
E200未定義または不確定の算術結果ゼロ除算または同様の未定義操作を防ぐために、除数をガードします。
E201インデックスが範囲外ですリストが想定より短くなっています。 first、last、または|?を使用します。
E202nullのプロパティにアクセスできません親フィールドがnullです。 |?を使用するか、present?で確認します。 Nulls in aggregatesフラグがオフでリストにnullが含まれている場合にも、集計関数によって発生します。
E203ガード条件が失敗しましたlet ... guardが入力を拒否しました。メッセージには条件の名前が示されます。
E204one!は要素が正確に1つであることを想定していますルックアップがゼロ件または複数のレコードに一致しました。このエラーは、関数が役割を果たしていることを示します。どのケースに該当するかを判断します。
E205nullとは連結できません値をラップします: presence(x) | ''。
E207空のリストでは計算できません何もないavgには答えがありません。最初にリストが空でないことを確認します。
E211値が範囲外ですメッセージには許可された範囲が示されます。
E217必須フィールドが欠落しているか空白ですフィールドを指定するか、その欠如を処理します。
E231未定義の名前この時点では名前がバインドされていません。
E232無効な値: セット内のいずれかが想定されますオプショントークンが許可されたセットに含まれていません。メッセージには許可されている内容が一覧表示されます。

解析と変換 ​

値を想定される形式として解析できない、または想定される形式に変換できない場合、次のエラーが発生します。

コードメッセージ解像度
E206無効またはサポートされていないエンコーディングencodings()に照らして名前を確認します。
E208無効なURL値が正しい形式のURLではありません。
E209JSONの解析エラー入力は有効なJSONではありません。メッセージには行と列が示されます。
E210JSONシリアライズエラー値をJSONで表すことはできません。
E212無効な日付値値はパーサーが受け入れる日付ではありません。 formatオプションを指定します。
E213無効な期間値ISO 8601期間形式を確認します。
E214無効な正規表現パターンはランタイムで構築され、コンパイルできません。補間された値にescape_for_regexを使用します。
E215無効なタイムゾーンEurope/LondonなどのIANA名を使用します。
E216あいまいまたは存在しない日時日時が夏時間の境界に該当します。あいまいさを解決するには、on_gapまたはon_foldを設定します。
E230無効な時刻値値はパーサーが受け入れる時刻ではありません。
E233エンコーディングに対して無効なデータバイトは指定されたエンコーディングで有効ではありません。
E234文字をエンコードできませんターゲットエンコーディングではこの文字を表現できません。最初にconvertible_to_encoding?で確認します。
E235丸めが必要ですが、モードはexactです値が要求された小数桁数に収まりません。丸めモードを受け入れるか、不正なデータとして扱います。

スキーマと構造 ​

値の構造が宣言されたスキーマ、オプションマップ、またはパス式と一致しない場合、次のエラーが発生します。

コードメッセージ解像度
E218フィールドでのスキーマ型の不一致出力が宣言されたOutputスキーマと一致しません。
E219フィールドでのスキーマアサーション失敗宣言された制約が満たされませんでした。
E222無効なマップフィールドオプションマップ内の認識されないキーです。通常は入力ミスです。 WELはオプションを無視せずに検証するため、入力ミスは動作を静かに変更するのではなく、ここで表面化します。
E223無効なJSONPath式パス構文を確認します。
E224サポートされていないJSONPath機能フィルター、ユニオン、関数拡張はサポートされているサブセットの範囲外です。代わりにdeep_collect_byを使用します。
E229キーの競合2つのソースキーが同じ出力キーを生成しました。最後の書き込みが優先されます。このエラーは、それが発生したことを警告します。

制限 ​

式、名前、リテラル、またはそれが処理するデータがサイズ制限を超えた場合、次のエラーが発生します。

コードメッセージ解像度
E225結果が大きすぎます操作により、制限で許可されている数を超える要素が生成されます。展開する前にフィルターします。
E226再帰制限を超えました式をフラット化します。
E227メモリ制限を超えましたデータをより小さいバッチで処理します。
E228値のネストが深すぎます構造が制限を超えてネストされています。さらに処理する前に値をフラット化します。

シリアル化 ​

値をWELリテラルにシリアル化できない場合、次のエラーが発生します。

コードメッセージ解像度
E236HostFx値はWELリテラルにシリアル化できませんシリアル化する前に値を解決します。
E237NaNはWELリテラルにシリアル化できません除外します。 present?はNaNを存在しないものとして扱います。
E238Map内のSkipはWELリテラルにシリアル化できませんシリアル化する前にSkipを削除します。

その他 ​

コードメッセージ解像度
E220暗号化操作が失敗しましたメッセージには原因が示されます。一般的な原因の1つは、キーがアルゴリズムで必要な長さより短いことです。 HS256には少なくとも32バイトが必要です。
E221一般エラーメッセージに詳細が含まれています。

ホストエラー ​

WELは式の外部でこれらのエラーを発生させます。

コードメッセージキャッチ可能解像度
E300未解決のhostfxはいホスト値が指定されていません。欠落した任意の値は復旧可能であるため、キャッチ可能です。
E301ホスト関数が失敗しましたいいえホスト自体が失敗しており、その失敗は式内で復旧できません。
E302無効なhostfxフィールドいいえホスト関数設定内のフィールドが無効です。設定を確認します。
E303TLVシリアライズエラーいいえ値をホストのTLV形式にシリアル化できませんでした。

一般的なエラー ​

入力が式で想定される型または形状と一致しない場合、一般的に次のエラーが発生します。

コード通常の意味
E100フィールドがStringとして到着して数値として使用されている、またはその逆です
E104任意フィールドがこのレコードに存在しません
E102値を変換できません: 数値が想定される場所に空の文字列があります
E103Decimal金額が算術処理のどこかでFloatに遭遇しました

変換の開始時に入力フィールドを想定される型に変換し、任意の値を明示的に処理することで、これらのエラーを減らします。 presence(...) | defaultは、実際に任意のフィールドに使用します。詳細は変換関数および共通関数を参照してください。

最終更新日: