Ohjelmistorajapinta¶
Ulkoisten sovellusten integrointi Tabellaan voidaan toteuttaa kolmella eri tavalla, jotka mahdollistavat Tabellan tallentamien tietojen lukemisen.
Tabella SQL Export
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)