NetSuite SuiteScript 2.0 Как указать поле, поле подсписка или поле подзаписи в N / search create API - PullRequest
0 голосов
/ 24 января 2019

У меня есть кнопка в записи заказа на поставку, которая выполняет сохраненный поисковый запрос для текущей записи, а затем использует модуль http для отправки этих данных через POST на URL-адрес. Затем этот URL отправляет данные, отправленные обратно, как часть подтверждения успеха. Идея с сохраненным поиском состоит в том, чтобы создать объект javascript, который содержит все данные, которые я хочу получить из заказа на покупку (основной список и подсписок элементов с подзаписями), а затем использовать JSON.stringify для создания полезной нагрузки JSON для http POST. Я не могу сделать это с currentRecord, потому что, если вы проверите его, он содержит только внутренний идентификатор. Это также избавило бы меня от необходимости писать много кода, чтобы вручную создать строку JSON из currentRecord.

К сожалению, я не совсем понимаю, как указывать имена столбцов в динамически создаваемом сохраненном поиске. Иногда мне кажется, что имена столбцов взяты из браузера записей NetSuite, а иногда скрипт выдает ошибку (столбец не найден), если я использую имя столбца из браузера записей NetSuite (например, currencysymbol).

Я также не уверен, как указать столбцы, которые появляются в подсписках или подзаписи в подсписках. Я пытался использовать item.itemtype, но это дало мне ошибку в столбце not found. Просто item завершается успешно, но я не уверен, действительно ли это было успешно, так как трудно декодировать возвращаемый результат после JSON.stringify (это добавляет много обратных слешей). Использование console.log (по какой-то причине я ничего не получаю при использовании NetSuite log.audit) также довольно сложно, хотя похоже, что он возвращает массив из 5 строк. Так что использование item может быть успешным. Я говорю вроде как, потому что у меня есть 3 строки элементов, и он возвращает 5 строк массива.

Поэтому в основном я хотел бы знать, где можно найти имена столбцов, которые будут использоваться в NetSuite для сохраненного поиска; а также как указать имена столбцов подсписков и имена столбцов подзаписей подсписков в сохраненном поиске.

/**
 * @NApiVersion 2.0
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
define(['N/ui/dialog', 'N/currentRecord', 'N/record', 'N/url', 'N/http', 'N/search'], function (dialog, rec, record, url, http, s) {

   function pageInit(context) {
      // All client scripts need at least one dummy function.
   }   // pageInit

   function onButtonClick() {

      var currentRecord = rec.get();

      // Create a saved search dynamically.
      var rs = s.create({
         type: s.Type.PURCHASE_ORDER,
         filters: [
            ["mainline", s.Operator.IS, "F"], "and",
            ["internalid", s.Operator.IS, currentRecord.id]
         ],
         columns: [
            "internalid",
            "currency",
            {
                name: "item",
                sort: s.Sort.ASC   // DESC
            }
         ]
      });

      var myPostDataObj = rs.run().getRange(0, 1000);
      console.log(myPostDataObj);
      var headers = {
         'Content-Type': 'application/json; charset=utf-8',
      };
      http.post.promise({
         url: 'http://httpbin.org:80/post',
         body: JSON.stringify(myPostDataObj),
         headers: headers
      })
      .then(function(response){
         console.log('SUCCESS: ' + JSON.stringify(response));
      })
      .catch(function onRejected(reason) {
         console.log('ERROR: ' + JSON.stringify(reason));
      })

   }

   return {
      pageInit: pageInit,
      onButtonClick: onButtonClick
   };

});   // Define

1 Ответ

0 голосов
/ 24 января 2019

Предлагаются два расширения Chrome:

  1. NetSuite Field Explorer .Это расширение покажет вам идентификаторы (и значения) всех полей в записи NetSuite.
  2. Экспорт поиска NetSuite .Это расширение преобразует / экспортирует сохраненный поиск в SuiteScript.

Для того, что вы делаете, я бы создал ваш сохраненный поиск в пользовательском интерфейсе, а затем экспортировал его с помощью расширения экспорта сохраненных поисков, вставилэто в ваш код (где s.create), и работать оттуда.

Первое расширение приятно получить к идентификаторам полей подсписка.Сохраняет поиск в браузере записей.

...