SuiteScript 在不加载主记录的情况下拉取子列表?
SuiteScript pull sublist without loading main record?
我想知道是否可以在不加载主记录的情况下拉出子列表。当我只需要子列表并且我没有通过保存的搜索取回子列表时,这似乎很浪费。 search.lookupFields 只允许访问非常接近的正文字段。我想提取一个特定的子列表,这可能吗?在此先感谢您的帮助。
NetSuite 中的子列表实际上是通过某些字段链接的记录(如 SQL 中的连接)。话虽如此,您可以在 search.createFilter、search.createColumn、[=13= 中使用 join 属性 ]searchResult.getValue 等并将公共字段传递给它,而名称参数将包含您要获取其值的字段的 fieldId。
例如,要从销售订单中获取商品数据,您可以运行以下代码
var salesOrderSearchResult = search.create({
type: 'transaction,
filters: search.createFilter({
name: 'internalid',
join: 'item',
operator: 'is',
values: ITEM_INTERNAL_ID
}),
columns: search.createColumn({ name: 'itemid', join: 'item' })
}).run().getRange({ start: 0, end: 100 });
// to fetch results
salesOrderSearchResult.forEach(function (searchResult) {
var itemId = searchResult.getValue({ name: 'itemId' ,join: 'item' });
})
我想知道是否可以在不加载主记录的情况下拉出子列表。当我只需要子列表并且我没有通过保存的搜索取回子列表时,这似乎很浪费。 search.lookupFields 只允许访问非常接近的正文字段。我想提取一个特定的子列表,这可能吗?在此先感谢您的帮助。
NetSuite 中的子列表实际上是通过某些字段链接的记录(如 SQL 中的连接)。话虽如此,您可以在 search.createFilter、search.createColumn、[=13= 中使用 join 属性 ]searchResult.getValue 等并将公共字段传递给它,而名称参数将包含您要获取其值的字段的 fieldId。 例如,要从销售订单中获取商品数据,您可以运行以下代码
var salesOrderSearchResult = search.create({
type: 'transaction,
filters: search.createFilter({
name: 'internalid',
join: 'item',
operator: 'is',
values: ITEM_INTERNAL_ID
}),
columns: search.createColumn({ name: 'itemid', join: 'item' })
}).run().getRange({ start: 0, end: 100 });
// to fetch results
salesOrderSearchResult.forEach(function (searchResult) {
var itemId = searchResult.getValue({ name: 'itemId' ,join: 'item' });
})