когда я использую функцию onEdit, мой код перестает работать? - PullRequest
0 голосов
/ 20 июня 2019

мой код работает хорошо, используя myFunction(), но только когда я изменяю его на onEdit и использую e.range и номер столбца для восстановления работы в пределах определенного столбца, он останавливается

function onEdit(e) {

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Timesheet & Feedback");

var cell = ss.getActiveCell();
var cellContent = cell.getValue();
var Manaf = CalendarApp.getCalendarById("manaf652@gmail.com");
var MustafaSmeer = CalendarApp.getCalendarById("8q65ner19m8uk8idmmkmrr2hvs@group.calendar.google.com");
var activeRow = ss.getActiveCell().getRow();
var data = ss.getRange("A" + activeRow + ":G" + activeRow).getValues();

var range = e.range;
var CellColumn = range.getColumn();

if (CellColumn == 2) {


    if (cellContent === "Mustafa Sameer") {
        MustafaSmeer.createEvent(data[0][0], data[0][2], data[0][2], {
            description: "First call " + data[0][0]
        });
        MustafaSmeer.createEvent(data[0][0], data[0][4], data[0][4], {
            description: "Second call " + data[0][0]
        });
        MustafaSmeer.createEvent(data[0][0], data[0][6], data[0][6], {
            description: "Third call " + data[0][0]
        })
    }
}
};

1 Ответ

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

Объяснение:

У вашего простого триггера нет прав доступа CalendarApp.Они запускаются с «LIMITED» authMode, а не «FULL», как при запуске сценария вручную.

Вот почему ваш сценарий больше не работает должным образом, как только вы вынули его изручной / основанный на времени триггер с вашим разрешением на запуск, затем заменил его на простой триггер, он потерял разрешение, необходимое для успешной работы.Для получения более подробной информации о разрешениях каждого типа триггера см. Ссылки ниже.


Ссылки:

  1. Простые триггеры
  2. Объекты событий

Решение:

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

Примечание : обязательно переименуйтеваша функция, чтобы вы не получили никаких ложных дополнительных триггеров.


Ссылка:

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