добавление префикса к заказу на продажу NetSuite - PullRequest
0 голосов
/ 22 февраля 2019

Мы пытаемся выяснить, как мы можем добавить префикс к транзакции в NetSuite при создании заказа на продажу.У нас есть человек, который написал скрипт, который работает для первого заказа, но любые заказы после этого получают подсказку с дублирующимся номером заказа, потому что NetSuite пытается назначить предыдущий автоматически сгенерированный номер, потому что технически для NetSuite этот номер никогда не использовался.Ниже приведен сценарий, написанный до сих пор, и мы собираемся посоветовать, как решить эту проблему?

function setEDIPrefix(){
    if(nlapiGetContext().getExecutionContext()=='webservices'&&nlapiGetContext().getUser()==999108){ //user 1646 is my account's SPS user internal id
       var id = nlapiGetFieldValue('tranid'); //gets value from 'document number' field
             nlapiLogExecution('DEBUG','Id: '+id);
                   nlapiSetFieldValue('tranid','EDI'+id); //appends "EDI-" prefix to the NetSuite assigned document number
                }
}   

1 Ответ

0 голосов
/ 23 февраля 2019

Я тестировал, похоже, что автоматически сгенерированный транзид увеличивается после сохранения записи, поэтому решение для вашего случая - изменить транзид в afterSubmit, а не в beforeSubmit: вы можете перезагрузить текущую запись, илилучше использовать функцию " nlapiSubmitField (тип, идентификатор, поля, значения, doSourcing) ".

Примечание: пришло время начать использовать SS2.0:)

Попробуйте этот код:

if(type == 'create' && nlapiGetContext().getExecutionContext()=='webservices' && nlapiGetContext().getUser() == 999108){ //user 1646 is my account's SPS user internal id
      var id = nlapiGetFieldValue('tranid'); //gets value from 'document number' field
      nlapiLogExecution('DEBUG','Id: '+id);

      nlapiSubmitField(nlapiGetRecordType(), nlapiGetRecordId(), 'tranid', 'EDI' + id);
  }

Я добавил тест на тип операции: обновление необходимо выполнять только при создании.

...