Необходимо разделить строку на основе ошибок и предупреждений и удалить определенный контент - PullRequest
1 голос
/ 02 октября 2019

Пока запускается предоставленный скрипт, он отлично работает, но его нужно изменить. это скриншот говорит о том, что мне нужно, я пытаюсь изменить сценарий, пожалуйста, помогите мне, если вы можете enter image description here

function autocopy() {
  var label = GmailApp.getUserLabelByName("Sanmina EDI Failed Concurrent Jobs Alert");
  var threads = label.getThreads();
  var read = threads.getMessages();
  var uread = threads.isUnread();

  for(var i = 0; i <= uread.length; i++) { 
    var message=uread(i);
  }

  var message1 = new message.Date();
  var day = message1.getUTCDate();
  var bodycontent = message.getbody();
  var action = bodyContents.search("Invoice")
  var action1 = bodyContents.search("Error")
  var action2 = bodyContents.search("Terminated")

  if (action > 0) {
    var out ="Need to create SR"
  } else if (action1 > 0 || action2 > 2) {
    var out ="Need to create SR"
  } else {
    var out ="Printing output file"
  }

  var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  activeSheet.appendRow([day, bodycontent, out]);
}

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

1 Ответ

1 голос
/ 02 октября 2019

Я немного переработал твой код. Добавьте несколько комментариев, чтобы вы могли четко видеть, что происходит в каждой строке. Ваша проблема заключалась в том, что вы пытались использовать методы с неправильными объектами (например, массив потоков не имеет метода getMessages, поэтому вы должны проходить через каждый поток и получать сообщения для каждого конкретного потока).

function autocopy() {
  var label = GmailApp.getUserLabelByName("Sanmina EDI Failed Concurrent Jobs Alert");
  // Get all threads belonging to this label
  var threads = label.getThreads();
  // Loop through each thread
  for (var i = 0; i < threads.length; i++) {
    // Check whether thread is unread
    if (threads[i].isUnread()) {
      // Get all messages for each unread thread
      var messages = threads[i].getMessages();
      // Loop through all messages for each unread thread
      for (var j = 0; j < messages.length; j++) {
        // Check whether message is unread 
        // (delete this condition if you want all messages in an unread 
        // thread to be printed in your spreadsheet, read or unread)
        if (messages[j].isUnread()) {
          var day = messages[j].getDate();
          var bodyContent = messages[j].getBody(); // Use getPlainBody() instead if you don't want html tags;
          var action = bodyContent.search("Invoice");
          var action1 = bodyContent.search("Error");
          var action2 = bodyContent.search("Terminated");

          if (action > 0) {
            var out = "Need to create SR"
          } else if (action1 > 0 || action2 > 2) {
            var out = "Need to create SR"
          } else {
            var out = "Printing output file"
          }
          var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
          activeSheet.appendRow([day, bodyContent, out])
        }
      }
    }
  }
}

Я надеюсь, что это работает для вас!

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