1

我正在尝试找到一种方法来合并 NetSuite 中的两个客户记录。我们的 NetSuite 数据从 SQL Server 数据库同步,有时两个客户帐户会在那里合并。我需要将这一点反映在 NetSuite 中。我看到 NetSuite 界面中有一些重复检测和合并可用。是否可以通过网络服务调用启动客户合并?我正在使用 C# 和自定义 SuiteTalk 应用程序将数据移动到 NetSuite。

编辑:或者,使旧客户帐户成为新帐户的子客户可能会起作用。有没有人通过网络服务做到这一点?

4

1 回答 1

0

您无法通过 SuiteTalk 运行合并过程。

有几种方法可以实现您的目标。在我看来,最简单的事情是在客户上创建一个自定义字段,指示“合并到主控”,然后运行计划脚本来检查具有该字段值的客户并运行合并到主控流程。

所以基本上:

  1. 创建一个包含对主记录的引用的自定义字段
  2. 通过 SuiteTalk 更新待合并副本上的该字段
  3. 创建一个计划脚本来检查该字段是否被填充;当找到该脚本时,将设置一个合并作业

您不必在您的 Netsuite 帐户中打开重复检测功能即可。可以通过套件脚本访问合并引擎。下面的函数获取主记录和重复记录的内部 id 并设置合并作业:

function queueMerge(masterId, mergeId) {
    try {
        var manager = nlapiGetJobManager('DUPLICATERECORDS');

        var dupeJob = manager.createJobRequest();

        dupeJob.setEntityType(dupeJob.ENTITY_CUSTOMER);
        dupeJob.setMasterSelectionMode(dupeJob.MASTERSELECTIONMODE_SELECT_BY_ID);
        dupeJob.setMasterId(masterId);
        dupeJob.setOperation(dupeJob.OPERATION_MERGE);
        dupeJob.setRecords([masterId, mergeId]);

        var jobId = manager.submit(dupeJob);
        nlapiLogExecution("DEBUG", "setup merge for " + mergeId + " with " + jobId);
    } catch (e) {
        nlapiLogExecution("ERROR", "on merge for " + mergeId, e);
    }
}
于 2016-04-14T16:59:56.087 回答