为NetSuite销售订单tranid添加前缀

问题描述 投票:1回答:1

我们试图找出在创建销售订单时如何在NetSuite中为tranid添加前缀。我们有一个人编写了一个适用于第一个订单的脚本,但之后的任何订单都会出现重复的订单号提示,因为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
                }
}   
netsuite suitescript
1个回答
1
投票

我测试过,似乎保存记录后自动生成的tranid会递增,所以你的情况的解决方案是改变afterSubmit中的tranid而不是beforeSubmit:你可以重新加载当前记录,或者更好地使用“nlapiSubmitField(type, id, fields, values, 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);
  }

我在操作类型上添加了一个测试:您只需要在创建时进行更新。

© www.soinside.com 2019 - 2024. All rights reserved.