Не удается получить информацию внутри объекта ответа - PullRequest
0 голосов
/ 21 мая 2019

Я загружаю сохраненный поиск и пытаюсь получить некоторую конкретную информацию из результатов.

Я пробовал много способов получить и обработать результаты, некоторые из них работали, но не автоматически.

Работал вручную:

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 Debugger ...

Любая помощь приветствуется!

1 Ответ

1 голос
/ 25 мая 2019

Проблема в том, как вы пытаетесь получить значения из результата.Когда вы передаете свои собственные тестовые данные, вы используете объект, который структурирован точно так, как вы его написали.Но когда вы получаете результат поиска (созданный или загруженный), возвращаемый объект на самом деле не структурирован так, как вы видите его при входе в консоль.Вот почему ваш тест работает, а метод поиска - нет.

Как указано в Справочном центре, вы должны использовать 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
}
...