如何解决如何使用Suitescript 2.0获取Netsuite中已删除记录的ID?
我可以使用以下脚本从Netsuite中删除记录。 但我无法获得ID。
var customSearch = search.create({
type: "deletedrecord",columns: ["context","deletedby","deleteddate","externalid","name"],filters: [
["recordtype","is","customer"]
]
});
var resultSet = customSearch.run().getRange({
start: 0,end: 5
});
如何使用Suitescript 2.0从Netsuite获取已删除记录的唯一ID?
解决方法
内部搜索无法获得该信息。
不过,您可以通过几种不同的方式来获得。
使用getDeleted操作在SuiteTalk中可用
可以通过使用SuiteConnect(ODBC,JDBC或ADO.net)的外部数据库查询来获得
如果您可以立即开始,请按以下步骤操作:
创建在创建记录时运行的“提交后用户事件”脚本。如果记录没有外部ID,则将命名空间的netsuite内部ID推入该字段。我发现通常最好将外部ID加上来源系统。
现在,您可以从外部ID派生内部ID。如果您也有实际的外部标识,但可能适合您的用例,则无济于事。
您还可以相当容易地滚动自己的脚本,并创建一个提交后用户事件脚本,该脚本将使用已删除记录的类型和内部ID填充自定义记录。通常这就是我要走的路。特别是如果您要从删除数据中驱动Netsuite帐户中的其他套件脚本或工作流
最后,尽管我已经好几年没有这样做了,但很有可能从SuiteScript运行SuiteTalk查询。您只需要保存凭据(不是明文)并构造适当的SOAP消息即可。
,Suite Answer Id: 69458 表明以下方法可行:
var deletedRecords = search.create({
type: "deletedrecord",filters:[
["deleteddate","within","today"]
],columns:[
search.createColumn({name: "externalid"}),search.createColumn({name: "deleteddate"}),search.createColumn({name: "deletedby"}),search.createColumn({name: "context"}),search.createColumn({name: "name"})
]
});
var searchResultCount = deletedRecords.runPaged().count;
log.debug("deletedRecords result count",searchResultCount);
deletedRecords.run().each(function(result){
// .run().each has a limit of 4,000 results
return true;
});
根据 2020.2 Records Browser 只有“externalid”可用。有时在我的系统中外部和内部 ID 是相同的;不确定您对 NetSuite 的具体设置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。