【问题标题】:Create Customer Deposit from Sales Order Suitelet 2.0从销售订单套件 2.0 创建客户存款
【发布时间】:2018-11-03 18:56:13
【问题描述】:

我需要在 SuiteScript 2.0 的用户事件 AfterSubmit 函数中从销售订单创建客户存款,我需要将销售订单链接到客户存款salesorder 字段中。我收到以下错误:

"type":"error.SuiteScriptError","name":"INVALID_FLD_VALUE","message":"You have entered an Invalid Field Value 123456 for the following field: salesorder",

另请注意,当我在未设置该字段的情况下创建客户存款时,GUI 的该字段中没有出现 SO。我正在努力自动化创建销售订单并从“保存”按钮旁边的下拉菜单中选择“保存”和“创建存款”的手动过程。

有什么想法吗?

function afterSubmit(context) {
    // Only run on creation of Sales Orders
    if (context.type !== context.UserEventType.CREATE) return;
    var newSO = context.newRecord;
    var sales_order = newSO.id
    var newDeposit = record.create({
        type: record.Type.CUSTOMER_DEPOSIT,
        isDynamic: true,
        defaultValues: {
            entity: customer
        }
    })
    if (sales_order) {
        newDeposit.setValue({
            fieldId: 'salesorder',
            value: sales_order
        })
    }
}

【问题讨论】:

  • 也许 [sales_order] 因为它是一个选择字段? (尚未处理客户存款)

标签: netsuite suitescript2.0


【解决方案1】:

在SS1.0中方式如下。 soId 是销售订单的内部 id:

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

由于您在提交事件后处于销售订单中,您只能输入 == 'create',因此您必须有一个 newSO,因此以下内容应该可以工作:

function afterSubmit(context) {
    // Only run on creation of Sales Orders
    if (context.type !== context.UserEventType.CREATE) return;
    var newSO = context.newRecord;
    var newDeposit = record.create({
        type: record.Type.CUSTOMER_DEPOSIT,
        isDynamic: true,
        defaultValues: {
            entity: newSO.getValue({fieldId:'entity'}),
            salesorder: newSO.id
        }
    });

}

【讨论】:

  • 我添加了以下行,它表明 salesorder 字段未设置。类似的调试行显示其他字段集,例如客户和 cczipcode。只是 salesorder 是空白的。 log.debug("newDeposit: salesorder", newDeposit.getValue({ fieldId: 'salesorder' }))
  • 如果您保存押金会怎样?你确定你处于 afterSubmit 阶段吗?
  • 如果你在创建时没有得到你期望的数据,你可以把它放在 try/catch 中,看看它是否抛出错误。 save() 也可以这样做
【解决方案2】:

尝试通过 UI 模拟您的脚本所做的事情。您可以在创建客户存款时选择销售订单吗?如果您无法在 UI 中选择销售订单,大多数情况下您将无法通过脚本来完成。

【讨论】:

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