Я тестировал, похоже, что автоматически сгенерированный транзид увеличивается после сохранения записи, поэтому решение для вашего случая - изменить транзид в 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);
}
Я добавил тест на тип операции: обновление необходимо выполнять только при создании.