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"