Solo quiero pedir ayuda con respecto a mi codificación en Google App Script.
Objetivo: Estoy tratando de enviar correos electrónicos una vez que satisfago la condición 3 (la condición 2 está en la misma columna). Y una vez que la secuencia de comandos ya envió un correo electrónico a ese número de control específico, la secuencia de comandos no debería enviarse nuevamente a esa transacción. Sin embargo, sigue enviando correos electrónicos incluso si el script ya se envió a esa transacción. No puedo encontrar dónde está el problema o si no estoy satisfaciendo la condición que establecí.
Columna SubmissionStatus tiene "Final, Cancelled, Draft" Column processBy have (solo "ADMIN")
if (submissionStatus !== "Draft" && processBy !== "") { // Prevents sending duplicates var subject = "Cash_Advance "; MailApp.sendEmail(currentEmail, subjectline, messageBody); sheet.getRange(startRow + i, 38).setValue(EMAIL_SENT +" "+ Date()); // column AL // Make sure the cell is updated right away in case the script is interrupted SpreadsheetApp.flush(); } //close if statement if (submissionStatus !== "Cancelled" && processBy !== "") { // Prevents sending duplicates var subject = "Cash_Advance "; MailApp.sendEmail(currentEmail, subjectline, messageBody); sheet.getRange(startRow + i, 38).setValue(EMAIL_SENT +" "+ Date()); // column AL // Make sure the cell is updated right away in case the script is interrupted SpreadsheetApp.flush(); } //close if statementSimplemente puede fusionar esas dos declaraciones if en una, tal vez por eso está enviando correos electrónicos más de una vez.
Mediante el uso de estado de submissionStatus === "Final"
En el contexto de su última edición: -
Columna SubmissionStatus tiene "Final, Cancelled, Draft" Column processBy have (solo "ADMIN")
Modificación:
if (submissionStatus === "Final" && processBy !== "") // Prevents sending duplicates { var subject = "Cash_Advance "; MailApp.sendEmail(currentEmail, subjectline, messageBody); sheet.getRange(startRow + i, 38).setValue(EMAIL_SENT +" "+ Date()); // column AL // Make sure the cell is updated right away in case the script is interrupted SpreadsheetApp.flush(); } //close if statement