首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用search.lookupFields()进行联合查找?

如何使用search.lookupFields()进行联合查找?
EN

Stack Overflow用户
提问于 2019-05-06 15:39:10
回答 5查看 2.2K关注 0票数 0

我试图获得一些关于一个项目的信息,包括项目的子公司的标志,这自然需要加入项目到附属公司。

search.lookupFields的文档说:

可以使用此方法使用联接字段查找,语法如下: join_id.field_name

因此,我适时地请求我想要的字段,包括subsidiary上的一个连接

代码语言:javascript
运行
复制
require(['N/search'], function(search) {
    var item = search.lookupFields({
        type: search.Type.ITEM,
        id: 2086,
        columns: ['itemid', 'displayname', 'subsidiary.logo'],
    });
    log.debug(item);
});

itemiddisplayname都很好,但是当我尝试加入另一条记录时,我会得到以下错误:

代码语言:javascript
运行
复制
{
  "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
}

无论我尝试加入哪个记录和领域,这种情况似乎都会发生。我遗漏了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-05-07 15:16:24

虽然您可以返回多选择字段的结果,但不能连接到由多选择字段(项记录上的辅助字段是)引用的记录中的字段。此外,您不能搜索辅助记录上的徽标字段(没有在NetSuite记录浏览器的“附属”下的搜索列中列出)。

这意味着您必须加载附属记录才能获得徽标字段。换言之:

代码语言:javascript
运行
复制
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结果来处理多个子公司的值。

票数 2
EN

Stack Overflow用户

发布于 2019-05-06 16:12:29

我相信你不能从一个查找场访问附属记录,你应该做一个适当的搜索。

2/script/记录器/item.html

票数 1
EN

Stack Overflow用户

发布于 2019-05-06 16:24:28

只能连接到项搜索对象中允许的表。试着找“附属.”在UI中的“搜索结果”选项卡中。它不在那里。使用架构浏览器确定哪些字段和联接可用。

您不能像任何常规的NetSuite搜索那样想到一个SQL搜索。您必须知道哪些字段和哪些联接可以通过搜索对象使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56008402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档