我无法使用SuiteScript 2.0设置INLINEHTML类型的字段。但是,相同的字段适用于SuiteScript 1.0。 以下是代码段:
IndexError: too many indices for array
答案 0 :(得分:1)
不幸的是,这是一个实例,其中在SS 2.0中的record.getValue()或currentRecord.getValue()后面实现的逻辑存在缺陷。在SS 1.0中,nlapiGetFieldValue()通过的验证次数少于SS 2.0版本。这是一个例子(希望改变得足以让NetSuite不会因违反他们的IP而将我投入监狱)。这是您请求值时发生的情况。
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时我需要这种保证。
答案 1 :(得分: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'});
}
}
});
答案 2 :(得分: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>');
然后在客户端上操作$(&#34;#myuniqueid&#34;)的内容。您不必使用jQuery,但它现在包含在NS GUI中。
答案 3 :(得分:0)
我有类似的问题,您需要使用suitescript 1.0在NetSuite中操作内联html字段。但是,您可以使用以下方法来代替将整个代码从suitescript 2.0转换为1.0:
window.nlapiSetFieldValue('YOUR_FIELDID', '<a>YOUR HTML CONTENT</a>');
通过放置窗口。您可以在Suitescript 2.0中使用任何SuiteScript 1.0 API!
答案 4 :(得分:0)
使用它可能会有所帮助:
var val = currentRecord.getValue({ fieldId: 'inline_html_field'});
log.debug({title:test,details:JSON.stringify(val);})
答案 5 :(得分:0)
最近,我尝试使用UserEvent ScriptType设置一个INLINEHTML类型的字段,该字段可以工作。 ClientScript仅在编辑记录时可以工作。