【问题标题】:SSS_INVALID_SRCH_FILTER_JOIN when using filter expression on joined custom fieldSSS_INVALID_SRCH_FILTER_JOIN 在连接的自定义字段上使用过滤器表达式
【发布时间】:2017-01-05 21:07:32
【问题描述】:

SuiteScript v1.

搜索项目记录类型。

customrecord_sp_ecom_item_infoseo 是一种自定义记录类型,其中包含一个名为 custrecord_sp_ecom_item_seo 的字段,该字段引用项目记录。它还有一个名为 custrecord_sp_ecom_description 的字段,属于文本类型。

我想在链接的 customrecord_sp_ecom_item_infoseo 记录中搜索 custrecord_sp_ecom_description 中出现“冻结”一词的项目,并且我想使用过滤表达式。

这是我的表达方式:

[
    [
      "customrecord_sp_ecom_item_infoseo.custrecord_sp_ecom_description",
      "contains",
      "frozen"
    ]
]

这是我得到的错误:

{"error" : {"code" : "SSS_INVALID_SRCH_FILTER_JOIN", "message" : "一个 nlobjSearchFilter 包含无效的连接 ID,或者语法不正确:custrecord_sp_ecom_description。"}}

如果我将表达式更改为:

[
    [
        "isonline",
        "is",
        true
    ]
]

然后它工作正常,尽管结果错误。所以我知道过滤表达式可以工作,只是我的表达式有问题。

我怎样才能让它工作?

【问题讨论】:

    标签: netsuite suitescript


    【解决方案1】:

    当在过滤器表达式中使用点语法连接时,点的前缀是您要连接的字段的ID,而不是您要连接的记录类型的ID(如看起来你在这里)。

    所以,如果我正在搜索发票,但我想从相关的销售订单中过滤销售代表,它看起来像:

    [
      [ 'createdfrom.salesrep', 'anyof', salesReps]
    ]
    

    请注意,它不是salesorder.salesrep,而是createdfrom.salesrep,因为createdfrom 字段将我正在搜索的记录(发票)链接到我正在加入的记录(销售订单)。使用自定义记录时也是如此。您的加入将类似于custrecord_fieldid.custrecord_sp_ecom_description,而不是使用记录类型。

    【讨论】:

    • 谢谢。实际上,我通过使用 nlobjSearchFilter 和 joins 知道这一点,但从我在网上找到的示例中,我得出结论,在加入过滤器表达式时我应该使用记录类型名称。希望您的回答现在可以防止其他人重蹈我的覆辙!
    • 这样可以按客户查询发票吗?看起来发票表上的实体显示客户名称。但是,似乎返回一个数字而不是名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2021-08-16
    • 2018-09-08
    • 1970-01-01
    • 2019-10-03
    相关资源
    最近更新 更多