Google Apps Script IF вызывает толчок к провалу - PullRequest
0 голосов
/ 18 октября 2018

У меня есть лист Google, интерактивный список дел, связанный с датами, и, если одна из дат уходит в прошлое, он копируется на отдельную вкладку на листе «Прошлое».Я использую приведенный ниже код для отправки этих просроченных оповещений в канал Slack с ежедневной настройкой Триггера Служб Google, но я хочу добавить переменную IF, которая будет публиковаться только в том случае, если на этой вкладке есть строка для публикации.Например, если A2 = "", то не нажимайте, чтобы ослабить, если A2 = Not Blank, нажимайте, чтобы ослабить.Любая помощь будет принята с благодарностью!

Вот код, с которым я работаю:

 function createMeetingMessage(sheet) {
 var facilitatorCell = "Past!C2";
 var noteTakerCell = "Past!E2";
 var emojiCell = "Past!L2";
var message = "> *Hello* "  + "<" +sheet.getRange(noteTakerCell).getValue() +">" + " *Please Update Us On*\n"
+ "> *Task:* " +sheet.getRange(facilitatorCell).getValue() +"\n"
+ "> *Due Date:* " +sheet.getRange(emojiCell).getValue() +"\n"
+ "> _you can submit an update by typing task;task name;in progress or complete; comments_ ";

 return message;
}

function triggerSlackRequest(channel, msg) {
 var slackWebhook = "[Slack Webhook]";
  var payload = { "channel": channel, "text": msg, "link_names": 1, "username": "Past Due Alert", "icon_emoji": ":rotating_light:" };
 var options = { "method": "post", "contentType": "application/json", "muteHttpExceptions": true, "payload": JSON.stringify(payload) };

Logger.log(UrlFetchApp.fetch(slackWebhook, options));
}

function notifySlackChannelOfFacilitatorAndNoteTaker() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Past");
 var channel = getChannel();

var msg = createMeetingMessage(sheet);
 triggerSlackRequest(channel, msg);
}

function isTest() {
 return false;
}

function getChannel() {
 if(isTest()) {
 return "integration_tests";
 } else {
 return "integration_tests";
 }
}

А вот как это выглядит, когда есть данные в A2, когда они выталкиваются в Slack: enter image description here

И вот как это выглядит, когда в А2 нет данных, и они переданы в Slack: enter image description here

Спасибо!

1 Ответ

0 голосов
/ 20 октября 2018

Если вы не хотите запускать сценарий, когда значение «A2» на листе «Past» не имеет значения, вы можете добиться этого, поставив if (!sheet.getRange("A2").getValue()) return перед var channel = getChannel().Работал отлично!

...