Como crear triggers con Google Apps Script


A medida que avanzamos en nuestros proyectos con Google Apps Script acabamos siempre con la necesidad de instalar triggers. Generalmente si son para uno mismo se setean los triggers a mano, pero, si estas vendiendo tu código lo mejor es que hagas una función para instalar triggers con Google Apps Script.

Triggers instalados con Google Apps Script


De esta manera, tu cliente sabe que solo debe ejecutar una función y tendrá todo el sistema seteado ( y tu te quitaras muchos dolores de cabeza explicandole como se hace para poner un trigger :) )

Hacer un instalador de triggers, aunque sea poco código ya es materia avanzada, así que ante cualquier duda, no vaciléis en preguntar.

No os pongo todos los triggers por que hay bastantes, pero si lo más usuales. No hace falta mucha explicación por que el nombre de las funciones lo dice todo.

1.Basados en tiempo
function CrearTriggerCiclico()
{
    ScriptApp.newTrigger('FuncionAEjecutar')
      .timeBased()
      .everyMinutes(5)
      .create();
}

function CrearTriggerDiario()
{
    ScriptApp.newTrigger("FuncionAEjecutar")
      .timeBased()
      .atHour(5)
      .everyDays(1)
      .create();
}
 
function CrearTriggerSemanal()
{
    ScriptApp.newTrigger('FuncionAEjecutar')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.SUNDAY)
      .atHour(12)
      .create();
}

function CrearTriggerMensual()
{
   ScriptApp.newTrigger("FuncionAEjecutar")
     .timeBased()
     .onMonthDay(1)
     .create();
}


2. Basados en formulario
function CrearTriggerFormulario()
{
    var form = FormApp.openById('id_del_formulario');
    ScriptApp.newTrigger('FuncionAEjecutar')
      .forForm(form)
      .onFormSubmit()
      .create();
}

Si os va mal tener el identificador del formulario y preferís usar los triggers con el identificador del spreadsheet se puede hacer exactamente lo mismo pero por otro camino.
function CrearTriggerFormulario()
{
   var sheet = SpreadsheetApp.getActive();
   ScriptApp.newTrigger("FuncionAEjecutar")
     .forSpreadsheet(sheet)
     .onFormSubmit()
     .create();
}

function CrearTriggerFormularioAlEditar()
{
    var form = FormApp.openById('id_del_formulario');
    ScriptApp.newTrigger('FuncionAEjecutar')
      .forForm(form)
      .onOpen()
      .create();
}

3. Basados en calendario
function CrearTriggerCalendario()
{
  ScriptApp.newTrigger('FuncionAEjecutar')
    .forUserCalendar(Session.getActiveUser().getEmail())
    .onEventUpdated()
    .create();
}

4. Basdados en cambios externos al spreadsheet ( APIs )
function CrearTriggerOnChange()
{
    var sheet = SpreadsheetApp.getActive();
    ScriptApp.newTrigger("FuncionAEjecutar")
      .forSpreadsheet(sheet)
      .onChange()
      .create();
}

5. Como eliminar los triggers
function EliminarTriggers()
{
  var allTriggers = ScriptApp.getProjectTriggers();
 
  for (var i = 0; i < allTriggers.length; i++)
  {
     ScriptApp.deleteTrigger(allTriggers[i]);
  }
}

Espero que os sirva, realmente el tema de instalar triggers aunque no es para nada fácil le da una potencia brutal a nuestros Google Apps Scripts.

Espero vuestras dudas y sugerencias

Nos vemos

No hay comentarios:

Publicar un comentario

Tal vez te interese