Неизвестный статус при выполнении проекта скрипта Google App - PullRequest
1 голос
/ 09 мая 2019

У меня есть форма Google, которую полевые команды заполняют и отправляют. Прилагаемый javascript отправляет содержимое формы по электронной почте всем сотрудникам офиса.

Время исполнения очень длинное. У каждого есть 19496 зарегистрированных секунд, когда Gsuite должен автоматически завершить любой скрипт через 5 минут. Некоторые имеют статус «Неизвестно» в журнале выполнения скриптов приложения Google и 0 секунд.

Используется ли квота Gsuite? В моем скрипте есть ошибка?

Пользователь, запустивший триггер сценария, также получает сообщение о возврате, даже через все электронные письма, и лист Google обычно получает ответ из формы Google.

Я попытался добавить "if (e.values ​​&&! E.values ​​[1]) {return;}" в начало и "return;" внизу. Похоже, это не изменило проблему.

Я отредактировал приведенный ниже скрипт приложения Google, чтобы удалить реальный список адресов электронной почты, и сократил отчет. Цель формы Google состоит в том, чтобы предоставить реальное резюме их работы дня вместо просто "Работа выполнена" в электронном письме. Вместо этого они заполняют список из 15 вопросов.

function myFunction(e){

// Set values for event "e" from Response form, each number being a column in the spreadsheet 
    var value1 = e.values[1];
    var value2 = e.values[2];
    var value3 = e.values[3];
    var value4 = e.values[4];
    var value5 = e.values[5];


  // Build subject and message for email that will be sent out
    var subject1 = value5 + " Job #" + value2 + " " + value3 + " Job Report Submitted " + value1 + "    -oOo-";
        var message_html = "<b>Date:</b> " + value1 + "<br>" + 
                   "<b>Job Number:</b> " + value2 + "<br>" +
                     "<b>Site Name:</b> " + value3 + "<br>" +
                     "<b>Client:</b> " + value4 + "<br>" +
                       "<b>Crew Chief:</b> " + value5 + "<br>";            


     // Send email to chief, of what the chief submitted through the Response form
     var chiefemail = "leo@email.com"; //setting leo email as the default - but this should not be used based on below 
     var chiefname  = "Leo E.";

     if (value5 == "Bryan N.") {
                                    chiefemail = "bryan@email.com";
                                    chiefname  = "Brian N";}
     else if (value5 == "Carl B.") {
                                    chiefemail = "carl@email.com";
                                    chiefname = "Carl B";
                                   }
     else if (value5 == "Clay W.") {
                                    chiefemail = "clay@email.com";
                                    chiefname = "Clay W";
                                     }
     else if (value5 == "Dakota P."){
                                    chiefemail = "dakota@email.com";
                                    chiefname = "Dakota P";
                                     }



 // Send emails to all office staff:     

   var EmailList = "brian@email.com," + chiefemail; 


       MailApp.sendEmail({
                          to: EmailList,
                          subject: subject1,
                          htmlBody: message_html,
                          name: chiefname,
                          replyTo: chiefemail
                           });


}

Я хочу, чтобы сценарий завершился, и я не хочу получать сообщения о возврате. Помогите!

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Это стало происходить недавно и для меня тоже.

Согласно стенограмме Выполнения, мои выполнения goGet и goPost выполняются бесконечно, даже если сервер возвращает ответ довольно быстро.

Я заметил, что это происходит, только если я запускаю doGet и doPost как Анонимный пользователь в режиме приватного просмотра. Если я вошел в систему, то для этого конкретного запроса протокол выполнения будет вести себя нормально.

Я поддерживаю довольно большой скрипт Google Apps с довольно высоким уровнем использования в течение последних 1,5 лет. Это начало происходить совсем недавно с моим сценарием. Вызывает тревогу тот факт, что ваш пост SO довольно нов.

Копирование сценария в новый сценарий временно устраняет проблему, но, в конце концов, новый сценарий также начинает страдать от этой проблемы. Как только новый сценарий начинает показывать эти признаки, определенные части кода (особенно открытие и чтение программ Google Sheets программным способом) перестают работать должным образом и начинают глючить. Итак, я думаю, что эта проблема выходит за рамки просто визуальной проблемы в транскрипте Execution, и это отрицательно влияет на реальное поведение моего другого кода в этом сценарии.

1 голос
/ 09 мая 2019

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

function myFunction(e){
  if(e.values && e.values[1] && e.values[2] && e.values[3] && e.values[4] && e.values[5]) {
    var value1 = e.values[1];
    var value2 = e.values[2];
    var value3 = e.values[3];
    var value4 = e.values[4];
    var value5 = e.values[5];
    var subject1 = value5 + " Job #" + value2 + " " + value3 + " Job Report Submitted " + value1 + "    -oOo-";
    var message_html = "<b>Date:</b> " + value1 + "<br>" + 
      "<b>Job Number:</b> " + value2 + "<br>" +
        "<b>Site Name:</b> " + value3 + "<br>" +
          "<b>Client:</b> " + value4 + "<br>" +
            "<b>Crew Chief:</b> " + value5 + "<br>";            
    var chiefemail = "leo@email.com"; //setting leo email as the default - but this should not be used based on below 
    var chiefname  = "Leo E.";
    if (value5 == "Bryan N.") {
      chiefemail = "bryan@email.com";
      chiefname  = "Brian N";}
    else if (value5 == "Carl B.") {
      chiefemail = "carl@email.com";
      chiefname = "Carl B";
    }
    else if (value5 == "Clay W.") {
      chiefemail = "clay@email.com";
      chiefname = "Clay W";
    }
    else if (value5 == "Dakota P."){
      chiefemail = "dakota@email.com";
      chiefname = "Dakota P";
    }
    var EmailList = "brian@email.com," + chiefemail; 
    MailApp.sendEmail({
      to: EmailList,
      subject: subject1,
      htmlBody: message_html,
      name: chiefname,
      replyTo: chiefemail
    });
  }
}

Ваш перевод об этом здесь .Вы также можете проверить журнал стекового драйвера, чтобы увидеть, что происходит.

...