开发者问题收集

保存记录时引发 SuiteScript2.0 加载错误

2019-11-06
3137

我正在尝试使用以下代码在 SuiteScript 中创建客户。

var customer = record.create({
    type: record.Type.CUSTOMER,
    isDynamic : true
}).setValue({
    fieldId : 'firstname',
    value   : eOrder.bill_firstname
}).setValue({
    fieldId : 'lastname',
    value   : eOrder.bill_surname
}).setValue({
    fieldId : 'email',
    value   : eOrder.customer_email.replace(/\s+/g, '')
}).setValue({
    fieldId : 'phone',
    value   : phoneNumber
}).setValue({
    fieldId : 'leadsource',
    value   : LEAD_SOURCE_ECOMM
});

var customerId = customer.save();

当脚本运行此行时,我收到以下错误。

{
    "type": "error.SuiteScriptError",
    "name": "SSS_MISSING_REQD_ARGUMENT",
    "message": "load: Missing a required argument: id",
    "stack": [
        redacted
    ],
    "cause": {
        "type": "internal error",
        "code": "SSS_MISSING_REQD_ARGUMENT",
        "details": "load: Missing a required argument: id",
        "userEvent": null,
        "stackTrace": [
            redacted
        ],
        "notifyOff": false
    },
    "id": "",
    "notifyOff": false,
    "userFacing": false
}

由于客户正在保存,我不明白为什么会出现加载错误?记录创建得很好,但由于这个错误,脚本无法继续?

2个回答

可能有一个脚本在客户记录的 beforeLoad 上运行,该脚本正在寻找客户的 ID,但在您创建记录时该 ID 尚不存在。

您需要查看客户记录的脚本记录页面,并调查在 beforeLoad 触发器上运行的任何用户事件脚本。任何依赖于记录 ID 的代码都不应在 CREATE 上运行。

erictgrubaugh
2019-11-06

问题的其他原因

对于所选答案无法解决问题的任何人,另一个可能的原因可能是链接到另一条记录的字段。如果在保存记录时此字段为空,则会引发相同的错误,因为该字段也需要相关记录的 ID。

我的情况就是这样。

BibekStha
2021-01-28