Как искать кейсы по CompanyId в Netsuite Suitescript 2.0?

Я могу искать дело по названию компании

var mySearch = search.create({
      type: search.Type.SUPPORT_CASE,
       columns: [{
          name: 'title'
      }, {
          name: 'company'
      }],
      filters: [{
          name: 'company',
          operator: 'is',
          values: 'Test'
      }]
  });
  return mySearch.run({
    ld: mySearch.id
  }).getRange({
      start: 0,
      end: 1000
  });

Но я не могу искать дело по идентификатору компании. companyId - 115

Ниже не работают

i)

filters: [{
          name: 'company',
          operator: 'is',
          values: 115
      }]

ii)

filters: [{
          name: 'companyid',
          operator: 'is',
          values: 115
      }]

person Prabhu    schedule 04.03.2019    source источник


Ответы (2)


Согласно схеме случая company - это текстовый фильтр, то есть вам нужно указать точное название компании, а не внутренний идентификатор.

Вместо этого вы можете использовать customer.internalid объединенный фильтр для предоставления внутреннего идентификатора. Кроме того, поля внутреннего идентификатора почти всегда являются полями выбора, то есть они не принимают оператор is, а вместо этого требуют оператора anyof или noneof.

Вы можете найти действительные операторы по типу поля на странице справки под названием Search Operators

person erictgrubaugh    schedule 04.03.2019
comment
Спасибо за объяснение, Эрик. Но [company.internalid, is, 115] работает - person Prabhu; 12.03.2019
comment
@Prabhu Вы уверены, что он возвращает правильные значения с помощью IS: иногда поиск не выдает ошибки, но дает неправильные результаты, если не использовать правильный оператор. В этом случае правильный оператор ANYOF. - person B. Assem; 12.03.2019
comment
да. Я уверен. Он работает с. Я тестировал контакт и поддержку. Оба вернули точные результаты - person Prabhu; 12.03.2019

Во-первых, вы можете попробовать это:

var supportcaseSearchObj = search.create({
   type: "supportcase",
   filters:
   [
      ["company.internalid","anyof","100"]
   ],
   columns:
   [
      search.createColumn({
         name: "casenumber",
         sort: search.Sort.ASC
      }),
      "title",
      "company",
      "contact",
      "stage",
      "status",
      "profile",
      "startdate",
      "createddate",
      "category",
      "assigned",
      "priority"
   ]
});

Во-вторых: как я это получил? Ответ - подсказка, которая облегчит вам жизнь:

  1. Установите Chrome-плагин "NetSuite Saved Search Code Export".
  2. В пользовательском интерфейсе Netsuite создайте сохраненный поиск (это всегда проще сделать в коде).
  3. После сохранения результатов поиска откройте его снова для редактирования.
  4. В правом верхнем углу (рядом со списком, меню поиска на странице netsuite) вы увидите ссылку «Экспортировать как скрипт»: нажмите на нее, и вы получите свой код;)

Если вы не можете установить плагин Chrome:

  1. В пользовательском интерфейсе Netsuite создайте сохраненный поиск (это всегда проще сделать в коде).
  2. В коде загрузите сохраненный поиск
  3. Добавьте log.debug, чтобы отобразить [loadedesearchVar].filters
  4. Затем вы можете скопировать то, что увидите в журнале, чтобы использовать его в качестве поисковых фильтров.

Удачи!

person B. Assem    schedule 06.03.2019
comment
Спасибо, что предоставили более подробную информацию Assem - person Prabhu; 12.03.2019