e.source и e.range отсутствуют / недоступны - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть базовый устанавливаемый триггер, который я пытаюсь использовать для отправки приглашения по электронной почте на основе того, когда Лист редактируется (в моем случае установлен определенный флажок), однако, когда я пытаюсь получить доступ к объекту диапазона или источника из своего событияобъект я получаю [объект объекта] и неопределенный соответственно.Однако я знаю, что объект события работает благодаря возможности получить oldValue, value, triggerUid и user.

function onEditCheck(e) {

  var cells = e.range.getA1Notation();
  var name = e.source.getActiveSheet().getName()

  console.log('cells: ' + cells);
  console.log('sheet name: ' + name);
  console.log('id: ' + e.triggerUid);
  console.log('edit: ' + e.value);

  if(e.oldValue === 'false' && e.value === 'TRUE') {
    sendEmail(e.user.getEmail(), e.range);
  } 
}

Единственная другая ссылка на эту проблему, которую я мог найти, была этот вопрос здесь однако мне не повезло с «разрешением» разрешения, которое они нашли.

Буду признателен за любую помощь или понимание.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Это потому, что необходимая авторизация не была предоставлена ​​вашему скрипту.

Добавьте это где-нибудь в своем коде:

//SpreadsheetApp.getActive()

Это вызовет поток oAuth и запросит разрешение на доступ к таблицам, который отсутствовал.

Связанный:

0 голосов
/ 06 декабря 2018

Это сработало для меня:

function createTrigger(){
  var tr=ScriptApp.newTrigger('onEditCheck').forSpreadsheet('My SSID').onEdit().create();
}

function onEditCheck(e) {
  var cell = e.range.getA1Notation();
  var name = e.range.getSheet().getName();
  var data=Utilities.formatString('<br />Cell Edited: %s<br />Name of Sheet: %s<br />TriggerId: %s<br />Value: %s<br />Old Value: %s<br />',cell,name,e.triggerUid,e.value,e.oldValue);
  var userInterface=HtmlService.createHtmlOutput(data);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Testing')
}

Кстати, действительно удобно перейти в редактор триггеров после создания триггера и установить немедленные уведомления.Таким образом вы будете получать уведомления о сбоях довольно быстро с сервера Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...