Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
El activador de mi App Script funciona de forma inesperada y envía muchos correos a los mismos usuarios, aunque necesita enviar el correo solo una vez (al editar)

El código necesita enviar un correo electrónico solo una vez cuando hay una edición en la hoja 'KYC' de la hoja de cálculo de Google. Adjunto un disparador instalable a la función. También hay funciones similares y disparadores asociados para otras hojas (Total 8 hojas y 8 disparadores).

CODICIÓN: - el activador debe ejecutarse solo cuando una persona termine de editar la columna C, no cuando esté editando en la columna A o B.

Pero si se realiza una edición en cualquiera de las hojas de la hoja de cálculo de Google, se ejecutan todos los disparadores y la persona que se supone que debe recibir solo el correo termina recibiendo más de 20 correos a la vez.

 { var ss = SpreadsheetApp.getActive(); var sheet1 = ss.getSheetByName("KYC"); var value1 = sheet1.getRange("A13:A").getValue(); var value2 = sheet1.getRange("C13:C").getValue(); var value3 = sheet1.getRange("D13:D").getValue(); if(value1 !== "" && value2 !== "" && value3 !== "") { MailApp.sendEmail("abc@abc.com","Query added in KYC Sheet","A new query has been added in the KYC Sheet. Please confirm") MailApp.sendEmail("def@abc.com","Query added in KYC Sheet","A new query has been added in the KYC Sheet. Please confirm") MailApp.sendEmail("ghi@abc.com","Query added in KYC Sheet","A new query has been added in the KYC Sheet. Please confirm") } }```
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si desea enviar un correo electrónico solo una vez cuando alguien haya terminado de editar la columna C, solo considere la fila actual, es decir

 function specialOnEdit(event){ var sheet1 = event.source.getActiveSheet(); var rng = event.source.getActiveRange(); if (sheet1.getName()=='KYC' && rng.getColumn()==3){ var value1 = sheet1.getRange("A"+rng.getRow()).getValue(); var value2 = sheet1.getRange("C"+rng.getRow()).getValue(); var value3 = sheet1.getRange("D"+rng.getRow()).getValue(); if(value1 !== "" && value2 !== "" && value3 !== ""){ // send email sheet1.getRange("Z"+rng.getRow()).setValue('sent on '+new Date()) } } }

poner un activador instalable en specialOnEdit. También sugiero memorizar la fecha como indicador para saber si ya se envió un correo electrónico y probar el valor como para A, B y C.

about 4 years ago · Juan Pablo Isaza Report

0

Puede manejar el evento onEdit como aquí , pero también deberá eliminar este controlador

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!