SuiteTalk 経由でマージ プロセスを実行することはできません。
目標を達成するには、いくつかの方法があります。私の考えでは、最も簡単なことは、顧客に「マスターへのマージ」を示すカスタム フィールドを作成し、スケジュール スクリプトを実行してそのフィールドに値を持つ顧客をチェックし、マスターへのマージ プロセスを実行することです。
だから基本的に:
- マスター レコードへの参照を保持するカスタム フィールドを作成する
- SuiteTalk を介して、マージされる複製のそのフィールドを更新します
- そのフィールドが入力されているかどうかをチェックするスケジュールされたスクリプトを作成します。スクリプトが見つかった場合、マージ ジョブが設定されます。
これが機能するために、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);
}
}