SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Automatizar tareas usando
1 / 17
@xacarana
Google Apps Script
Andrés Bedoya Tobón
@xacarana
2 / 17
Agenda
¿Qué es programación?
Automatizar tareas (Caso github)
¿Qué es Google Apps Scripts?
¿Para que es bueno (G.A.S)?
¿Para que No es bueno (G.A.S)?
Precauciones antes de empezar
¿Cómo funciona?
Resumen
1
Ejemplo
2
3
4
5
6
7
8
9
@xacarana
3 / 17
¿quées
programación?
Inicio
No
No
No
No
Si
Si
Si
Si
Fin
Buscar
un problema
Probar si
funciona
Compilar
Ejecutar
solución
Visualizar
graficamente
la solución
Traducir
instrucciones
para el computador
Ajustar
solución
¿Encontré
un problema?
¿Funcionó?
¿Compiló?
¿Los pasos
de la solución
estan completos?
Escribir pasos
para la solución
del problema
@xacarana
4 / 17
Automatizar
tareas
«Había un programador que se fue a
otra empresa, era el tipo de persona
que si algo requiere más de noventa
segundos de su tiempo, escribe un
script para automatizar eso» -Narkoz-
/NARKOZ/hacker-scripts
36.4k
fucking-coffee.sh - this one waits exactly 17 seconds (!), then opens a telnet
session to our coffee-machine (we had no frikin idea the coffee machine is on the
network, runs linux and has a TCP socket up and running) and sends something
like sys brew. Turns out this thing starts brewing a mid-sized half-caf latte and
waits another 24 (!) seconds before pouring it into a cup. The timing is exactly how
long it takes to walk to the machine from the dudes desk.
¿quées
google
apps
script?
Es una plataforma de desarrollo
rápido, que hace fácil y ágil crear
aplicaciones de negocio que se
puedan integrar con G Suite.
Se basa en Javascript 1.6 con algunas
partes de 1.7 y 1.8 y proporciona un
subconjunto de la API ECMAScript 5,
sin embargo en vez de ejecutarse en el
cliente, se ejecuta en Google Cloud.
No hay manipulación del DOM, lo único que se hace en el browser es la
escritura del código.
@xacarana
5 / 17
6 / 17
@xacarana
¿Para queesbueno(G.A.S)?
Para estudiar y aprender
a programar en javascript
Para tener una solución en la
nube con poca configuración
Para validar una funcionalidad
temporal, de manera rápida
Para crear una funcionalidad
personalizada en alguna de
las aplicaciones soportadas
de G Suite
Para combinar habilidades de
programación con una plata-
forma potente como Google
El código de la solución NO es
muy extenso.
@xacarana
7 / 17
¿Para queNOesbueno(G.A.S)?
Solución que
requiera ser:
Robusta,
escalable,
administrable,
mantenible,
entre otros
Trabajo sincronizado y dividido,
si bien drive es para trabajar en
equipo. Distribuir tareas entre
varias personas requiere de la
creación de un estandar extra,
que es innecesario.
Aunque es posible conectarse a
una base de datos usando JDBC
Service. Si tu programa requiere
de esto, posiblemente es mejor
migrar a otra solución.
Ya que una hoja de cálculo puede
ser usada como base de datos.
No es posible integración con:
frameworks, librerías o
servicios externos
para tenerencuenta
@xacarana
8 / 17Google drive dispone de herramientas de control de
cambios, trabajo offline y otras características para
garantizar la integridad de los datos. Antes de realizar
scripts o automatizar un proceso sobre información
valiosa, se recomienda trabajar sobre datos de prueba,
en un archivo que se pueda "dañar"
Los scripts, NO solicitan
confirmación para actualizar
campos, borrar datos o crear
nuevos registros, estos
procedimientos se realizan sin
preguntarle al usuario. En este
proceso se puede llevar el
archivo a un estado corrupto.
1 2 3
@xacarana
9 / 17
¿Cómofunciona? empezando
+Cuenta de google
+Acceso a drive
+Programación básica
+Entender funciones
+Código spaghetti
+Javascript*
+G.A.S API*
+Crear hoja de cálculo
+Ir a editor secuencia de comandos
+Escribir función inicial
+Guardar proyecto
+Seleccionar función
+Ejecutarla - play
+Asignar permiso
* Consultar los cheatsheet/ resumen de principales funcionalidades
@xacarana
10 / 17
+ ¿Qué es programación?
+ ¿Qué es automatizar un proceso?
+ ¿Qué es Google Apps Sript?
+ Pros / contras de G.A.S
+ ¿Cómo funciona?
@xacarana
11 / 17Los estudiantes universitarios, se sientan en
los mismos puestos de estudio, esto hace que
no conozcan nuevos amigos y se presenten
conflictos si otras personas usan su espacio.
problema
+Tener una lista de los estudiantes de clase
+Desordenar la lista
+ Asignar una silla del salón según el nuevo orden
+Diagramar los resultados
Pasospara solucionarelproblema
Se crea una tabla en una hoja de cálculo que simule
los puestos del salón, el tablero y a cada estudiante
por el nombre
Se traduce a código la solución
Validacióngráfica
Tablero
1. Juan
2. Ana
3. Luis
4. Cristina
5. Felipe
6. Rocio
7. Pedro
8. Lina
SalónEstudiantes
@xacarana
12 / 17
Tablero
1. Juan
2. Ana
3. Luis
4. Cristina
5. Felipe
6. Rocio
7. Pedro
8. Lina
SalónEstudiantes
1. Lina
2. Felipe
3. Juan
4. Pedro
5. Ana
6. Luis
7. Cristina
8. Rocio
Estudiantes
G.A.S
hoja decálculo
1 2 3 4
5 6 7 8
@xacarana
Código
13 / 17Variable Global:
var estudiantes = ["Juan","Ana","David","Lina"];
+ shuffle(array): Desordena un arreglo
+ invertColor(hex,bg), padZero(str, len):
Crea un color que contraste con un fondo *
+ getRandomColor():
Calcula un color aleatorio, para el fondo *
+ desordenador():
Interactua con la hoja de cálculo
Lista de funciones:
*: Funciones tomadas de stack over flow y otros sitios
@xacarana
14 / 17
function desordenador() {
var contador_estudiantes = 0;
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SillaApp");
var filas = 4, columnas = 9;
var celdas = hoja.getRange(4, 3, filas, columnas);
var celda,color;
shuffle(estudiantes);
for(var i= 1; i<=filas; i++)
{
for(var j= 1; j<=columnas; j++){
celda = celdas.getCell(i, j);
color = getRandomColor();
celda.setBackground(''+color);
celda.setWrap(true);
celda.setFontColor(invertColor(color,true));
if(contador_estudiantes<estudiantes.length)
{
celdas.getCell(i,j).setValue(estudiantes[contador_estudiantes++]);
}
}
}
}
Referencia
a la hoja
de cálculo
Referencia
a un rango
de datos
Referencia
a una celda
Se asigna
el fondo,
wrap,
color texto
Se asigna
el contenido
de la celda
@xacarana
15 / 17
silla app
@xacarana
Conclusiones16 / 17
G.A.S es una herramienta para soluciones
rápidas y prácticas
G.A.S Es el primer paso para automatizar
el segundo son los activadores
El API es muy poderosa, se pueden enviar
correos, programar eventos, entre otros
El editor de secuencia de comandos es un
excelente playground de JS
No todas las funciones de JS estan
disponibles (alert,confirm, prompt)
Solo se pide permiso para acceder a los
datos desde el script
@xacarana
17 / 17
github.com/xaca/talks
xacarana.com
@xacarana

Más contenido relacionado

Similar a Automatizar tareas usando GAP

Similar a Automatizar tareas usando GAP (20)

Atix20
Atix20Atix20
Atix20
 
Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
SEMANA6_trabajos6.doc
SEMANA6_trabajos6.docSEMANA6_trabajos6.doc
SEMANA6_trabajos6.doc
 
Sorribas
SorribasSorribas
Sorribas
 
Elaboracion de un_programa
Elaboracion de un_programaElaboracion de un_programa
Elaboracion de un_programa
 
Portafolio lic ale (3)
Portafolio lic ale (3)Portafolio lic ale (3)
Portafolio lic ale (3)
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Pres1
Pres1Pres1
Pres1
 
Busquedas y dominios
Busquedas y dominiosBusquedas y dominios
Busquedas y dominios
 
Curso de project
Curso de projectCurso de project
Curso de project
 
utilerías de G Suite.pptx
utilerías de G Suite.pptxutilerías de G Suite.pptx
utilerías de G Suite.pptx
 
Desmos y Google Colaboratory
Desmos y Google ColaboratoryDesmos y Google Colaboratory
Desmos y Google Colaboratory
 
Trabajo en equipo 1
Trabajo en equipo 1Trabajo en equipo 1
Trabajo en equipo 1
 
Visualfoxpro
VisualfoxproVisualfoxpro
Visualfoxpro
 
Dpss u3 a2_pecg
Dpss u3 a2_pecgDpss u3 a2_pecg
Dpss u3 a2_pecg
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
 
Aprende programar-6330
Aprende programar-6330Aprende programar-6330
Aprende programar-6330
 
Aprende programar-6330
Aprende programar-6330Aprende programar-6330
Aprende programar-6330
 
Exposicion unidad-iii
Exposicion unidad-iiiExposicion unidad-iii
Exposicion unidad-iii
 

Más de Andres Bedoya Tobon

Enums, constantes, listas e interfaces
Enums, constantes, listas e interfacesEnums, constantes, listas e interfaces
Enums, constantes, listas e interfacesAndres Bedoya Tobon
 
Taller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelTaller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelAndres Bedoya Tobon
 
Entrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoEntrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoAndres Bedoya Tobon
 
Progra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestProgra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestAndres Bedoya Tobon
 
03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructoresAndres Bedoya Tobon
 
Excel - Variables y condicionales
Excel - Variables y condicionalesExcel - Variables y condicionales
Excel - Variables y condicionalesAndres Bedoya Tobon
 
Elementos de programacion - Excel
Elementos de programacion - ExcelElementos de programacion - Excel
Elementos de programacion - ExcelAndres Bedoya Tobon
 
Programación y diseño orientado a objetos
Programación y diseño orientado a objetosProgramación y diseño orientado a objetos
Programación y diseño orientado a objetosAndres Bedoya Tobon
 
Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Andres Bedoya Tobon
 

Más de Andres Bedoya Tobon (20)

Enums, constantes, listas e interfaces
Enums, constantes, listas e interfacesEnums, constantes, listas e interfaces
Enums, constantes, listas e interfaces
 
VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
Taller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - ExcelTaller estudio - Estructuras de control VBA - Excel
Taller estudio - Estructuras de control VBA - Excel
 
Entrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de textoEntrada y salida, manejo de cadenas de texto
Entrada y salida, manejo de cadenas de texto
 
Progra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech FestProgra-Amando Medellin Tech Fest
Progra-Amando Medellin Tech Fest
 
04 curso poo Herencia
04 curso poo Herencia04 curso poo Herencia
04 curso poo Herencia
 
03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores03 curso poo Valores por defecto - constructores
03 curso poo Valores por defecto - constructores
 
02 curso poo Clase - Objeto
02 curso poo Clase - Objeto02 curso poo Clase - Objeto
02 curso poo Clase - Objeto
 
01 curso poo Funciones
01 curso poo Funciones01 curso poo Funciones
01 curso poo Funciones
 
Excel - Variables y condicionales
Excel - Variables y condicionalesExcel - Variables y condicionales
Excel - Variables y condicionales
 
Excel - Macros
Excel - MacrosExcel - Macros
Excel - Macros
 
Elementos de programacion 02
Elementos de programacion 02Elementos de programacion 02
Elementos de programacion 02
 
Taller de estudio - Excel
Taller de estudio - ExcelTaller de estudio - Excel
Taller de estudio - Excel
 
Elementos de programacion - Excel
Elementos de programacion - ExcelElementos de programacion - Excel
Elementos de programacion - Excel
 
Pull request - Hacktoberfest
Pull request - Hacktoberfest Pull request - Hacktoberfest
Pull request - Hacktoberfest
 
Abc tipografico Medellin CSS
Abc tipografico Medellin CSSAbc tipografico Medellin CSS
Abc tipografico Medellin CSS
 
Programación y diseño orientado a objetos
Programación y diseño orientado a objetosProgramación y diseño orientado a objetos
Programación y diseño orientado a objetos
 
Clean code
Clean codeClean code
Clean code
 
Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)Progra-amando <3 (Amor por la programación)
Progra-amando <3 (Amor por la programación)
 

Último

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 

Último (20)

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 

Automatizar tareas usando GAP

  • 1. Automatizar tareas usando 1 / 17 @xacarana Google Apps Script Andrés Bedoya Tobón
  • 2. @xacarana 2 / 17 Agenda ¿Qué es programación? Automatizar tareas (Caso github) ¿Qué es Google Apps Scripts? ¿Para que es bueno (G.A.S)? ¿Para que No es bueno (G.A.S)? Precauciones antes de empezar ¿Cómo funciona? Resumen 1 Ejemplo 2 3 4 5 6 7 8 9
  • 3. @xacarana 3 / 17 ¿quées programación? Inicio No No No No Si Si Si Si Fin Buscar un problema Probar si funciona Compilar Ejecutar solución Visualizar graficamente la solución Traducir instrucciones para el computador Ajustar solución ¿Encontré un problema? ¿Funcionó? ¿Compiló? ¿Los pasos de la solución estan completos? Escribir pasos para la solución del problema
  • 4. @xacarana 4 / 17 Automatizar tareas «Había un programador que se fue a otra empresa, era el tipo de persona que si algo requiere más de noventa segundos de su tiempo, escribe un script para automatizar eso» -Narkoz- /NARKOZ/hacker-scripts 36.4k fucking-coffee.sh - this one waits exactly 17 seconds (!), then opens a telnet session to our coffee-machine (we had no frikin idea the coffee machine is on the network, runs linux and has a TCP socket up and running) and sends something like sys brew. Turns out this thing starts brewing a mid-sized half-caf latte and waits another 24 (!) seconds before pouring it into a cup. The timing is exactly how long it takes to walk to the machine from the dudes desk.
  • 5. ¿quées google apps script? Es una plataforma de desarrollo rápido, que hace fácil y ágil crear aplicaciones de negocio que se puedan integrar con G Suite. Se basa en Javascript 1.6 con algunas partes de 1.7 y 1.8 y proporciona un subconjunto de la API ECMAScript 5, sin embargo en vez de ejecutarse en el cliente, se ejecuta en Google Cloud. No hay manipulación del DOM, lo único que se hace en el browser es la escritura del código. @xacarana 5 / 17
  • 6. 6 / 17 @xacarana ¿Para queesbueno(G.A.S)? Para estudiar y aprender a programar en javascript Para tener una solución en la nube con poca configuración Para validar una funcionalidad temporal, de manera rápida Para crear una funcionalidad personalizada en alguna de las aplicaciones soportadas de G Suite Para combinar habilidades de programación con una plata- forma potente como Google El código de la solución NO es muy extenso.
  • 7. @xacarana 7 / 17 ¿Para queNOesbueno(G.A.S)? Solución que requiera ser: Robusta, escalable, administrable, mantenible, entre otros Trabajo sincronizado y dividido, si bien drive es para trabajar en equipo. Distribuir tareas entre varias personas requiere de la creación de un estandar extra, que es innecesario. Aunque es posible conectarse a una base de datos usando JDBC Service. Si tu programa requiere de esto, posiblemente es mejor migrar a otra solución. Ya que una hoja de cálculo puede ser usada como base de datos. No es posible integración con: frameworks, librerías o servicios externos
  • 8. para tenerencuenta @xacarana 8 / 17Google drive dispone de herramientas de control de cambios, trabajo offline y otras características para garantizar la integridad de los datos. Antes de realizar scripts o automatizar un proceso sobre información valiosa, se recomienda trabajar sobre datos de prueba, en un archivo que se pueda "dañar" Los scripts, NO solicitan confirmación para actualizar campos, borrar datos o crear nuevos registros, estos procedimientos se realizan sin preguntarle al usuario. En este proceso se puede llevar el archivo a un estado corrupto.
  • 9. 1 2 3 @xacarana 9 / 17 ¿Cómofunciona? empezando +Cuenta de google +Acceso a drive +Programación básica +Entender funciones +Código spaghetti +Javascript* +G.A.S API* +Crear hoja de cálculo +Ir a editor secuencia de comandos +Escribir función inicial +Guardar proyecto +Seleccionar función +Ejecutarla - play +Asignar permiso * Consultar los cheatsheet/ resumen de principales funcionalidades
  • 10. @xacarana 10 / 17 + ¿Qué es programación? + ¿Qué es automatizar un proceso? + ¿Qué es Google Apps Sript? + Pros / contras de G.A.S + ¿Cómo funciona?
  • 11. @xacarana 11 / 17Los estudiantes universitarios, se sientan en los mismos puestos de estudio, esto hace que no conozcan nuevos amigos y se presenten conflictos si otras personas usan su espacio. problema +Tener una lista de los estudiantes de clase +Desordenar la lista + Asignar una silla del salón según el nuevo orden +Diagramar los resultados Pasospara solucionarelproblema Se crea una tabla en una hoja de cálculo que simule los puestos del salón, el tablero y a cada estudiante por el nombre Se traduce a código la solución Validacióngráfica Tablero 1. Juan 2. Ana 3. Luis 4. Cristina 5. Felipe 6. Rocio 7. Pedro 8. Lina SalónEstudiantes
  • 12. @xacarana 12 / 17 Tablero 1. Juan 2. Ana 3. Luis 4. Cristina 5. Felipe 6. Rocio 7. Pedro 8. Lina SalónEstudiantes 1. Lina 2. Felipe 3. Juan 4. Pedro 5. Ana 6. Luis 7. Cristina 8. Rocio Estudiantes G.A.S hoja decálculo 1 2 3 4 5 6 7 8
  • 13. @xacarana Código 13 / 17Variable Global: var estudiantes = ["Juan","Ana","David","Lina"]; + shuffle(array): Desordena un arreglo + invertColor(hex,bg), padZero(str, len): Crea un color que contraste con un fondo * + getRandomColor(): Calcula un color aleatorio, para el fondo * + desordenador(): Interactua con la hoja de cálculo Lista de funciones: *: Funciones tomadas de stack over flow y otros sitios
  • 14. @xacarana 14 / 17 function desordenador() { var contador_estudiantes = 0; var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SillaApp"); var filas = 4, columnas = 9; var celdas = hoja.getRange(4, 3, filas, columnas); var celda,color; shuffle(estudiantes); for(var i= 1; i<=filas; i++) { for(var j= 1; j<=columnas; j++){ celda = celdas.getCell(i, j); color = getRandomColor(); celda.setBackground(''+color); celda.setWrap(true); celda.setFontColor(invertColor(color,true)); if(contador_estudiantes<estudiantes.length) { celdas.getCell(i,j).setValue(estudiantes[contador_estudiantes++]); } } } } Referencia a la hoja de cálculo Referencia a un rango de datos Referencia a una celda Se asigna el fondo, wrap, color texto Se asigna el contenido de la celda
  • 16. @xacarana Conclusiones16 / 17 G.A.S es una herramienta para soluciones rápidas y prácticas G.A.S Es el primer paso para automatizar el segundo son los activadores El API es muy poderosa, se pueden enviar correos, programar eventos, entre otros El editor de secuencia de comandos es un excelente playground de JS No todas las funciones de JS estan disponibles (alert,confirm, prompt) Solo se pide permiso para acceder a los datos desde el script