2016-04-13 105 views
1

NetSuiteで2つの顧客レコードをマージする方法を探しています。私たちのNetSuiteデータはSQL Serverデータベースから同期され、そこに2つの顧客アカウントが併合されることがあります。これをNetSuiteに反映する必要があります。私はNetSuiteインターフェイスでいくつかの重複した検出とマージが利用できることを知っています。 Webサービス呼び出しで顧客のマージを開始することは可能ですか?私はC#とカスタムSuiteTalkアプリケーションを使ってデータをNetSuiteに移動しています。NetSuite - SuiteTalk - マージ顧客

編集:代わりに、古い顧客アカウントを新しいアカウントのサブ顧客にすることができます。誰もwebservices経由でこれをやったことがありますか?

答えて

0

マージプロセスはSuiteTalk経由では実行できません。

あなたの目標を達成するにはいくつかの方法があります。私の考えでは、最も簡単なことは、顧客に "マスタにマージ"を示すカスタムフィールドを作成し、そのフィールドの値を持つ顧客をチェックし、マスタプロセスへのマージを実行するスケジュールスクリプトを実行することです。

だから、基本的には:SuiteTalk経由

  1. は-なるようにマージされ、重複のマスターレコード
  2. 更新そのフィールドへの参照を保持しているカスタムフィールドを作成
  3. はその予定のスクリプトを作成しますそのフィールドが設定されているかどうかをチェックします。スクリプトが見つかると、マージジョブが設定されます

Netsuiteアカウントで重複検出機能を有効にする必要はありません。マージエンジンはsuitscriptでアクセスできます。以下の関数は、マスタの内部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); 
    } 
} 
関連する問題