Acionador / Trigger

75 views
Skip to first unread message

Diego Messias

unread,
May 25, 2023, 1:55:13 PM5/25/23
to Google Apps Script Community
Meus amigos, tenho uma duvida relativamente simples.

Tenho um script de uma função para escrever algumas informações em uma coluna de uma planilha (criarNumeroSequencial()). O script funciona bem quando acionado manualmente.

Porém estou tentando aplicar um acionador simples para automatizar a execução do script a cada 5 minutos. Na tela de execuções são exibidas as oportunidades em que o acionador é ativado e não apresentam falhas. Porém não são geradas as informações na planilha, como acontece com o acionamento manual.

Alguém consegue me auxiliar?

Código principal
function criarNumeroSequencial() {
  var planilha = SpreadsheetApp.getActiveSpreadsheet();
  var aba = planilha.getActiveSheet();
  var dados = aba.getDataRange().getValues();

  // Começa a criação do número sequencial a partir da célula N3
  var linhaInicial = 2;

  for (var i = linhaInicial; i < dados.length; i++) {
    var celulaK = aba.getRange("K" + (i + 1));
    var celulaN = aba.getRange("N" + (i + 1));

    if (celulaK.getValue() !== "" && celulaN.getValue() === "") {
      var celulaE = aba.getRange("E" + (i + 1));
      var data = new Date(celulaE.getValue());
      var dia = data.getDate();
      var mes = data.getMonth() + 1;

      // Gera três números aleatórios entre 100 e 999
      var numeroAleatorio = Math.floor(Math.random() * 900) + 100;

      // Formata o número sequencial com 7 caracteres (dia, mês e 3 números aleatórios)
      var numeroSequencial = ("0" + dia).slice(-2) + ("0" + mes).slice(-2) + numeroAleatorio;

      celulaN.setValue(numeroSequencial);
    }
  }
}


Código do acionador
function configurarAcionador() {
  // Configura o acionador para executar a função criarNumeroSequencial a cada 3 minutos
  ScriptApp.newTrigger("criarNumeroSequencial")
    .timeBased()
    .everyMinutes(5)
    .create();
}





Reply all
Reply to author
Forward
0 new messages