我试图获得一些关于一个项目的信息,包括项目的子公司的标志,这自然需要加入项目到附属公司。
search.lookupFields的文档说:
可以使用此方法使用联接字段查找,语法如下: join_id.field_name
因此,我适时地请求我想要的字段,包括subsidiary上的一个连接
require(['N/search'], function(search) {
var item = search.lookupFields({
type: search.Type.ITEM,
id: 2086,
columns: ['itemid', 'displayname', 'subsidiary.logo'],
});
log.debug(item);
});itemid和displayname都很好,但是当我尝试加入另一条记录时,我会得到以下错误:
{
"type":"error.SuiteScriptError",
"name":"SSS_INVALID_SRCH_COLUMN_JOIN",
"message":"An nlobjSearchColumn contains an invalid column join ID, or is not in proper syntax: logo.",
"stack":["doLookupFields(N/search/searchUtil.js)","<anonymous>(adhoc$-1$debugger.user:2)","<anonymous>(adhoc$-1$debugger.user:1)"],
"cause":{
"type":"internal error",
"code":"SSS_INVALID_SRCH_COLUMN_JOIN",
"details":"An nlobjSearchColumn contains an invalid column join ID, or is not in proper syntax: logo.",
"userEvent":null,
"stackTrace":["doLookupFields(N/search/searchUtil.js)","<anonymous>(adhoc$-1$debugger.user:2)","<anonymous>(adhoc$-1$debugger.user:1)"],
"notifyOff":false
},
"id":"",
"notifyOff":false,
"userFacing":false
}无论我尝试加入哪个记录和领域,这种情况似乎都会发生。我遗漏了什么?
发布于 2019-05-07 15:16:24
虽然您可以返回多选择字段的结果,但不能连接到由多选择字段(项记录上的辅助字段是)引用的记录中的字段。此外,您不能搜索辅助记录上的徽标字段(没有在NetSuite记录浏览器的“附属”下的搜索列中列出)。
这意味着您必须加载附属记录才能获得徽标字段。换言之:
require(['N/record', 'N/search'], function(record, search) {
var item = search.lookupFields({
type: search.Type.ITEM,
id: 2086,
columns: ['itemid', 'displayname', 'subsidiary'],
});
var subID = item.subsidiary[0].value; //internal id of *first* subsidiary
var subRec = record.load({
type: record.Type.SUBSIDIARY,
id: subID
});
var logo = subRec.getText('logo'); //gets the file name - use getValue to get its ID instead
});请注意,如果在项目上设置了多个子公司,则只会获得第一个子项目的值。如果需要,您可以遍历item.subsidiary结果来处理多个子公司的值。
发布于 2019-05-06 16:12:29
发布于 2019-05-06 16:24:28
只能连接到项搜索对象中允许的表。试着找“附属.”在UI中的“搜索结果”选项卡中。它不在那里。使用架构浏览器确定哪些字段和联接可用。
您不能像任何常规的NetSuite搜索那样想到一个SQL搜索。您必须知道哪些字段和哪些联接可以通过搜索对象使用。
https://stackoverflow.com/questions/56008402
复制相似问题