#javascript #dom #netsuite #suitescript2.0
#javascript #dom #netsuite #suitescript2.0
Вопрос:
Есть сомкнутым строем кнопку в заказ на продажу.
Если пользователь нажмет на кнопку, заказ на продажу будет закрыт.
Мы хотим открыть диалоговое окно для подтверждения клика, если пользователь нажмет «Да«, то заказ на продажу закроется; если пользователь нажмет «Нет«, он вернется на страницу, и ничего не произойдет.
Я знаю, что идентификатор кнопки для закрытия ордера «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:
В настоящее время запуск скрипта со стандартной кнопки (Закрыть заказ) пока невозможен. Что вы можете сделать, так это скрыть стандартную кнопку и заменить ее пользовательской, чтобы вы могли полностью контролировать ее функциональность.
Вот обзор того, что вам нужно сделать:
- Скрыть кнопку «Закрыть заказ»
- Разверните сценарий пользовательского события и добавьте в него кнопку
- Используйте клиентский скрипт для добавления функциональности, которая будет выполняться скриптом (Показывать всплывающее окно подтверждения)
- Затем вы можете приступить к закрытию заказа, изменив поле isclosed на True в подсписках товаров
Также вы можете прочитать статью SuiteAnswers: SuiteScript > Подтвердить перед закрытием записи транзакции (Id: 65115), поскольку в ней есть пошаговое руководство по ее реализации. Вы можете использовать идентификатор при поиске.
Комментарии:
1. Как насчет использования suitelet для обработки логики обновления закрытого файла?
2. @skyclouder ага! Вы можете использовать Suitelet для обновления заказа на продажу. Просто передайте внутренний идентификатор в Suitelet, чтобы загрузить и изменить его там.