Сценарий Google: как запустить функцию ShowModalDialog с помощью триггера?

Ситуация: у

меня есть следующий код, этот funtion нужно проверять каждые 5 минут в столбце (H), и если значение ячейки «CALL» показывает диалог.
Теперь, если я запустил funtion из скрипта google, нажмите, чтобы играть в funtion очень хорошо ... но когда я настроил это funtion для запуска баз вовремя, каждые 5 минут не запускался.

function alertDialog() {
  var s = SpreadsheetApp.openById('URL ID');
  var Support = s.getSheetByName("Shift").activate();
  var lastrow = Support.getLastRow();

  var data1 = Support.getRange(3, 1, lastrow).getValues(); // Ticket# Column (A)
  var data3 = Support.getRange(3, 8, lastrow).getValues(); // Status Call Column (H)

  ///////////////////// CALL //////////////////////////

  var report = " "
  var callTable ="";
  for(var i in data3){
    if(data3[i]=='Call') { callTable += "<tr><td style='color:blue;padding:5px'>" +data1[i]+"</a>" 
                                      + "</td><td style='background-color:red;color:white;padding:5px'; align='center'><b>" + data3[i] + "</b>"
                                      + "</td></tr>";

   report ="<b>Pendig Call:</b><br><br><table style='border-collapse:collapse;'border = 1 cellpadding = 5; align='center'><tr><th style='background-color:black;color:white'>Ticket#</th><th style='background-color:black;color:white'>Status Call</th></tr>"+callTable+"</table><br><audio autoplay><source src='http://soundbible.com/mp3/sms-alert-1-daniel_simon.mp3' type='audio/mpeg'></audio>";



var htmlOutput = HtmlService
     .createHtmlOutput(report)
     .setWidth(400)
     .setHeight(450);
 SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Ticket Pending Call');
    }

  else return; // If not true
  }
}


Я подниму вашу помощь.

javascript,google-spreadsheet,

0

Ответов: 1


1 принят

Вы можете проверить свой протокол выполнения, я получаю ошибку:

Выполнение не выполнено: не удается вызвать SpreadsheetApp.getUi () из этого контекста.

Таким образом, похоже, что вы не можете вызвать showModalDialog для триггеров, основанных на времени (хотя я не уверен, почему вы захотите)

РЕДАКТИРОВАТЬ

Из ваших комментариев используйте блок try / catch

function alertDialog() {
 var s = SpreadsheetApp.openById('URL ID');
  var Support = s.getSheetByName("Shift")
  var lastrow = Support.getLastRow();

  var data1 = Support.getRange(3, 1, lastrow).getValues(); // Ticket# Column (A)
  var data3 = Support.getRange(3, 8, lastrow).getValues(); // Status Call Column (H)

  ///////////////////// CALL //////////////////////////

  var report = " "
  var callTable ="";
   Logger.log('ran');

   try{
  for(var i in data3){
    if(data3[i]=='Call') { callTable += "<tr><td style='color:blue;padding:5px'>" +data1[i]+"</a>" 
                                      + "</td><td style='background-color:red;color:white;padding:5px'; align='center'><b>" + data3[i] + "</b>"
                                      + "</td></tr>";

   report ="<b>Pendig Call:</b><br><br><table style='border-collapse:collapse;'border = 1 cellpadding = 5; align='center'><tr><th style='background-color:black;color:white'>Ticket#</th><th style='background-color:black;color:white'>Status Call</th></tr>"+callTable+"</table><br><audio autoplay><source src='http://soundbible.com/mp3/sms-alert-1-daniel_simon.mp3' type='audio/mpeg'></audio>";


var htmlOutput = HtmlService
     .createHtmlOutput(report)
     .setWidth(400)
     .setHeight(450);
 SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Ticket Pending Call');

    }

  else return; // If not true
  }
       } catch (e) { Logger.log(e)}

}
JavaScript, Google-таблицы,
Похожие вопросы