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