Integrace s Google Tabulkami

Docházka GIRITON nabízí pro veškerou práci s daty také REST api, které mohou firmy použít pro integraci GIRITONu do dalších vnitropodnikových systémů.

Google Tabulky umí REST api používat a je tak jednoduché napojit data z GIRITONu do vaší Google Tabulky. Můžete tak například při každém otevření Google Tabulky načíst z GIRITONu seznam aktuálně přítomných osob, vypsat je do nějakého listu vaší tabulky a pomocí vlastních excel vzorečků s těmito daty dále pracovat.

Zprovoznění integrace GIRITON REST api do Google Tabulky

Otevřete vaši Google Tabulku, do které chcete data z GIRITONu integrovat. V horním menu vyberte  Nástroje -> Editor skriptu. V okně, které vidíte, můžete pomocí Google App Script psát jednoduché funkce, vytvářet v Google Tabulce vlastní menu, tlačítka, reagovat na  různé události, pracovat s daty z tabulky a také stahovat data z REST api jiných služeb. Script odtud můžete spouštět, debugovat, prohlížet hodnoty jednotlivých proměnných atp. Přikládáme ukázku kódu, který provede stažení aktuálně přítomných osob a zapíše je do listu tabulky.

//funkce onOpen se volá automaticky při každém otevření Google Tabulky
function onOpen() {
	var ui = SpreadsheetApp.getUi();
	ui.createMenu('GIRITON Integrace') //Přidání grafickeho Menu do Google Tabulky
		.addItem('Synchronizovat směny','refreshDataFromGiriton')
		.addToUi();
}

function refreshDataFromGiriton() {
try{
var urlOptions = {
"method" : "GET",
"headers" : {
"giriton-token" : "vasRestApiToken", //REST api token vygenerovaný v aplikaci
"cache-control": "no-cache"
}
};

var urlAddress = "https://rest.giriton.com/system/api/attendance/userActivity";//Adresa REST api
var response = UrlFetchApp.fetch(urlAddress, urlOptions);
var respDataText = response.getContentText();
var respData = JSON.parse(respDataText);

var output = [];

respData.forEach(function(elem,i) {
var inProgressActivity = elem["inProgressActivity"];
var inprogressActivityName = "";
if(inProgressActivity){
inprogressActivityName = inProgressActivity["name"];
}
output.push([elem["person"]["firstName"], elem["person"]["lastName"], inprogressActivityName ]);
});

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data z GIRITON REST api");
sheet.clearContents();
sheet.getRange(1,1,output.length,3).setValues(output);
} catch(error) {
Browser.msgBox(error); //Pokud nastane chyba, zobrazíme ji uživateli
throw error;
}
}

Ukázka kódu při otevření Google Tabulky přidá vlastní menu nazvané "GIRITON Integrace", do něj vloží pod-menu "Synchronizovat data". Když na toto pod-menu kliknete, zavolá se funkce refreshDataFromGiriton(), která provede stažení dat z REST api GIRITONu, načtení těchto dat do pole output, smazání veškerého obsahu z listu s názvem "Data z GIRITON REST api" a uložení načtených dat do tohoto listu vaší Google Tabulky. V tomto konkrétním případě se volá REST api pro stažení aktuálně přítomných osob.

V horní části okna Google Script editoru můžete skript (resp. jeho vybranou metodu) spouštět, debugovat i krokovat. Při prvním spuštění se vás Google zeptá, jestli danému skriptu důvěřujete a povolujete mu přístup k vaším Google Dokumentům,  přístup povolte.

Pozor, pokud při vykonávání skriptu dojde k chybě, díky řádku  Browser.msgBox(error) se tato chyba zobrazí v okně se samotnou Google Tabulkou (tedy jiné okno, než ve kterém právě upravujete App Script). Dokud chybu v okně s tabulkou neodkliknete, skript stále poběží a neskončí.

Automatické načtení dat při otevření Google Tabulky

Pokud nechcete pro obnovení dat klikat na menu ve vaší Google Tabulce, ale místo toho chcete data načíst automaticky při otevření Google Tabulky, klikněte v Google Tabulce v menu na  Nástroje - Editor Skriptu - Upravit - Spouštěče aktuálního projektu. V novém okně klikněte dole na "+ Přidat spouštěč" a volby nastavte takto Vybrat funkci ke spuštění -> refreshDataFromGiritonVybrat implementaci ke spuštění -> HeadVyberte zdroj události -> Z tabulkyVyberte typ události -> Při otevření. Nakonec klikněte na Uložit. Nyní se při každém otevření vašeho dokumentu automaticky provede načtení dat z REST api. Berte prosím na vědomí, že volání REST api může trvat několik sekund.

Ukázky AppScriptů pro Google Tabulky

Sbírku různých AppScriptů pro integraci s Docházkou GIRITON naleznete zde.

Další ukázky použití Google App Script naleznete třeba zde .