繁体   English   中英

如何使用 Suitescript 2.0 在 Netsuite 中获取已删除记录的 ID?

[英]How to get id of deleted records in Netsuite using Suitescript 2.0?

我可以使用以下脚本从 Netsuite 中删除记录。 但我无法获得身份证。

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?

该信息在内部搜索中不可用。

不过,您可以通过几种不同的方式获得。

它在 SuiteTalk 中使用 getDeleted 操作可用

它可以通过使用 SuiteConnect(ODBC、JDBC 或 ADO.net)的外部数据库查询获得

如果你可以从现在开始,一个简单的黑客如下:

创建一个在创建记录时运行的提交后用户事件脚本。 如果记录没有外部 id,则将命名空间的 netsuite 内部 id 推送到该字段中。 我发现用原始系统作为外部 ID 的前缀通常是个好主意。

现在您可以从外部 id 派生您的内部 id。 如果您也有实际的 externalid,但可能适合您的用例,这无济于事。

您还可以相当轻松地推出自己的并创建提交后用户事件脚本,该脚本使用已删除记录的类型和内部 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 记录浏览器,只有“externalid”可用。 有时在我的系统中外部和内部 ID 是相同的; 不确定您对 NetSuite 的具体设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM