SuiteScript 2.0 对话框按钮 Return "true" 不工作
SuiteScript 2.0 Dialog Button Return "true" isn't working
我正在尝试部署一个脚本来验证字段值是真还是假(复选框)。
如果字段值 = false,那么我想用“确定”和“取消”按钮引发一个对话框,当用户按下“确定”时它会保存它。如果按“取消”,它将 return 到表格。
但是当字段 = false 并且用户按下“确定”时,记录不会被保存。
顺便说一句:当 field = 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,
};
});
提前致谢!
Oracle 响应:
“对此有改进。
Enhancement 408502: SuiteScript 2.0 > N/ui/dialog Module > Add non-promise API | No equivalent non-promise API"
我正在尝试部署一个脚本来验证字段值是真还是假(复选框)。 如果字段值 = false,那么我想用“确定”和“取消”按钮引发一个对话框,当用户按下“确定”时它会保存它。如果按“取消”,它将 return 到表格。
但是当字段 = false 并且用户按下“确定”时,记录不会被保存。 顺便说一句:当 field = 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,
};
});
提前致谢!
Oracle 响应:
“对此有改进。
Enhancement 408502: SuiteScript 2.0 > N/ui/dialog Module > Add non-promise API | No equivalent non-promise API"