O que é e para que serve o Google Apps Scripts - Meta Dev

O que é e para que serve o Google Apps Scripts

Conheça o Google Apps Scripts, uma plataforma de desenvolvimento de aplicativos para os serviços do G Suite.

Receba nosso Conteúdo VIP

Artigos, dicas, e-books e muito mais, tudo de forma gratuita! Receba nosso conteúdo exclusivo e com prioridade.

Se você é um usuário dos produtos Office, como o Excel, provavelmente já ouviu falar sobre Macros. As Macros funcionam como sub-rotinas, que podem ser pré-programadas pelo usuário ou seja é como “ensinar” ao Excel como realizar uma certa tarefa, onde ele irá armazenar cada ação que foi feita durante a gravação da rotina.

No entanto, a utilização deste recurso possui limitações, é então que utilizamos o VBA (Visual Basic for Applications, que é uma implementação da linguagem de programação Visual Basic para os produtos Office e que pode ser utilizada no Microsoft Excel.

Com o VBA, o usuário tem maior poder na customização das planilhas por exemplo, podendo criar automatizações de diversos processos.

O que é o G Suite?

Começamos falando sobre o Microsoft Excel, porém nosso foco para este artigo, será o G Suite. Mas o que é o G Suite?

Semelhantemente ao pacote Office, da Microsoft, que oferece acesso a pacotes de escritório e produtividade, é um serviço da Google que fornece acesso a vários aplicativos da empresa, sendo alguns deles o Gmail, Google Agenda, Drive, Planilhas, Play, Sites, ebtre outros.

O que é o Google Apps Scripts?

Em 19 de agosto de 2009 a Google lançou o Google Apps Script, que é uma plataforma para o desenvolvimento de aplicativos para os serviços do G Suite, baseado no JavaScript. Um recurso muito parecido com a programação em VBA (Visual Basic for Applications) para os produtos Office.

É com este recurso que são construídos os complementos ou add-ons para os aplicativos da Google, presentes no G Suite.

Algumas das vantagens de se utilizar o Google Apps Scripts são:

  • Não é necessário nenhum Hardware especial, tudo é executado nos próprios servidores em nuvem da Google.
  • Para os desenvolvedores, a plataforma possui uma documentação bem detalhada.
  • Não há necessidade de instalação de nenhum software adicional.

Utilização da Plataforma

Como falamos anteriormente, o Google Apps Scripts nos permite criar aplicativos para os produtos do G Suite e para isso nós precisamos de uma conta Google ativa.

Para este artigo, iremos utilizar como exemplo o Google Planilhas, implementado um código no Google Apps Script para manipulá-la, criando algumas funções que nos ajudarão nos nossos processos.

O processo a ser otimizado, é referente a uma empresa de Delivery, onde o administrador registrará os pedidos na planilha e também o nome e e-mail do cliente. Nosso aplicativo deve auxiliar o administrador a gerenciar os status destes pedidos e avisar os clientes sobre estas alterações via e-mail, utilizando um menu para isso.

Para começar, realize o login em Google Contas, em seguida acesse o Google Planilhas.

Criamos uma planilha com os dados do pedido, conforme abaixo:

O que é e para que serve o Google Apps Scripts

Imagem 1. Planilha criada no Google Planilhas

 

Em seguida, iremos acessar o editor de Scripts e criar um Script que será atrelado à nossa planilha. Para acessar o editor, acesse o menu Ferramentas e clique em Editor de script.

O que é e para que serve o Google Apps Scripts

Imagem 2. Acesso ao editor de script através do menu Ferramentas

 

O editor de script será aberto, então aqui podemos iniciar o nosso processo de programação, mas antes, você deve dar um nome ao projeto. Clique no título do Projeto, onde atualmente está escrito “Projeto sem título” e dê um nome ao projeto. Daremos o nome de Delivery.

O que é e para que serve o Google Apps Scripts

Imagem 3. Editor de script do Google Apps Script

 

A plataforma oferece uma maneira de acessar os dados dos produtos Google Suite utilizando o script, por meio de objetos globais, que oferecem métodos que nos permitem manipular esses serviços, estes métodos são semelhantes aos objetos JavaScript, como por exemplo o objeto Math.

Para uma melhor ilustração, iremos definir 2 variáveis globais no script, referente aos 2 serviços que vamos utilizar: Google Sheets e Gmail.

/* Objetos dos serviços */

var sheet = SpreadsheetApp; // Objeto do serviço Google Planilhas

var gmail = GmailApp; // Objeto do serviço Gmail

 

/* Objetos de interface */

var ui = sheet.getUi(); //Objeto para manipular a interface da planilha

Além disso, iremos definir outras variáveis globais, para definir parâmetros de configurações das funções que iremos utilizar. Não se preocupe ainda em entender estas variáveis, no decorrer do código elas serão explicadas.

/* Configurações */

//E-mail

var emailAtivo = 0; //1 para ativar o envio de e-mail de aviso ao alterar status do pedido e 0 para desativar

var colunaDestinatarioNome = "B"; //Letra da coluna do nome do destinatário

var colunaDestinatarioEmail = "C"; //Letra da coluna do e-mail do destinatário

var colunaNumPedido = "A"; //Letra da coluna do número do pedido

var nomeEmpresa = "Entregas Rápidas"; //Nome da empresa, será utilizado no envio da mensagem de e-mail

 

//Planilha

var planilhaValida = "Envios"; //Nome da planilha que deverá estar ativa ao usar as funções criadas

var corSaiuParaEntrega = "blue"; //Cor de background da célula para o status “Saiu para entrega”

var corEntregue = "green"; //Cor de background da célula para o status “Entregue”

/* fim Configurações */

O Google Apps Scripts também nos fornece funções de evento, ou seja, sempre que um evento é acionado, uma função é executada automaticamente, alguns dessas funções de evento são:

  • onOpen(e);
  • onEdit(e);
  • onInstall(e);

Iremos utilizar o evento onOpen(e) para criar os menus que utilizaremos no aplicativo, ele será disparado sempre que a planilha for aberta. No nosso caso, queremos que ao abrir a planilha, seja criado um menu chamado “Alterar Status” que irá conter 2 funções: Saiu para Entrega e Entregue.

//Ao abrir a planilha, cria os menus definidos na função criaMenu()

function onOpen(e){

  criarMenus();

}

 

//Cria o menu “Alterar Status” e seus itens: "Saiu para Entrega" e “Entregue”

function criarMenus(){

  sheet.getUi().createMenu('Alterar Status') //Cria o menu

  .addItem('Saiu para Entrega', 'saiuParaEntrega') //Adiciona o Item “Saiu Para Entrega” que executa a função “saiuParaEntrega” que será definida logo abaixo

  .addItem('Entregue', 'entregueNoDestino') //Adiciona o Item “Entregue” que executa a função “entregueNoDestino” que será definida logo abaixo

  .addToUi(); //Adiciona o elemento à interface da planilha

}

Neste momento, já teremos a primeira alteração direta na planilha, vamos salvar nosso código e ver como está ficando. Cole o código no editor de script e salve utilizando o atalho CTRL + S e atualize a página da sua planilha.

O que é e para que serve o Google Apps Scripts

Imagem 4. O menu “Alterar Status” foi criado na barra de ferramentas após a planilha ser carregada.

 

Já temos o menu criado, porém se clicarmos nele, teremos uma mensagem de erro sendo exibida. Note que nas função addItem() do objeto sheet, nós informamos 2 parâmetros, o segundo é a função a ser executada ao clicar naquele item, então vamos definir elas e também definiremos as funções de validação e manipulação da planilha:

function saiuParaEntrega(){

 

  //Define o valor da célula selecionada para "Saiu para Entrega"

  sheet.getActive().getActiveCell().setValue("Saiu para Entrega");

 

//Se o valor da variável global “emailAtivo” for 1 (true), executará a função enviaEmail()

if(emailAtivo){

    enviaEmail("Saiu para Entrega");

  } 

  //Muda a cor de background da célula ativa para azul

  if(validaPlanilhaAtiva){

    mudarCorFundo(corSaiuParaEntrega);

  }else{

    ui.alert("Erro: Para utilizar esta função, use a planilha " + planilhaValida);

  }

}

 

function entregueNoDestino(){

 

//Armazena a data e horário atual para registrar o momento da entrega

  var dataAtual = Utilities.formatDate(new Date(), "America/Sao_Paulo", "dd/MM/yyyy HH:mm");

 

  //Define o valor da célula selecionada para "Entregue" + data e horário atual

  sheet.getActive().getActiveCell().setValue("Entregue " + dataAtual);

 

//Se o valor da variável global “emailAtivo” for 1 (true), executará a função enviaEmail()

  if(emailAtivo){

    enviaEmail("Entregue no destino");

  }

 

  //Muda a cor de background da célula ativa para azul

  if(validaPlanilhaAtiva){

    mudarCorFundo(corEntregue);

  }else{

    ui.alert("Erro: Para utilizar esta função, use a planilha " + planilhaValida);

  }

 

}

 

//Envia e-mail de alerta para o destinatário informando o status selecionado

function enviaEmail(status){

 

  //Seleciona o e-mail da linha que está ativa

  var linha = sheet.getActiveRange().getRow();

 

  //Seleciona o e-mail do destinatário da linha que está ativa, utilizando a notação coluna + número da linha, que no nosso caso a coluna é B

  //Como definimos na variável global e a linha é detectada dinamicamente

  var destinatarioEmail = sheet.getActive().getRangeByName(colunaDestinatarioEmail + linha).getValue();

 

  //Seleciona o nome do destinatário e o número do pedido utilizando o mesmo conceito da variável destinatarioEmail, porém utilizando a coluna A

  var destinatarioNome = sheet.getActive().getRangeByName(colunaDestinatarioNome + linha).getValue();

  var numPedido = sheet.getActive().getRangeByName(colunaNumPedido + linha).getValue();

 

  var assunto = "Olá " + destinatarioNome + " seu pedido " + status;

  var mensagem = "Olá " + destinatarioNome + "!\nEstamos enviando este e-mail para avisar que seu pedido na " + nomeEmpresa + " de número" + numPedido + " tem um novo status: " + status;

 

  //Envia um e-mail utilizando a conta autenticada

  //Parâmetros da função: gmail.sendEmail(recipient, subject, body, options);

  gmail.sendEmail(destinatarioEmail,

                  assunto,

                  mensagem,

                  {name: nomeEmpresa});

}

 

//Muda a cor do fundo da célula selecionada de acordo com a variável de configuração informada no parâmetro

function mudarCorFundo(cor){

  sheet.getSelection().getCurrentCell().setBackground(cor);

}

 

//Valida se a planilha que está ativa é a mesma informada na variável de configuração "planilhaValida"

function validaPlanilhaAtiva(){

 

  var planilhaAtiva = sheet.getActiveSheet().getName();

 

  if(planilhaAtiva != planilhaValida){

    return false;

  }else{

    return true;

  }

}

Nas funções saiuParaEntrega() e entregueNoDestino(), definimos quais ações irão ser executadas ao clicar nos menus “Saiu Para Entrega” e “Entregue”.

Basicamente, utilizamos o objeto sheet (que manipula a planilha) para definir o valor da célula selecionada (na mesma linha do pedido que queremos alterar o status e na coluna status) para o valor que escolhemos no menu.

Também verificamos a se a função validaPlanilhaAtiva() retorna true. E o que estamos verificando na função validaPlanilhaAtiva()? Nós armazenamos o valor da planilha que está ativa na variável planilhaAtiva e então comparamos ele com a variável global de configuração planilhaValida, se os dois valores forem iguais, a execução é permitida. Isso evita que erros sejam gerados caso o script seja executado onde não deve ser executado.

Em seguidas verificamos a variável global emailAtivo, se o status dela for 1 (true) queremos que a função enviaEmail() seja executada, informando o parâmetro “Saiu para Entrega”. Logo após, utilizamos uma função para mudar a cor de background da célula selecionada utilizando o objeto sheet.

Caso alguma das verificações falhem, utilizamos o objeto ui para exibir um alerta de erro.

Na função enviaEmail(), o status da entrega é recebido via parâmetro. Nesta função, nós vamos montar o e-mail a ser enviado para o cliente, definimos as variáveis: destinatarioEmail, destinatarioNome, numPedido, assunto e mensagem.

Para atribuir o valor destas propriedades, utilizamos também o objeto sheet que por sua vez, utiliza a função getRangeByName(), recebendo como parâmetro a variável linha e a variável global de configuração coluna, para formar o valor: LINHA + LETRA DA COLUNA e então teremos os valores presentes nestas células.

Vamos salvar o código e testar.

O que é e para que serve o Google Apps Scripts

Imagem 5. Após clicar no menu “Saiu para Entrega” o valor da célula e o background é alterado.

 

Se tudo estiver certo, o script será executado e o valor da célula selecionado será alterado.

Porém não recebemos nenhum e-mail, então vamos mudar o valor das variáveis globais de configuração e atribuir o valor da variável emailAtivo para 1 (true).

/* Configurações */
//E-mail
var emailAtivo = 1; //1 para ativar o envio de e-mail de aviso ao alterar status do pedido e 0 para desativar

E então:

O que é e para que serve o Google Apps Scripts

Imagem 6. A célula que estava selecionada recebe o status “Entregue” e o e-mail de aviso é enviado.

 

 

Conclusão

Vimos para que serve e como funciona a plataforma Google Apps Script. Utilizamos como exemplo os manipuladores dos serviços Google Planilhas e Gmail para criar um aplicativo de Delivery, onde podemos alterar o status de cada pedido e avisar ao cliente cada alteração, usando algumas funções disponibilizadas pela plataforma para termos uma ideia da maneira como essa manipulação é feita.

Trabalhar com o Google Apps Script abre diversas possibilidades, temos inúmeras opções de manipulação, podendo trabalhar com qualquer produto do G Suite. Inquestionavelmente, é uma ótima opção para pequenas e médias empresas que desejam potencializar ainda mais os seus resultados e produtividade com os produtos Google.

Você gostaria de personalizar sua experiência no G Suite?

Solicite uma proposta e te ajudaremos a personalizar sua experiência usando o Google Apps Script

Olá, deixe seu comentário para O que é e para que serve o Google Apps Scripts

Enviando Comentário Fechar :/