Netsuite 使用SuiteScript防止记录删除

Netsuite 使用SuiteScript防止记录删除,netsuite,suitescript,Netsuite,Suitescript,我想防止根据NetSuite中的某些条件删除记录。但是,我似乎找不到验证失败事件?UserEvent上的BeforeSubmit有一个delete类型,但它没有函数的返回值,所以我不能只说return false,可以吗 然后,如何防止删除记录,或使某一类型的记录提交失败?只抛出一个错误,而不是返回false。不方便使用,但据我所知,这是唯一的选择 由于是在“提交前用户”事件中,提交或删除将失败。您可以添加客户端代码,以便在尝试删除要阻止的记录时向用户弹出消息。话虽如此,您仍然希望放置一个Use

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


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

只抛出一个错误,而不是返回false。不方便使用,但据我所知,这是唯一的选择


由于是在“提交前用户”事件中,提交或删除将失败。

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

在提交用户事件脚本之前使用
,并使用
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
      );
    }
  }
}

您还可以使用工作流阻止删除按钮向用户显示:


是的,这样就可以了。在用户事件脚本期间,阻止记录存储在数据库中的唯一方法是在提交之前从
抛出一个错误?投掷功能?我以前从未使用过它,但看起来它将是正确的解决方案?throw函数将是正确的解决方案。您还可以使用SuiteScript 1.0中的nlapiCreateError创建自定义错误。客户端上的哪个事件会执行此操作?我最初确实看过它,我目前的“计划”是,如果事情失败了,只要用户试图编辑它,就自动将其重定向回视图记录,但我没有看到一个客户端事件类型会注册“删除”类型