【问题标题】:Netsuite scripting 2.0Netsuite 脚本 2.0
【发布时间】:2018-08-19 18:51:14
【问题描述】:

我正在尝试将一个销售订单中项目子列表中的所有行项目复制到另一个新销售订单。我得到了所有的订单项,在设置订单项时我遵循了如下所示的顺序:

  1. 价格水平
  2. 项目
  3. 数量
  4. 金额
  5. 税号

问题是所有值都设置正确,但金额和税码字段未设置。这是设置行项目字段的正确顺序吗?如果不是,我应该遵循什么顺序才能成功提交行?

var set=currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'item',
  value:salesOrd_item[j]

});
alert('item is being set');
currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'quantity',
  value:salesOrd_quantity[j]

});
currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'units',
  value:salesOrd_units[j]

});
alert('units are being set');

currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'taxcode',
  value:salesOrd_taxcode[j]

});
currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'price',
  value:salesOrd_pricelevel[j]
});
currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'rate',
  value:salesOrd_rate[j]

});
currentRecord.setCurrentSublistValue({
  sublistId: 'item',
  fieldId: 'amount',
  value:salesOrd_amount,

});

【问题讨论】:

    标签: javascript netsuite suitescript2.0


    【解决方案1】:

    需要考虑的一点是,费率(以及金额)取决于价格水平。您不能设置价格级别,然后还设置与价格级别不同的自定义费率,NetSuite 不允许在 UI 中或通过 SuiteScript 执行此操作。如果您尝试从另一个订单中复制一行,只需复制价格水平和数量,价格和数量将自动更新。

    这导致了第二个考虑。当您在一行中填写一个字段时,通常其他字段会从属于该字段。这是异步发生的,因此如果您在 NetSuite 更新从属字段之前填写它,您的值将被覆盖。这可能发生在您的税务领域。为了避免这种情况,NetSuite 添加了一个名为 fireSlavingSync 的属性,以确保一行中的每个 setValue 都等到所有从属操作都完成后,然后再执行下一行代码。尝试编辑您的行以添加这个额外的参数,如下所示:

    currentRecord.setCurrentSublistValue({
        sublistId: 'item',
        fieldId: 'item',
        value:salesOrd_item[j],
        fireSlavingSync: true
    });
    

    【讨论】:

    • 是的,我完全按照您所说的方式处理费率和金额,但未设置税码填充:请在设置我正在尝试的所有行项目后输入税码值设置税码如代码所示:currentRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'taxcode', value:salesOrd_taxcode[j], ignoreFieldChange: false, fireSlavingSync: true }); alert('正在设置税码');
    • 那么有两个问题要问。 1.您是否将税码设置为您的最终setValue?如果没有,其他 setValues 之一可能会覆盖您的值。 2.salesOrd_taxcode[j]传递给税码字段的值是多少?您可以尝试使用硬编码值设置该字段以确保它可以工作,然后将其更改回您的代码。像这样:currentRecord.setCurrentSublistValue({ sublistId: 'item', fieldId: 'taxcode', value: 1, ignoreFieldChange: false, fireSlavingSync: true }); 但是将1 更改为您帐户中的有效税码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多