【问题标题】:netsuite transform a sales order to cash salenetsuite 将销售订单转换为现金销售
【发布时间】:2016-01-21 15:46:14
【问题描述】:

我正在尝试使用 nlapiTransformRecord 将 netsuite 中的销售订单转换为现金销售。根据文档,这应该是可行的,因为它是允许的转换,但我在任何地方都找不到这种特定转换的示例。 这是我正在尝试做的一个示例。

var int = 123456;
var rec = nlapiLoadRecord('salesorder', int);
rec.setFieldValue('customform', 123);

首先加载一条记录。现在根据文档,我在销售订单上没有的现金销售唯一需要的字段是发布期。我尝试过设置此字段和不设置此字段均无济于事。此外,customform 只是一个现金销售自定义表单。显然 id 不是真实的。

rec.setFieldValue('postingperiod', 58);
var cash = nlapiTransformRecord('salesorder', int, 'cashsale', {'postingperiod': 58});

现在我已经尝试设置 postperiod 值并将其设置为转换的默认值,并且两者都返回 That is not a valid record transformation。无论如何,这是关于它的转换文档的行是标准转换。

Record Type   Record Name     Transform Type    Transform Name (Target Record)
salesorder    Sales Order     cashsale          Cash Sale

【问题讨论】:

    标签: netsuite suitescript


    【解决方案1】:

    您收到超级有用的“这不是有效的记录转换”错误,因为您的销售订单上的付款方式不是“现金”类型,即净额。因此,您无法将其转换为现金销售。将付款方式更改为“现金”类型或转换为发票。您可以通过按下 UI 中 SO 的账单按钮来测试 NS 如何天真地处理它。除了你的代码/其他建议是正确的。

    【讨论】:

    • 这是问题中提到的错误最可能的原因。
    【解决方案2】:

    你可以这样做:

    var cash = nlapiTransformRecord('salesorder', int, 'cashsale'); // can initialize with {customform:formId} 
    cash.setFieldValue('postingperiod', 58); // assuming 58 is the internal id of an open period
    nlapiSubmitRecord(cash);
    

    【讨论】:

      【解决方案3】:

      销售订单是非过账交易,所以,下面的代码不会有任何影响

      var int = 123456;
      var rec = nlapiLoadRecord('salesorder', int);
      rec.setFieldValue('customform', 123);
      

      NetSuite 会根据交易日期自动设置过帐周期,因此在大多数情况下您无需显式设置。

      var cash = nlapiTransformRecord('salesorder', int, 'cashsale');
      

      如果你真的需要修改发布周期,我建议你在动态模式下转换记录,然后设置 trandate,因为 NetSuite 会自动拉取合适的发布周期。

      var cash = nlapiTransformRecord('salesorder', int, 'cash sale', {'recordmode': 'dynamic'});
      cash.setFieldValue('trandate', APPROPRIATE_TRANDATE_VALUE);
      nlapiSubmitRecord(cash);
      

      【讨论】:

      • 实际上,您可以覆盖独立于传输日期的过帐期间。不是最佳做法,但肯定是可行的。
      • 同意。对于脚本解决方案,我总是更喜欢设置 trandate 并让 NetSuite 设置 postingperiod 而不是硬编码 postingperiod
      【解决方案4】:

      好吧,原来我们中国办公室的一个人已经禁用了他正在运行的脚本以某种方式允许的转换。所以这很有趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-01
        相关资源
        最近更新 更多