javascript - NetSuite 搜索返回 0 个结果

标签 javascript netsuite suitescript

我正在尝试阻止根据搜索结果创建记录。尽管我知道数据确实存在,但我似乎无法通过我的 SuiteScript 搜索返回任何数据。

我创建了一个自定义保存的搜索,其中使用了下面使用的精确过滤器,并返回了我正在查找的结果。

有什么明显的原因可以解释为什么我无法检索到任何结果吗?

注意:sfdcAccountId 变量确实有一个值,因此我正在搜索有效值。

// 2.0
define(["N/error", "N/log", "N/search"], function (err, log, search) {

    /**
     * User Event 2.0 example showing usage of the Submit events
     *
     * @NApiVersion 2.x
     * @NModuleScope SameAccount
     * @NScriptType UserEventScript
     * @appliedtorecord customer
     */
    var exports = {};

    function beforeSubmit(scriptContext) {      
        log.debug({
            "title": "Before Submit",
            "details": "action=" + scriptContext.type
        });

        if (doesCustomerExist(scriptContext)) {
            throw err.create({
                "name": "DUPLICATE_SFDC_ACCOUNT_ID",
                "message": "Customer Already Contains SFDC Account Id",
                "notifyOff": true
            });
        }
    }

    function doesCustomerExist(scriptContext) {
        var sfdcAccountId = scriptContext.newRecord.getValue('custentitysfdc_account_id');
        log.debug({
            "title": "Before Submit",
            "details": "sfdcAccountId=" + sfdcAccountId
        });

        if(sfdcAccountId == null || sfdcAccountId == '') return false;

        var searchResult = search.create({
                                            type: search.Type.CUSTOMER,
                                            filters: ['custentitysfdc_account_id', search.Operator.IS, sfdcAccountId]
                                        }).run();

        return (searchResult != null && searchResult.length > 0);
    }

    exports.beforeSubmit = beforeSubmit;
    return exports;
});

最佳答案

当您在搜索上调用 .run() 时,它会返回一个 search.ResultSet 对象。如果您对该对象调用 getRange(),您将获得您正在查找的结果数组。这是搜索的更新版本,它返回 search.Result[],您可以在其中检查长度或根据需要进行迭代。

var searchResult = search.create({
    type: search.Type.CUSTOMER,
    filters: ['custentitysfdc_account_id', search.Operator.IS, sfdcAccountId]
}).run().getRange({start: 0, end: 1000});

关于javascript - NetSuite 搜索返回 0 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43142262/

相关文章:

javascript - 指定变量类型可以是两个值中的任意一个

javascript - 有没有办法使用 JavaScript 或 ajax 在浏览器中导入 SSL 证书?

javascript - SuiteScript 2.0 在提交之前更新自定义行字段

javascript - Suitescript 返回所选项目的 vendor 价格

javascript - 使用 javascript/jQuery 更改 JSON 数据的图像源

javascript - jS 代码不工作,不显示总数

netsuite - 在 SuiteScript 2.0 中加载自定义记录

javascript - Netsuite Suitescript API - 搜索交易记录返回重复项

NetSuite:如何使用高级 PDF/HTML 模板引用分组发票中的自定义字段

netsuite - 查看客户时如何使用 Suitescript 获取当前在 Netsuite 中登录的员工详细信息?