Как открыть диалоговое окно подтверждения после того, как пользователь нажимает кнопку «Закрыть заказ» SO в NetSuite?

#javascript #dom #netsuite #suitescript2.0

#javascript #dom #netsuite #suitescript2.0

Вопрос:

Есть сомкнутым строем кнопку в заказ на продажу.

Кнопка quot;Закрыть заказquot;

Если пользователь нажмет на кнопку, заказ на продажу будет закрыт.

Мы хотим открыть диалоговое окно для подтверждения клика, если пользователь нажмет «Да«, то заказ на продажу закроется; если пользователь нажмет «Нет«, он вернется на страницу, и ничего не произойдет.

Я знаю, что идентификатор кнопки для закрытия ордера «closeremaining«, и мы можем использовать следующий код, чтобы отобразить диалоговое окно подтверждения:

     var options = {
        title: "Are you sure you want to close the order?",
        message: "Press OK or Cancel"
    };

    function success(result) {
        console.log("Success with value "   result);
    }

    function failure(reason) {
        console.log("Failure: "   reason);
    }
    dialog.confirm(options).then(success).catch(failure);
  

Но мы не знаем, как открыть диалоговое окно после того, как пользователь нажимает кнопку в режиме ПРОСМОТРА. Я пробовал следующее, но тщетно:

  var closeOrderBtn = document.getElementById("closeremaining");
 closeOrderBtn.addEventListener("click", showConfirmDialog);
  

Кто-нибудь может мне помочь?

Ответ №1:

В настоящее время запуск скрипта со стандартной кнопки (Закрыть заказ) пока невозможен. Что вы можете сделать, так это скрыть стандартную кнопку и заменить ее пользовательской, чтобы вы могли полностью контролировать ее функциональность.

Вот обзор того, что вам нужно сделать:

  1. Скрыть кнопку «Закрыть заказ»
  2. Разверните сценарий пользовательского события и добавьте в него кнопку
  3. Используйте клиентский скрипт для добавления функциональности, которая будет выполняться скриптом (Показывать всплывающее окно подтверждения)
  4. Затем вы можете приступить к закрытию заказа, изменив поле isclosed на True в подсписках товаров

Также вы можете прочитать статью SuiteAnswers: SuiteScript > Подтвердить перед закрытием записи транзакции (Id: 65115), поскольку в ней есть пошаговое руководство по ее реализации. Вы можете использовать идентификатор при поиске.

Комментарии:

1. Как насчет использования suitelet для обработки логики обновления закрытого файла?

2. @skyclouder ага! Вы можете использовать Suitelet для обновления заказа на продажу. Просто передайте внутренний идентификатор в Suitelet, чтобы загрузить и изменить его там.