我正在加载保存的搜索,并尝试从结果中获取一些特定信息。
我尝试了多种方法来获取和处理结果,其中一些方法可以工作,但不能自动完成。
手动工作:
var resultado = [{"recordType":"vendorbill","id":"13315","values":
{"entity":[{"value":"5253","text":"PREVENCAO TOTAL SEGURANCA DO TRABALHO E
CURSOS LTDA ME"}],"custbody1":"123456"}},
{"recordType":"vendorbill","id":"13316","values":{"entity":
[{"value":"5253","text":"PREVENCAO TOTAL SEGURANCA DO TRABALHO E CURSOS
LTDA ME"}],"custbody1":"123456"}},
{"recordType":"vendorbill","id":"13424","values":{"entity":
[{"value":"6280","text":"A. A. POSTO DE SERVICOS
LTDA"}],"custbody1":"12345678"}}];
log.debug(resultado);
for (var a in resultado){
var dados = resultado[a];
var dados1 = dados['values'];
var dados2 = dados1['entity'];
var nota = dados1['custbody1'];
log.debug("Numero da nota: " + nota);
var dados3 = dados2[0];
var vendorId = dados3['value'];
log.debug("Id do Fornecedor: " + vendorId);
}
我需要使用自动结果,像这样:
var resultado = busca.run().getRange({
start: 0,
end: 999
});
我希望获得这些特定的信息:实体的“值”和“ custbody1”。当我执行自动搜索时,它会返回未定义,或者返回错误消息“无法从未定义获取信息”。 这仅适用于Netsuite调试器...
感谢您的帮助!
答案 0 :(得分:1)
问题在于您如何尝试从结果中获取值。当您传递自己的测试数据时,您使用的是精确结构化的对象。但是,当您从搜索(创建或加载)中获得结果时,返回的对象实际上并不是将其记录到控制台时所看到的结构。这就是为什么您的测试有效但搜索方法无效的原因。
如帮助中心中所述,您必须使用 Result.getValue(fieldId)
或 Result.getText(fieldId)
从结果字段中获取值/文本。您无法像使用其他任何对象(点或括号符号)那样直接访问值。
要获取所需的值,请执行以下操作:
var resultado = busca.run().getRange(0, 1000);
for (var a in resultado) {
var dados = resultado[a];
var entityValue = dados.getValue('entity'); // 5253
var entityText = dados.getText('entity'); // PREVENCAO TOTAL SEGURANCA DO TRABALHO E CURSOS LTDA ME
var custbody1Value = dados.getValue('custbody1'); // 123456
}