SuiteScript: Как работает динамический режим nlobjColumn.setURL?

В NetSuite у меня есть сценарий поиска транзакций, который должен возвращать результаты нескольких различных типов транзакций. Затем результаты отображаются в файле nlobjList. Я хотел бы, чтобы один из столбцов указанного списка был ссылкой на транзакцию, которую представляет строка списка.

Во всех примерах NetSuite это делается примерно так:

var column = list.addColumn('number', 'text', 'Number', 'left');
column.setURL(nlapiResolveURL('RECORD','salesorder'));
column.addParamToURL('id','id', true);

К сожалению, transaction не является приемлемым типом записи для передачи в nlapiResolveURL, поэтому мне нужно будет динамически определять тип записи для каждой строки. Функция setURL принимает второй логический параметр, который делает ее динамической для каждой строки, но я не уверен, как это на самом деле работает. Примеров нет, и JSDocs не объясняет его использование.

Есть ли у кого-нибудь рекомендации по созданию списка с динамическими URL-адресами в NetSuite?


person erictgrubaugh    schedule 24.03.2014    source источник
comment
Я также не мог понять, как может работать динамический флаг, поэтому я просто жестко запрограммировал общий путь транзакции… column.setURL('/app/accounting/transactions/transaction.nl');   -  person Aaron Hinni    schedule 09.07.2014


Ответы (2)


Если вы установите для аргумента dynamic значение true, то первым аргументом должен быть столбец, указанный в источнике данных, который будет содержать базовый URL-адрес.

column.setURL('base_url', true);
column.addParamToURL('id','id', true);

Затем в каждой записи ваших результатов убедитесь, что у вас есть base_url, который установлен на URL-адрес, который вы ищете.

Обратите внимание, что в следующем примере предполагается обычный объект JavaScript вместо объекта результатов поиска.

rec.base_url = nlapiResolveURL('RECORD', rec.type)
person Aaron Hinni    schedule 09.07.2014

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

Поле, которое вам нужно получить, это recordtype. Пример кода ниже.

var recs = nlapiSearchRecord('transaction',null,null,new nlobjSearchColumn('recordtype'));
for(var i in recs) 
   url = nlapiResolveURL('RECORD',recs[i].getValue('recordtype'));
person Saqib    schedule 25.03.2014
comment
У меня нет результатов поиска, когда я создаю nlobjList, поэтому я не могу проверить их на наличие типов записей. Я также не могу переопределить базовый URL-адрес для nlobjColumn, так как обрабатываю результаты. Базовый URL-адрес для столбца списка задается во время построения списка с помощью функции nlobjColumn.setURL. Эта функция имеет динамический режим, который, по-видимому, вычисляет базовый URL-адрес для каждой строки, что мне и нужно, но я не могу определить, как это работает. Вот в чем вопрос - как nlobjColumn.setURL функционирует динамически? - person erictgrubaugh; 25.03.2014