Ohjelmistorajapinta

Ulkoisten sovellusten integrointi Tabellaan voidaan toteuttaa kolmella eri tavalla, jotka mahdollistavat Tabellan tallentamien tietojen lukemisen.

  1. Siirrot tiedostoon

  2. Tabella SQL Export

  3. Tabella Web Service

Tabella SQL Export

Tabella SQL Export on lisensoitu ominaisuus, jossa uloskirjoitetaan ulkopuoliseen tietokantaan Tabellassa olevaa dataa.

Tietokannan taulut ja selitteet:

  • chart_of_accounts = Tilikartta ja raportit

  • chart_of_accounts_calc = Jälkilaskenta

  • companies = Yritykset (pl. G_C, _ER tai Palkka-kuutiot)

  • companies_dimension_details

  • companies_dimensions = Mitä dimensioita yrityksellä on käytössä eli relaatiot yritysten ja dimensioiden välilllä.

  • companies_transactions = Tapahtumat

  • dimensions = Dimensioiden koodit ja hierarkiat (= rakenteet ja ryhmittelyt)

  • form_data = Lomakkeet, jos käytössä.

  • groups = Käyttäjäryhmät

  • log = Export lokia

  • preferences = Yleisiä Tabellan määrittelyjä mm. aktiivinen kausi

  • saldos = Toteumat, budjetit ja ennusteet

  • users = Käyttäjät

Tabella Web Service -rajapinta

Tabella Web Service -ohjelmistorajapinta mahdollistaa Tabellassa olevan tiedon lukemisen. Rajapinta toimii yksisuuntaisesti eli dataa pystyy ainoastaan lukemaan eikä kirjoittamaan. Web Service toimii Rest (Representational State Transfer) arkkitehtuurin tavoin, joka rakentuu HTTP-protokollan päälle. Palvelimen vastaukset annetaan JSON-formaatissa.

Käyttäjän todentamiseen (authentication) käytetään JSON Webkit Token (JWT). Tässä todentamisessa ohjelmisto lähettää kirjautumistunnukset HTTP-POST methodilla kohde palvelimeen JSON-formaatissa. Onnistuneen todennuksen jälkeen palvelin palauttaa käyttöavaimen (access_token). Käyttöavaimen vanhenemisaika on 15 minuuttia, jonka aikana käyttöavainta hyväksikäyttäen voidaan tehdä pyyntöjä rajapintaa vasten. Kun vanhenemisaika on päättynyt, niin käyttöavain mitätöityy ja rajapinta vaatii uudestaan todennusta.

Rajapinnan käytöstä voi lukea lisää OpenAPI 3.0 muotoisesta dokumentaatiosta: https://app.swaggerhub.com/apis/tabella/Tabella-Rest-API

Muista

Toimintona vain Tabella Cloud ympäristössä.

Curl esimerkkiohjelma

$ curl -H "Content-Type: application/json" -X POST -d '{"username":"test-user","password":"test-pass"}' https://api.tabella.fi/v1/auth/login
<< {"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODk2NTQ2NTUsIm5iZiI6MTU4OTY1NDY1NSwianRpIjoiNzBlZTE0ZGItNDQ2OS00YmI0LWI5N2QtNzhiMDdhYzM5YTljIiwiZXhwIjoxNTg5NjU1NTU1LCJpZGVudGl0eSI6InRlc3QiLCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.op_3aIFXRZyYjfdWf-qvUPFfwAlqWQBpAyuSpS6gdJQ"}
$ export ACCESS="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODk2NTQ2NTUsIm5iZiI6MTU4OTY1NDY1NSwianRpIjoiNzBlZTE0ZGItNDQ2OS00YmI0LWI5N2QtNzhiMDdhYzM5YTljIiwiZXhwIjoxNTg5NjU1NTU1LCJpZGVudGl0eSI6InRlc3QiLCJmcmVzaCI6ZmFsc2UsInR5cGUiOiJhY2Nlc3MifQ.op_3aIFXRZyYjfdWf-qvUPFfwAlqWQBpAyuSpS6gdJQ"
$ curl -H "Authorization: Bearer $ACCESS" https://api.tabella.fi/v1/stats
<< {"logged_in_as":"test-user"}
$ curl -H "Authorization: Bearer $ACCESS" https://api.tabella.fi/v1/tenantlist
<< {"tenants": ...

Python esimerkkiohjelma

 1import requests
 2import json
 3from pprint import pprint
 4
 5def auth():
 6    login = requests.post('https://api.tabella.fi/v1/auth/login', json = {"username":"test-user","password":"test-pass"})
 7    r = json.loads(login.text)
 8    return r["access_token"]
 9
10def stats(access_token):
11    r = requests.get('https://api.tabella.fi/v1/stats', headers={'Authorization': 'Bearer '+access_token})
12    return json.loads(r.text)
13
14def tenantlist(access_token):
15    r = requests.get('https://api.tabella.fi/v1/tenantlist', headers={'Authorization': 'Bearer '+access_token})
16    return json.loads(r.text)
17
18access_token = auth() # Authentication
19
20stats = stats(access_token) # Get stats
21pprint(stats)
22
23tenantlist = tenantlist(access_token)
24pprint(tenantlist)