ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
定期スクリプトの延期は成功したが、予期しないエラーが発生する:オブジェクトのデフォルト値が見つかりません
適用
製品: NetSuite 2023.1
シナリオ
定期スクリプトは成功の延期の後、「予期しないエラー:オブジェクトのデフォルト値が見つかりません」のエラーが発生します。
可能な原因は、nlapiYieldScriptが戻るオブジェクトをnlapiLogExecutionで参照しています。nlapiYieldScriptの処理はまだ未終了の状態にnlapiLogExecutionで参照されるので、オブジェクトの値はまだありません。機能の延期が失敗する場合、失敗のステータスはリターンされます。成功の場合、スクリプトが継続するまで、リターンはしません。
解決策
以下の例はnlapiYieldScriptの正しい使い方です。
var usage = nlapiGetContext().getRemainingUsage(); nlapiLogExecution('DEBUG', 'usage : ' + usage); if (usage < 150) { var state = nlapiYieldScript(); if (state.status == 'FAILURE') { nlapiLogExecution("ERROR", "Failed to yield script, exiting: Reason = " + state.reason + " / Size = " + state.size); throw "Failed to yield script"; } else if (state.status == 'RESUME') { nlapiLogExecution("AUDIT", "Resuming script because of " + state.reason + ". Size = " + state.size); } else { nlapiLogExecution("AUDIT", "STATE" + JSON.stringify(state) + ". Size = " + state.size); } }
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。