使用 SuiteScript 防止记录删除

Prevent record deletion with SuiteScript

我想根据 NetSuite 中的某些条件防止记录被删除。但是,我似乎找不到验证失败事件? UserEvent 上的 BeforeSubmit 有一个 delete type,但它没有 return 函数值,所以我不能只说 return false,我可以吗?

然后如何防止删除记录,或失败某种类型的记录提交?

不是返回 false,而是抛出一个错误。对用户不友好,但据我所知,这是唯一的选择。

由于处于Before Submit User事件中,提交或删除都会失败。

您可以添加 client-side 代码,以便在尝试删除要阻止的记录时向用户弹出一条消息。话虽如此,您仍然希望放置一个 UserEvent 脚本来防止删除操作。这将阻止用户通过限制

您需要使用 beforeSubmit 用户事件脚本并使用 nlapiCreateError 抛出错误。这是一个例子:

function beforeSubmit(type) {
  if(type == 'delete') {
    // NOTE `nlapiGetFieldValue` returns nil/empty during a delete event
    //      `nlapiGetOldRecord` needs to be used to pull the entire record

    var payment = nlapiGetOldRecord();

    if(payment.getFieldText('paymentmethod') == 'cash') {
      throw nlapiCreateError(
        'AN_ERROR',
        'Message to the user!',
        true
      );
    }
  }
}

您还可以使用工作流来防止 删除 按钮显示给用户: