创建customerdeposit记录时的Netsuite错误

时间:2016-10-12 09:36:05

标签: netsuite suitescript

我正尝试使用suitecript 1.0在Netsuite中创建客户存款记录。

我在2016年2月发布之前一直工作的原始代码打破了它。

更新打破了它,因为它会覆盖付款字段中提交的值,并立即从销售订单ID中将其作为销售订单的全部金额。这不是我们需要做的事情。

原始代码

function createDeposit(request,response)
{
    var record = nlapiCreateRecord('customerdeposit');  
        record.setFieldValue('salesorder','1260');
        record.setFieldValue('customer','1170');
        record.setFieldValue('payment','100');
        record.setFieldValue('account','2');
        record.setFieldValue('memo','this is a test');
        deposit = nlapiSubmitRecord(record,true,false);
        response.write(deposit);
}

在Netsuite用户组的回复提示我使用{recordmode:'dynamic'}属性后,我收到一个奇怪的错误..

不起作用的测试替换功能

function createDeposit(request,response)
{
    var record = nlapiCreateRecord('customerdeposit',{recordmode:'dynamic'});   
        record.setFieldValue('salesorder','1260');
        record.setFieldValue('customer','1170');
        record.setFieldValue('payment','100');
        record.setFieldValue('account','2');
        record.setFieldValue('memo','this is a test');
        deposit = nlapiSubmitRecord(record,true,false);
        response.write(deposit);
}

我现在收到的错误消息是

客户的无效销售订单参考密钥1260。

当我应用{recordmode:'dynamic'}值后,将值硬编码到此测试脚本中时,我得到的是它现在被认为是NULL的方式。

我尝试了各种各样的东西,但由于我没有Netsuite支持,它证明是我根本无法弄清楚的。

任何提示,建议都会非常感激,因为我已经在这几天了

1 个答案:

答案 0 :(得分:1)

当您使用动态订单时,您设置的字段会有所不同。因此,当您在设置客户之前设置销售订单时,您实际上会收到错误消息"无效的销售订单参考密钥1260,用于客户空白"

我所做的是创建客户存款,如:

var depRec = nlapiCreateRecord('customerdeposit', {entity:soRec.getFieldValue('entity'), salesorder:soId});

还设置了未设置的资金标志似乎是必需的(但并不总是出于某种原因)所以,因为您提供的帐户ID也是这样做的:

depRec.setFieldValue('undepfunds',  'F');