如何解决SuiteScript 2.0 对话框按钮返回“true”不起作用
我正在尝试部署一个脚本,该脚本将验证字段值是真还是假(复选框)。 案例字段值= false,比我想用“确定”和“取消”按钮引发对话框,当用户按下“确定”时,它无论如何都会保存它。如果按“取消”,它将返回到表单。
但是当字段 = false 并且用户按“确定”时,记录不会保存。 顺便说一句:当字段 = true 时,它工作正常。
这是我的代码:
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(["N/currentRecord","N/runtime","N/ui/dialog"],/**
* @param {currentRecord} currentRecord
* @param {runtime} runtime
* @param {dialog} dialog
*/ function (currentRecord,runtime,dialog) {
/**
* Function to be executed after page is initialized.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @param {string} scriptContext.mode - The mode in which the record is being accessed (create,copy,or edit)
*
* @since 2015.2
*/
function pageInit(scriptContext) {
var userObj = runtime.getCurrentUser();
var userRole = userObj.role;
var currentRecord = scriptContext.currentRecord;
var itmCheck = currentRecord.getField({
fieldId: "custitem_ek_itm_fisc_check",});
var expAccount = currentRecord.getField({
fieldId: "expenseaccount",});
var excAccount = currentRecord.getField({
fieldId: "billexchratevarianceacct",});
var priceVariance = currentRecord.getField({
fieldId: "billpricevarianceacct",});
var qntVariance = currentRecord.getField({
fieldId: "billqtyvarianceacct",});
if (
userRole !== 3 &&
userRole !== 1030 &&
userRole !== 1043 &&
userRole !== 1047
) {
itmCheck.isDisabled = true;
expAccount.isDisabled = true;
excAccount.isDisabled = true;
priceVariance.isDisabled = true;
qntVariance.isDisabled = true;
}
}
/**
* Validation function to be executed when record is saved.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.currentRecord - Current form record
* @returns {boolean} Return true if record is valid
*
* @since 2015.2
*/
function saveRecord(scriptContext) {
try {
var options = {
title: "Check de Item não preenchido",message:
'O campo "Item Verificado pelo Fiscal?" não foi preenchido. Deseja proseguir?',};
var userObj = runtime.getCurrentUser();
var userRole = userObj.role;
var currentRecord = scriptContext.currentRecord;
var itmCheckValue = currentRecord.getValue({
fieldId: "custitem_ek_itm_fisc_check",});
if (
userRole == 3 ||
userRole == 1030 ||
userRole == 1043 ||
userRole == 1047
) {
function sucess(result) {
if (result == true) {
console.log(result,itmCheckValue);
return true;
}
}
function failure(reason) {
console.log(reason,itmCheckValue);
return false;
}
if (itmCheckValue == false) {
dialog.confirm(options).then(sucess).catch(failure);
} else {
return true;
}
}
} catch (err) {
log.error(err);
}
}
return {
pageInit: pageInit,saveRecord: saveRecord,};
});
提前致谢!
解决方法
甲骨文回复:
“对此有一个增强。
Enhancement 408502: SuiteScript 2.0 > N/ui/dialog Module > Add non-promise API | No equivalent non-promise API"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。