【问题标题】:SuiteScript 2.0 Dialog Button Return "true" isn't workingSuiteScript 2.0 对话框按钮返回“true”不起作用
【发布时间】:2021-01-21 18:03:04
【问题描述】:

我正在尝试部署一个脚本来验证字段值是真还是假(复选框)。 如果字段值 = false,我想用“确定”和“取消”按钮弹出一个对话框,当用户按下“确定”时,它无论如何都会保存它。如果按“取消”,它将返回表单。

但是当字段 = 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,
  };
});

提前致谢!

【问题讨论】:

    标签: javascript netsuite suitescript2.0


    【解决方案1】:

    甲骨文回复:

    “对此有增强。

    Enhancement 408502: SuiteScript 2.0 > N/ui/dialog Module > Add non-promise API | No equivalent non-promise API"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2012-05-03
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多