2017-02-01 21 views
1

私の質問はとても平凡です。 suitescript2.0を使って大量のカスタムレコードを削除する方法を見つけたかどうかを知りたい。NetSuite suitscript 2.0でカスタムレコードを一括削除するにはどうすればよいですか?

/** * @NApiVersion 2.x 
* @NScriptType ScheduledScript 
*/ 

define ([   
'N/error',   
'N/record', 
'N/runtime', 
'N/log', 
], 
function(error, record,runtime, log) { 
    function execute(context) { 



    for(var i=4;i< 11614;i++){ 
    var objRecord = record.delete({ type: 'customrecord_uber_billing_report_data', id: i}); 

    } 


    } 
    return { 
     execute: execute 
    }; 




}); 

Eclipseは、あなたは、単一のカスタム・レコード・タイプのインスタンスがシーケンシャルでないことを除いて、正しくrecord.deleteを使用しているように見える構文 enter image description here

答えて

1

が好きなように見えるdoes't。すべてのiが4から11614になるとは、すべてがcustomrecord_uber_billing_report_dataのインスタンスになるわけではありません。

具体的なエラーや動作はありますか?

+0

内部ids1-4のレコードを手動で削除しました。日食では、私はエラーが発生しています。トークン "delete"の構文エラー。識別子が必要です。なぜか分からない。 – pitchblack408

+0

'delete 'はJS言語のキーワードなので、Eclipseは構文エラーだと思っていますが、予約名ではありません。 NetSuiteで動作しているときに実際に機能に影響を与えるべきではありません。 – erictgrubaugh

0

https://bugs.eclipse.org/bugs/show_bug.cgi?id=443876

ビクターRubezhny 2014年9月11日午後05時10分24秒EDT

より多くのJavaScriptライブラリとツールが利用可能になるとECMA5標準を使用していること、JSDTの使用は、より多くのbecames難しい

問題は、JSDTパーサーで現在サポートされているECMA3では、キーワード(例:abstract、continue、delete、importなど)を使用するなど、ECMA5で使用できる多くのものを許可しないということです。 )を識別子(プロパティ、関数、または変数の名前)として使用します。

現在のJSDTパーサー/コンパイラ/推論エンジンをECMA5をサポートするものと置き換えるのは簡単なことではないので、Bug 223131は何年も解決されていません。

現在のJSDTパーサーの制限を認識しているユーザーにこのような構文エラーを表示しないようにするソリューションが必要です。そのため、ユーザーは、組み込まれたJavaScriptライブラリの迷惑なエラーマーカーがなくても、自分のコードで

コメント1ビクターRubezhny 2014年9月16日午前13時26分29秒EDT

パッチ修正がJavaScript-> Validator-に新しい環境を追加するキーワード 上/非表示の構文エラーを表示するようにプリファレンスを追加します> 「エラー/警告」ページ:「JavaScriptキーワード使用の厳密な検証」(デフォルト値はtrueです。これまでと同じように動作します)。 ProblemReporterは、このプリファレンス値を使用して、キーワードの構文エラーを報告する必要があるかどうかを判断します。この修正には、変更直後に再生するように設定値を変更するために必要なエディタの調整者の変更が含まれます。 ......

+0

FWIWは、すべてのNetSuite開発用に、NetSuite ToolsプラグインでWebStormを使用しています。https://plugins.jetbrains.com/idea/plugin/8305-netsuite-tools-for-webstorm – erictgrubaugh

1

"約束"で行うことができます。 Netsuiteはこれまで、一連のレコードをすばやく削除するためのSuitescript関数を持っていません。この関数を使用すると、1つずつ削除し、コードを別のもので動作させることができます。お役に立てれば。

require(['N/record', 'N/search'], function (record, search) { 
    function deleteUnwantedRecords() { 
     var objRecord = search.create.promise({ 
       type: 'customrecord_your_record', 
       columns: [ 
        'internalid', // The record's ID 
       ], 
       filters: []// no filters 
      }).then(function (result) { 
       var HowManyFound = 0; 
       result.run().each(function (rl) { 
        HowManyFound++; 
        var recToDelete = rl.getValue('internalId'); 
        var objNewRecord = record.delete ({ 
          type: 'customrecord_your_record', 
          id: recToDelete, 
         }); 
        console.log('Error ID: ' + rl.getValue('internalId')); 
        return true; 
       }); 
       console.log('#Error Logs found: ' + HowManyFound); 
      }).catch (function (reason) { 
       log.debug("Failed: " + reason); 
      }) 
    } 
    var delRecs = deleteUnwantedRecords(); 
}); 
関連する問題