Отправить письмо на редактирование только новые строки не работают - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь отправить электронное письмо только с новыми данными строки.У меня есть столбец 21, чтобы добавить отправлено при отправке электронной почты и сценарий, чтобы игнорировать это, если он говорит отправлено в этой ячейке.Проблема в том, что он отправляет все данные строки на мой адрес электронной почты.

function onEdit() {
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 2;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,1000);
 var AllValues = WholeRange.getValues();

 var message = "";
 for (i in AllValues) {
 var CurrentRow = AllValues[i];

 //Sent?
 var EmailSent = CurrentRow[21];

 //if row has been sent
 if (EmailSent == "sent") 
     continue;

  message +=
      "<p><b>New RMA?: </b>" + CurrentRow[4] + "</p>" +
      "<p><b>Device SKU: </b>" + CurrentRow[5] + "</p>" +
      "<p><b>ESN / MEID: </b>" + CurrentRow[7] + "</p>" +
      "<p><b>Reason for RMA: </b>" + CurrentRow[8] + "</p>" +
      "<p><b>Defective Out of Box?: </b>" + CurrentRow[10] + "</p>" +
      "<p><b>Date Sold: </b>" + CurrentRow[11] + "</p>" +
      "<p><b>Vendor: </b>" + CurrentRow[12] + "</p>" +
      "<p><b>Email Address: </b>" + CurrentRow[13] + "</p><br><br>";

  var setRow = parseInt(i) + StartRow;

  ActiveSheet.getRange(setRow, 21).setValue("sent");
}

 var SendTo = "davidm@email.com";

 var Subject = "RMA Submission";

  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
});
}

Как я могу исправить эту проблему с помощью вышеуказанного скрипта?

Я попытался это безуспешно.Он включает в себя все 136 строк, а не только новые без SENT в столбце 22 * ​​1006 *

function onEdit() {
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 2;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,22); //<---Changed
 var AllValues = WholeRange.getValues();

 var message = "";
 for (i in AllValues) {
 var CurrentRow = AllValues[i];

 var EmailSent = CurrentRow[22];

 if (EmailSent == "sent") 
     continue;

  message +=
      "<p><b>New RMA?: </b>" + CurrentRow[4] + "</p>" +
      "<p><b>Device SKU: </b>" + CurrentRow[5] + "</p>" +
      "<p><b>ESN / MEID: </b>" + CurrentRow[7] + "</p>" +
      "<p><b>Reason for RMA: </b>" + CurrentRow[8] + "</p>" +
      "<p><b>Defective Out of Box?: </b>" + CurrentRow[10] + "</p>" +
      "<p><b>Date Sold: </b>" + CurrentRow[11] + "</p>" +
      "<p><b>Vendor: </b>" + CurrentRow[12] + "</p>" +
      "<p><b>Email Address: </b>" + CurrentRow[13] + "</p><br><br>";


  var setRow = parseInt(i) + StartRow;


  ActiveSheet.getRange(setRow, 22).setValue("sent");
}


 var SendTo = "davidm@";

 var Subject = "RMA From" +" "+ CurrentRow[13]; //<---Changed

  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
});
}

Рабочий сценарий


function SendEmail() {
 var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var StartRow = 2;
 var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
 var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,20);
 var AllValues = WholeRange.getValues();

 var message = "";
 for (i in AllValues) {
 var CurrentRow = AllValues[i];

 var EmailSent = CurrentRow[18];
 Logger.log(CurrentRow[18]);
 if (EmailSent == "Sent") 
     continue;

  message =
      "<p><b>Email?: </b>" + CurrentRow[1] + "</p>" +
      "<p><b>District: </b>" + CurrentRow[2] + "</p>" +
      "<p><b>Vendor Cost: </b>" + CurrentRow[3] + "</p>" +
      "<p><b>Vendor Cost: </b>" + CurrentRow[4] + "</p>" +
      "<p><b>Default Price: </b>" + CurrentRow[5] + "</p>" +
      "<p><b>Vendor: </b>" + CurrentRow[6] + "</p>" +
      "<p><b>Vendor SKU: </b>" + CurrentRow[7] + "</p>" +
      "<p><b>Manufacturer: </b>" + CurrentRow[8] + "</p>" +
      "<p><b>Manufacturer SKU: </b>" + CurrentRow[9] + "</p>" +
      "<p><b>Barcode: </b>" + CurrentRow[10] + "</p>"+
      "<p><b>Category: </b>" + CurrentRow[11] + "</p>" +
      "<p><b>Device: </b>" + CurrentRow[12] + "</p>" +
      "<p><b>Model: </b>" + CurrentRow[13] + "</p>"+
      "<p><b>Color: </b>" + CurrentRow[18] + "</p>";


  var setRow = parseInt(i) + StartRow;


  ActiveSheet.getRange(setRow, 19).setValue("Sent");
}


 var SendTo = "";
 //var SendToEmail = "";


  var Subject = "New Sku:" +" "+ CurrentRow[13] +" " +"From:"+" "+CurrentRow[1];

  MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
});

//   MailApp.sendEmail({
  //    to: SendToEmail,
 //     cc: "",
 //     subject: Subject,
 //     htmlBody: message,
//    });

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