1

NetSuite で 2 つの顧客レコードをマージする方法を見つけようとしています。当社の NetSuite データは SQL Server データベースから同期され、2 つの顧客アカウントがそこにマージされることがあります。これを NetSuite に反映させる必要があります。NetSuite インターフェースで重複検出とマージが利用できるようです。Web サービス呼び出しを介して顧客のマージを開始することは可能ですか? C# とカスタムの SuiteTalk アプリを使用して、データを NetSuite に移動しています。

編集: または、古い顧客アカウントを新しいアカウントのサブ顧客にすることもできます。誰かがWebサービスを介してこれを行いましたか?

4

1 に答える 1

0

SuiteTalk 経由でマージ プロセスを実行することはできません。

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

だから基本的に:

  1. マスター レコードへの参照を保持するカスタム フィールドを作成する
  2. SuiteTalk を介して、マージされる複製のそのフィールドを更新します
  3. そのフィールドが入力されているかどうかをチェックするスケジュールされたスクリプトを作成します。スクリプトが見つかった場合、マージ ジョブが設定されます。

これが機能するために、Netsuite アカウントで重複検出を有効にする必要はありません。マージ エンジンは suitescript 経由でアクセスできます。以下の関数は、マスター レコードと複製レコードの内部 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 に答える