Не запускайте сценарий по воскресеньям - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть скрипт, который запускается по ежедневному триггеру в Google Sheets, извлекает данные из одной электронной таблицы и сохраняет их в другой.

Работает замечательно, но мне нужно, чтобы он не работал по воскресеньям.Я не могу понять, как проверить дату и запустить скрипт только с понедельника по субботу.

    function copyDailyreport() {
var timeStamp=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy");

var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MSM");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MSM Daily Totals");
var valuesToCopy = sheetFrom.getRange(4, 11, sheetFrom.getLastRow(), 1).getValues();

//convert the column to a row
valuesToCopy=valuesToCopy.join('*#*');
valuesToCopy=valuesToCopy.split('*#*');

//add timestamp in the first place in the row
valuesToCopy.unshift(timeStamp)

//add the row to destination sheet
sheetTo.appendRow(valuesToCopy);




var timeStamp=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy");

var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SM");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SM Daily Totals");
var valuesToCopy = sheetFrom.getRange(4, 11, sheetFrom.getLastRow(), 1).getValues();

//convert the column to a row
valuesToCopy=valuesToCopy.join('*#*');
valuesToCopy=valuesToCopy.split('*#*');

//add timestamp in the first place in the row
valuesToCopy.unshift(timeStamp)

//add the row to destination sheet
sheetTo.appendRow(valuesToCopy);



var timeStamp=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy");

var sheetFrom = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SH");
var sheetTo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SH Daily Totals");
var valuesToCopy = sheetFrom.getRange(4, 11, sheetFrom.getLastRow(), 1).getValues();

//convert the column to a row
valuesToCopy=valuesToCopy.join('*#*');
valuesToCopy=valuesToCopy.split('*#*');

//add timestamp in the first place in the row
valuesToCopy.unshift(timeStamp)

//add the row to destination sheet
sheetTo.appendRow(valuesToCopy);

}

Спасибо!

1 Ответ

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

Один из способов сделать это - использовать Устанавливаемый триггер .Установите вручную 6 управляемых по времени триггеров с недельным таймером, по одному на каждый день с понедельника по субботу.

Другой способ - установить вручную 1 управляемый по времени триггер, который запускается каждый день, но проверяйтесценарий того, будет ли это воскресенье

var currentDay = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E");
if (currentDay !== "Sun") {
    // execute the rest of the code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...