2017-08-29 12 views
1

SuiteScript 2.0を使用してINLINEHTMLタイプのフィールドを設定できません。ただし、同じフィールドはSuiteScript 1.0で動作します。SuiteScript 2.0のクライアントスクリプトからインラインHTMLフィールドを設定する

/** 
* @NApiVersion 2.x 
* @NScriptType ClientScript 
*/ 
// In SuiteScript 2.0 
define(['N/search'], function(search) { 
    return { 
     pageInit: function(context) { 
      var currentRecord = context.currentRecord; 
      // Set Value (This does not set any data) 
      currentRecord.setValue({ fieldId: 'inline_html_field', value: '<div>Test Value</div>' }); 
      // Get value (Returns undefined) 
      currentRecord.getValue({ fieldId: 'inline_html_field'}); 
     } 
    } 
}); 

// In SuiteScript 1.0 
nlapiGetFieldValue('inline_html_field'); // Returns the data in field 
+0

このフィールドを動的に作成しているのですか、それともレコードに存在するカスタムフィールドですか? –

+0

レコードで利用できるのはカスタムフィールドです。 – tarunbandil

答えて

0

私はあなたがcurrentRecordモジュールが必要だと思う: はここにコードスニペットです。

/** 
* @NApiVersion 2.x 
* @NScriptType ClientScript 
*/ 
// In SuiteScript 2.0 
define(['N/search', 'N/currentRecord'], function(search, currentRecord) { 
    return { 
     pageInit: function(context) { 
      var currentRecord = context.currentRecord; 
      // Set Value (This does not set any data) 
      currentRecord.setValue({ fieldId: 'inline_html_field', value: '<div>Test Value</div>' }); 
      // Get value (Returns undefined) 
      currentRecord.getValue({ fieldId: 'inline_html_field'}); 
     } 
    } 
}); 
+0

currentRecordモジュールを追加しましたが、動作しませんでした。 – tarunbandil

+0

あなたはそうです。これは機能しません。 これはできないようです。自分のコードを自分の環境にコピーして同じ結果を得ました。インラインHTMLフィールドでは機能しません。それは他のフィールドタイプでも動作します。 – user3075978

0

残念ながら、これはSS 2.0 record.getValue()またはcurrentRecord.getValue(後ろ実装ロジック)が欠陥がある場合です。 SS 1.0では、nlapiGetFieldValue()は、SS 2.0の同等物よりも少ない検証を通過します。ここに例があります(うまくいけば、NetSuiteは彼らの知的財産権を侵害して私を投獄しません)。これは、あなたが価値を要求するときに起こっていることです。

function getTheValue(options) 
     { 
      var fieldId; 

      fieldId = '....';// Do a bunch of logic to validate the options parameter is correct 

      return doGetTheValue(fieldId); 
     } 

     function doGetTheValue(fieldId) 
     { 
      var fieldObj = goodOlegetField(fieldId); // goodOle being our 1.0 api prefix.... 
      // the function call above returns null preventing your request from succeeding. 
      var value; 
      if (fieldObj == null) 
       return undefined; 


     } 

私は、これは理にかなって願って、そしてそれが答えをイマイチが、それはあなたが取得している応答を得ている理由を洞察を提供します。また、あなたは狂っていないことを確かな検証。私は、SS 2.0で作業するときにこの安心感が必要であることがよく分かっています。

0

インラインhtmlフィールドを扱うとき、私はクライアント側で通常のhtmlとして扱います。問題を避けるために、私は一般的にデフォルト値

// User Event Before Load 
nlapiSetFieldValue('custbody_inline_field', '<div id="myuniqueid">default content</div>'); 

または

var fld = form.addField('custpage_inline_field'...); // look up field creation in the help. 
fld.setDefaultValue('<div id="myuniqueid">default content</div>'); 

を持っているし、クライアント上でたったの$(「#のmyuniqueid」)の内容を操作します。あなたはjQueryを使う必要はありませんが、NS GUIに含まれています。

関連する問題