使用 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
);
}
}
}
您还可以使用工作流来防止 删除 按钮显示给用户:
我想根据 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
);
}
}
}
您还可以使用工作流来防止 删除 按钮显示给用户: