2016-05-19 17 views
0

SS2.0ファイルの中でSS1.0を使用することはできますか?私が追加しなければならないいくつかの注釈はありますか、それとも可能ですか?NetSuite:SUITESCRIPT 2.0内のSUITESCRIPT 1.0の使用

+1

私はこれが可能ではないと思います。 'window.nlapiGetFieldValue'などを呼び出すことで、クライアントスクリプトでそれを取り除くことができるかもしれません。私はそれをテストしていない。より重要な問題は、なぜあなたはこれをしたいと思いますか? – erictgrubaugh

+0

あなたはそうです、私はそれをやりたくはありませんが、SS2.0サブリストAPIを使用することはできません。それなしでは動作しません。しかし、お返事ありがとうございます – Coldstar

+0

NetSuiteサポートに報告したいことがあります –

答えて

2

これは許可されていません。以下のSuiteAnswersの抜粋をご覧ください。

https://netsuite.custhelp.com/app/answers/detail/a_id/44630

のSuiteScript 2.0 - あなたのスクリプト(エントリポイントスクリプトやライブラリのスクリプトをサポートしているが)のSuiteScript 1.0のいずれかを使用する必要があります

バージョン同棲ルール

をはじめまたはSuiteScript 2.0。 1つのスクリプトで両方のバージョンのAPIを使用することはできません。

ただし、異なるSuiteScriptバージョンを使用する複数のスクリプトを使用できます。これらは、同じアカウント、同じSuiteApp、および同じレコードに配置できます。


https://netsuite.custhelp.com/app/answers/detail/a_id/31709/kw/Suitescript%202.0

バージョン2016リリース1(2016.1)リリース

nlapi/nlobjプレフィックス退職

ノートのSuiteScript 2.0は、外観と動作するようにモデル化されます現代のJavaScriptのように。その目的を達成するために、SuiteScript 2.0のメソッドとオブジェクトには、nlapiとnlobjが前置されていません。

この変更は、SuiteScript 2.0のモジュール構成も反映しています。 SuiteScript 1.0のメソッドおよびオブジェクトは、それぞれnlapiおよびnlobj名前空間に属します。 SuiteScript 2.0のメソッドとオブジェクトは、さまざまなモジュールにカプセル化されています。

0

Opportunityの多くのフィールドを多くのサブリストアイテムで更新する必要があるスクリプトがあります。私たちのスクリプトでは、各サブリスト項目を選択してからsetCurrentSublistValue()を呼び出す2.0の方法では、59のサブリスト項目を実行するのに約40秒かかりました。私はwindow.nlapiSetLineItemValue()ハックを使いました。それには約2秒かかります。

おそらくお勧めできませんがYMMVですが、動作するかどうか確認するためにいくつかチェックしました。下記のコードを参照してください...

var canUseLegacyApi = typeof window.nlapiSetLineItemValue === "function"; 
// Loop the sublist and update 
for (var k = 0; (itemCount >= 0) && (k < itemCount); k++) { 
    if (!canUseLegacyApi) { // If the Suite Script 1.0 API isn't available, do it the slow way. 
     currentRecordOpp.selectLine({ 
      sublistId: 'item', 
      line: k 
     }) 
    } 

    if(canUseLegacyApi) { 
     // TODO: HACK: Change this total hack once SS2.x supports updating line item values (without doing a 
     // selectLine, which takes too long) 
     // NOTE: SS1.0 sub-list calls are 1-based vs SS2.x calls being 0-based. Hence the k+1 
     window.nlapiSetLineItemValue('item', 'field_id, k+1, 'new value'); 
     // Update other fields here... 
    } else { 
     currentRecordOpp.setCurrentSublistValue({ 
      sublistId: 'item', 
      fieldId: 'field_id', 
      value: 'new value', 
      fireSlavingSync: true 
     }); 
     // Update other fields here... 
    } 

    if(!canUseLegacyApi) { 
     currentRecordOpp.commitLine({sublistId: 'item'}); 
    } 

    // TODO: HACK: This is required to re-paint the sublist after the nlapiSetLineItemValue calls. Remove once SS2.x 
    // supports this. 
    currentRecordOpp.selectLine({ 
     sublistId: HVAC_SUBLIST, 
     line: 0 
    }) 
} 
関連する問題