In the user event script, we can disable or remove the standard buttons using button id.
If you need to restrict the edit from the lists view use error message and throw that error based on your condition. Do not add try catch block for the error create portion. If you add try catch for overall code, the script does not throw that error.
const beforeLoad = (scriptContext) => {
let newRecord = scriptContext.newRecord;
let currentUser = runtime.getCurrentUser().id; log.debug(“user”, currentUser);
let salesAssociate = newRecord.getValue({
fieldId: ‘custbody45’
});
let myCustomError = error.create({
name: ‘MY_ERROR_CODE_TEST’,
message: ‘You do not have permission to edit the sales order because it was created a month ago.’,
notifyOff: false
});
if (checkForParameter(salesAssociate) && checkForParameter(createdDate) && checkForParameter(today) && checkForParameter(oneMonthAfter)) {
if (scriptContext.type == scriptContext.UserEventType.VIEW) { log.debug(“view mode”);
if ((salesAssociate == currentUser) && (today >= oneMonthAfter)) { log.debug(“inside if condition”);
let form = scriptContext.form;
let editButton = form.getButton({ id: ‘edit’ }); editButton.isDisabled = true; or
//use remove button
//form.removeButton({id:’edit’});
}
}
if (scriptContext.type == scriptContext.UserEventType.EDIT) { log.debug(“inside edit mode”)
if ((salesAssociate == currentUser) && (today >= oneMonthAfter)) { log.debug(“inside if edit”);
throw myCustomError.message;
}
}
}
return { beforeLoad }