NetSuite - SuiteTalk - объединение клиентов

Я пытаюсь найти способ объединить две записи о клиентах в NetSuite. Наши данные NetSuite синхронизируются из базы данных SQL Server, и иногда там объединяются две учетные записи клиентов. Мне нужно, чтобы это отразилось в NetSuite. Я вижу, что в интерфейсе NetSuite есть возможность обнаружения и слияния дубликатов. Можно ли начать слияние клиентов с помощью вызова веб-службы? Я использую C # и настраиваемое приложение SuiteTalk для перемещения данных в NetSuite.

Изменить: в качестве альтернативы можно сделать старую учетную запись клиента субподрядчиком новой учетной записи. Кто-нибудь делал это через веб-сервисы?


person melicent    schedule 13.04.2016    source источник


Ответы (1)


Вы не можете запустить процесс слияния через SuiteTalk.

Есть несколько способов достичь поставленной цели. На мой взгляд, проще всего было бы создать настраиваемое поле для клиента, которое указывает «слияние с основным», а затем запустить сценарий расписания для проверки клиентов со значениями в этом поле и запустить слияние с основным процессом.

Итак, в основном:

  1. создать настраиваемое поле, содержащее ссылку на основную запись
  2. обновить это поле на дубликате, который будет объединен, через SuiteTalk
  3. создать запланированный сценарий, который проверяет заполнение этого поля; при обнаружении скрипт настроит задание слияния

Вам не обязательно включать обнаружение дубликатов в вашей учетной записи 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);
    }
}
person bknights    schedule 14.04.2016
comment
Не могли бы вы ответить на мой вопрос: stackoverflow.com/questions/58181928/ - person ankit; 01.10.2019