NetSuite - SuiteTalk - 合并客户

时间:2016-04-13 22:42:31

标签: c# netsuite suitetalk

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

编辑:或者,它可能会使旧客户帐户成为新帐户的子客户。有人通过网络服务做过这个吗?

1 个答案:

答案 0 :(得分:0)

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

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

基本上是这样的:

  1. 创建一个自定义字段,其中包含对主记录的引用
  2. 通过SuiteTalk
  3. 更新要合并的副本上的字段
  4. 创建一个预定脚本,检查正在填充的字段;当发现脚本将设置合并作业时
  5. 您无需在Netsuite帐户中启用重复检测即可生效。合并引擎可通过suitescript访问。下面的函数获取主记录和重复记录的内部标识,并设置合并作业:

    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);
        }
    }