Конвертировать скрипт onEdit в скрипт, запускаемый вручную - PullRequest
0 голосов
/ 05 июня 2019

Сценарий предназначен для записи даты и времени в определенную ячейку в тот момент, когда ячейка в столбце 4 имеет текст Assign.

У меня есть сценарий, который теоретически работает, но я получаю свои данные из App Sheet. Проблема в том, что App Sheet записывает данные в мой лист, но скрипт не будет видеть их как отредактированные ячейки, поэтому он не будет записывать отметку времени.

Но мои знания о app-скриптах довольно плохие. И я получаю ошибки с исходной строкой и строкой col, val.

function onEdit(e) {

  var sh =  e.source.getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  var val = sh.getRange(row, 4).getValue();


  //check if sheet is 'Blad1' & value is 'Assign'
  if (sh.getSheetName() === 'Blad1' && val == 'Assign') {
    var tz = e.source.getSpreadsheetTimeZone();
    var date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy hhmmss');

    //set date in column 14 for same row
    sh.getRange(row, 14).setValue(date);

  }
}

Я хочу преобразовать свой сценарий в сценарий, запускаемый вручную, с временным триггером 1 мин Таким образом, я надеюсь, что скрипт увидит измененную ячейку в Assign.

1 Ответ

0 голосов
/ 05 июня 2019

Проблема кроется в триггерах сценариев приложений ограничения , в частности в их неспособности прослушивать событий на основе сценариев.Я бы предложил развернуть ваш сценарий как WebApp с функциями doGet() / doPost() для прослушивания запросов API и, если я правильно предположил, что AppSheet работает аналогично Zapier и т. Д., Добавьте шаг, который вызывает ваше WebApp после выполненияизменения в вашем Spreadsheet.

Пожалуйста, смотрите это руководство в WebApps, это довольно просто для подражания.

PS Кстати, воздержитесь от создания триггеров, действующих в качестве прослушивателей событий, вы легко Ограничьте свои квоты !

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