Visão geral:
- Estou tentando enviar uma mensagem de notificação por e-mail sempre que a palavra-chave Concluído for listada em uma coluna (CJ).
- Não tenho certeza se estou usando a abordagem correta, mas a função validate_complete verifica se o valor está listado na coluna CJ. Se existir, ela preenche a coluna CK (na mesma linha) com o texto 'Enviar e-mail' .
- O texto 'Enviar e-mail' inicia a função Send_notification e o e-mail é entregue no endereço de e-mail especificado.
- Também criei um gatilho, que deve iniciar a função validate_complete sempre que "Enviar e-mail" for listado na coluna (CK).
Edição atual:
Quando o Trigger é executado, ele é executado por vários minutos e expira ou envia várias mensagens de e-mail de uma vez. É preciso enviar apenas uma mensagem de e-mail quando o texto 'Enviar e-mail' estiver listado para uma linha especificada na coluna (CK), então limpe o texto 'Enviar e-mail' para que vários e-mails não sejam enviados se outra linha também contiver o texto 'Enviar e-mail' .
Mais orientações são muito apreciadas. Obrigado
function validate_complete(){
const ss = SpreadsheetApp.getActive();
const sh_01 = ss.getSheetByName('Index');
const data = sh_01.getRange('CI2:CK'+sh_01.getLastRow()).getValues();
var columnNumberToWatch = 88; // column A = 1, B = 2, etc.
var valueToWatch = 'Complete';
data.forEach(r=>{
var range = sh_01.getActiveCell();
if (range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
range.offset(0, 1).setValue('Send Email');
}
});
sendnotificationEmail();
}
function sendnotificationEmail() {
const ss = SpreadsheetApp.getActive();
const sh_02 = ss.getSheetByName('Index');
const date_range = sh_02.getRange('BW2').getValues();
const data_02 = sh_02.getRange('CI2:CK'+sh_02.getLastRow()).getValues();
var recipient = "[email protected],[email protected]";
data_02.forEach(r=>{
let overdueValue = r[2];
if (overdueValue === "Send Email"){
let name = r[0];
let message = ' Test: ' + name ;
let subject = 'Test: '+ name + ', ' + date_range + ' Inspections are available' ;
MailApp.sendEmail(recipient, subject, message);
}
var range_02 = sh_02.getRange('CK2:CK100');
range_02.clear();
});
}