例外処理およびスクリプトのトラブルシューティング

「変換」では、変換をプレビューまたは保存する際に、静的パーサーを使用して、Groovyの一部の動的型付けの動作をオーバーライドしたり、未定義の変数などの解析のエラーを検出します。

重要: 静的パーサーにより、Groovyが静的型付け言語のように動作するよう強制されるため、変換内でGroovyの動的型付け機能を使用することはできません。たとえば、Groovyでは通常、宣言されていない変数が許可されますが、「変換」では解析エラーが発生します。

また、静的パーサーにより、スクリプト内で直接参照される属性が、データ・セットのスキーマに定義されている属性と一致するかどうかも検証されます。属性が一致しない(たとえば、スペルミスがある)場合は、エラーが発生します。

重要: 静的パーサーでは、変換に含まれるパラメータが、一部のカスタム関数(エンリッチメント関数など)の行マップで参照される構文と一致するかどうかは検証されません。関数からパラメータを不正に参照した場合、変換スクリプトによってこの操作は検証されませんが、パーサーではエラーが指定されません。したがって、変換APIリファレンス(このドキュメント内またはGroovydoc内)をチェックし、行マップ内の関数パラメータを正しく参照しているかどうかを検証してください。

変換スクリプト内に属性を変数として組み込む場合、属性に使用する書式が、静的パーサーがこの属性を処理する方法に影響します。属性の書式の詳細は、「変数の書式」を参照してください。

変換に解析エラーが含まれる場合、「変換」では、変換をプレビューまたは保存するときに「変換エラー」ダイアログ・ボックス内にエラー・メッセージが表示されます。また、「変換エラー」には、エラーが含まれる各行の横に赤い「X」アイコンが表示されます。これらのアイコンにカーソルを合わせると、エラーに関する詳細を表示できます。

ダイアログ・ボックスを閉じ、エラーを修正し、変換を再びプレビューし、すべてのエラーが修正されていることを検証する必要があります。エラーがない状態にするまでは変換をスクリプトに保存することはできません。

セキュリティ例外

サポートされていないGroovy言語機能が変換スクリプトに含まれる場合、セキュリティ例外がスローされ、「変換エラー」ダイアログ・ボックスに表示されます。エラーの原因となったコードを削除してください。

セキュリティ例外の原因となる可能性があるGroovy言語機能の詳細は、「サポートされていないGroovy言語機能および予約済キーワード」を参照してください。

実行時の例外のトラブルシューティング

静的パーサーでは、すべてのエラーを検出できるわけではなく、特にデータ内の異常が原因で発生した実行時の例外は検出できません。通常、「変換」では、処理できないデータに対してnull値を返すことによってこれらのエラーを処理します。

変換スクリプトによってnull値が生成された理由の詳細を確認するには、コードをtryブロックでラップし、その出力先を文字列型の新しい一時属性に設定できます(出力は、文字列型の属性の新しい列としてプロジェクトのデータ・セット内に表示されます)。
try {
    <transformation script>  // replace this with your transformation script code
    'OK'
  } catch (Exception ex) {
    ex.getMessage()
  }

変換スクリプトをプレビューすると、生成されたエラー・メッセージが文字列型の一時列に出力されます。デバッグが完了したら、tryブロックを削除し、一時属性を削除できます。