Невозможно вызвать SpreadsheetApp.getUi () из этого контекста, но не использовать getUi для основанного на времени триггера. - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь запускать функцию каждую ночь, которая проверяет список дат и работает, если обнаруживает, что дата прошла и все флажки в этой строке проверены.Однако каждый день я получаю электронное письмо, в котором говорится: «Невозможно вызвать SpreadsheetApp.getUi () из этого контекста. (Строка 172, файл« Код »)».Странно то, что я нигде не использую getUi в моей функции CheckHireDates, и указанная строка не относится даже к функции, которая должна выполняться.Строка 172 находится в моей функции onEdit, которая также не использует getUi.Кто-нибудь может помочь мне понять, почему я получаю эту ошибку?

Я использовал getUi в своей функции onOpen, поэтому я прокомментировал это, когда у меня возникла эта проблема, но она все еще ничего не исправила.

function CheckHireDates() {
var spreadsheet = SpreadsheetApp.getActive();
var PaycomSheet = spreadsheet.getSheetByName('Paycom');
var TechSheet = spreadsheet.getSheetByName("Tech Key");
var SoftwareTracker = spreadsheet.getSheetByName('Software Tracking');
var range = "R2:R";
var Hvals = PaycomSheet.getRange("H2:H").getValues();
var Hlast = Hvals.filter(String).length;
var data = PaycomSheet.getRange(range).getValues();
var today = new Date().toLocaleDateString();
for(var i = 0; i < Hlast;i++)
{
    Hvals[i].toLocaleString();
    if(Hvals[i] <= today && (PaycomSheet.getRange('R' + (i+2)).getValue() == true))
    {
        var fullName = PaycomSheet.getRange('D' + (i+2)).getValue();
        var techRow = findMatchingRow(fullName, "Tech Key");  
        var softwareRow = findMatchingRow(fullName, "Software Tracking");
        var position = PaycomSheet.getRange('G' + (i+2)).getValue();
        TechSheet.getRange('E' + techRow).setValue(1);
        SoftwareTracker.getRange('G' + softwareRow).setValue(1);
        if (position == "Pre-Employment, Initial") 
        {
            position = "Initial";
        }
        else if (position == "Pre-Employment, Ace") 
        {
            position = "Route";
        }
        else if (position == "Pre-Employment, Expert") 
        {
            position = "Route";
        }
        else
        {
            Logger.log("Position not known");
        }
        TechSheet.getRange('G' + techRow).setValue(position);
        SoftwareTracker.getRange('D' + softwareRow).setValue(position);
        SoftwareTracker.getRange('H' + softwareRow + ':M' + softwareRow).setValue(2);
        if (position !== "Initial") 
        {
            SoftwareTracker.getRange('N' + softwareRow).setValue(2);
        }  
    }
}

}

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