Циклическое прохождение по группе в Suitescript 2.0

#suitescript2.0

#suitescript2.0

Вопрос:

Я передаю заказы на продажу, сгруппированные по элементам, в функцию. Мне нужно загрузить заказы на продажу, чтобы изменить запись заказа на продажу, чтобы она уже была обработана. Как мне получить все заказы на продажу, сгруппированные по товару?

 var itemId = result.getValue({
                name: 'item',
                summary: 'GROUP'
            });
 

Приведенный выше код дает мне идентификатор товара, по которому группируются заказы в данном результате. В одной группе может быть любое количество продаж.

Ответ №1:

Выполнение сгруппированного сохраненного поиска в SuiteScript не дает вам возможности «детализировать», как вы можете при выполнении аналогичного поиска в пользовательском интерфейсе. Как только у вас есть сводные критерии для любого столбца в сохраненном поиске, Netsuite требует, чтобы все ваши столбцы были суммированы. Если вы хотите получить внутренние идентификаторы для заказов на продажу, то они должны быть возвращены в виде сводного столбца в сохраненном коде поиска.

Что-то вроде этого:

 const searchObj = search.create({
  type: search.Type.SALES_ORDER,
  filters: [
    ['mainline', 'is', 'F']
    //,'AND', any other filters you need...
  ],
  columns: [
    search.createColumn({
      name: "item",
      summary: "GROUP"
    }),
    search.createColumn({
      name: "formula(text)",
      summary: "MAX",
      formula: "ns_concat({internalid})"
    })
  ]
}).run().each(function(result) {
  const itemId = result.getValue({name: "item", summary: "GROUP"})
  const salesOrderIds = result.getValue({
    name: "formula(text)",
    summary: "MAX",
    formula: "ns_concat({internalid})"
  }).split(',')
  
  return true
})