Search SuiteScript更新搜索结果字段

Search SuiteScript更新搜索结果字段,search,netsuite,suitescript,updating,Search,Netsuite,Suitescript,Updating,我在SuiteScript2.0中进行了搜索,搜索效果很好。但是对于搜索返回的每个记录,我想更新一个特定字段(我在其他地方使用它来确定该记录已被检查)。这可能是一个非常大的结果集,因此我必须对其进行分页。这是我的密码: var sResult = mySearch.runPaged({pageSize: 10}); for (var pageIndex = 0; pageIndex < sResult.pageRanges.length; pageIndex++) { var s

我在SuiteScript2.0中进行了搜索,搜索效果很好。但是对于搜索返回的每个记录,我想更新一个特定字段(我在其他地方使用它来确定该记录已被检查)。这可能是一个非常大的结果集,因此我必须对其进行分页。这是我的密码:

var sResult = mySearch.runPaged({pageSize: 10});
for (var pageIndex = 0; pageIndex < sResult.pageRanges.length; pageIndex++) 
{
    var searchPage = sResult.fetch({ index: pageRange.index });

    searchPage.data.forEach(function (result) 
    {
        var name = result.getValue({ name: "altname"})
        
        result.setValue({
                          name: 'tracker',
                          value: new Date()
        })
    });
}             
var sResult=mySearch.runPaged({pageSize:10});
对于(var pageIndex=0;pageIndex
您可以看到我在哪里调用了
result.setValue()
,这是一个不存在的函数。但它显示了我想更新“跟踪器”字段的位置以及我想使用的数据


我是不是完全找错人了?如何更新每个返回结果的字段?

如果不能直接更新搜索结果并将值写回记录,则需要先加载记录。代码段没有说明您正在搜索或要加载的记录类型,但总体思路是(代替result.setValue行):


请记住SuiteScript治理和您修改的记录数。加载和保存太多,脚本将比预期提前终止。

如果无法直接更新搜索结果并将值写回记录,则需要先加载记录。代码段没有说明您正在搜索或要加载的记录类型,但总体思路是(代替result.setValue行):


请记住SuiteScript治理和您修改的记录数。加载并保存太多,脚本将比预期提前终止。

正如Simon所说,您不能直接更新搜索结果,但可以使用submitFields方法

此示例来自NetSuite文档:

var otherId = record.submitFields({ 
    type: 'customrecord_book', //record Type
    id: '4', // record Id
    values: {
        'custrecord_rating': '2'
    }
});

这种方法保存的治理比加载和保存记录要多。

正如Simon所说,您不能直接更新搜索结果,但可以使用submitFields方法

此示例来自NetSuite文档:

var otherId = record.submitFields({ 
    type: 'customrecord_book', //record Type
    id: '4', // record Id
    values: {
        'custrecord_rating': '2'
    }
});

这种方法将保存比加载和保存记录更多的治理。

糟糕的设计:不要在迭代中使用result.setValue,而是将它们推到“更新”数组,然后在数据之后。forEach还有另一个函数,该函数循环通过更新数组,并使用record.submitFields()在那里处理它们


小心治理……

糟糕的设计:不要在迭代中使用结果。setValue将它们推到“更新”数组中,然后在数据之后。forEach还有另一个函数,它循环通过更新数组,并在其中使用record处理它们。submitFields()


注意治理……

文档中说“使用此方法时,不需要加载或提交父记录”。但是我仍然需要加载记录来获取记录本身,不是吗?不是,示例代码中的记录是模块名。您不必加载记录。文档中说“当您使用此方法时,您不需要加载或提交父记录”。但是我仍然需要加载记录来获取记录本身,不是吗?不是,示例代码中的记录是模块名。你不必加载记录。