2016-08-09 13 views
0

基準に基づいてカスタムレコードを作成するスケジュールスクリプトを使用しています。スケジュールスクリプトが実行されるたびに、 100,000レコードが作成されますが、5000または10000レコードを作成した後にスクリプトがタイムアウトしています。私は以下のスクリプトを使用してスクリプトの使用制限を回避していますが、この場合でもスクリプトは機能しません。誰かが何かを提案したり、何か情報を提供してください。どんな提案も歓迎され、高く評価されます。スケジュールされたスクリプトで実行の使用制限を回避する方法

私のforループでは、以下のスクリプトを使用しています。この以下のスクリプトを含めると、スケジュールされたスクリプトは最大5000または10000レコードのみを作成できます。

if (nlapiGetContext().getRemainingUsage() <= 0 && (i+1) < results.length) 
    { 
    var stateMain = nlapiYieldScript(); 
    } 

答えて

1

あなたがnlapiYieldScriptメカニズムを使用してスケジュールを変更しようとしている場合、あなたはまた、あなたが再開するスクリプトを希望する時点でnlapiSetRecoveryPointを使用する必要があります。スケジュールスクリプト

にこれらの各メソッドのためのヘルプドキュメントだけでなく、ページというタイトル設定復旧ポイントを参照してください、あなたのgetRemainingUsageチェックでこれを考慮する必要がありますのでnlapiSetRecoveryPointは、100ガバナンス・ユニットを使用することに注意してください。

+0

NSドキュメントは反対のことを示唆しているようです。 'Scheduling APIs'ページには、' nlapiYieldScript'がリカバリポイントを自動的に設定し、標準100ユニットを使用しないことが示されています。それらのサンプルスクリプトは、 'nlapiSetRecoveryPoint'を呼び出しません。 – CyberEd

1

forEachのような配列を処理できるスクリプトがあります。スクリプトは各反復をチェックし、最大使用量と最大使用量を計算します。

ヘッドhttps://github.com/BKnights/KotN-Netsuiteにオーバーし、ダウンロードsimpleBatch.jsは

関連する問題