如何将nlobjColumn的动态模式.setURL工作

SuiteScript: How does the dynamic mode of nlobjColumn.setURL work?

本文关键字:模式 setURL 工作 动态 nlobjColumn      更新时间:2023-09-26

在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也没有解释它的用法。

有没有人对在NetSuite中生成动态url列表有任何指导?

如果将dynamic参数设置为true,则第一个参数应该是数据源中列出的包含基本URL的列。

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

然后,在结果的每个记录上,确保您有一个base_url,设置为您正在寻找的url。

注意,下面的例子假设一个普通的javascript对象而不是搜索结果对象。

rec.base_url = nlapiResolveURL('RECORD', rec.type)

事务字段只是所有事务类型的抽象。你可以搜索,但不能加载。

需要检索的字段是recordtype。示例代码如下:

var recs = nlapiSearchRecord('transaction',null,null,new nlobjSearchColumn('recordtype'));
for(var i in recs) 
   url = nlapiResolveURL('RECORD',recs[i].getValue('recordtype'));