Import av data till Expense med API-koppling

För att automatisera registerunderhåll för Expense kunder, (exempelvis personregister, projekt o andra interna register) finns olika lösningar. Nedan beskrivs alternativet API-koppling via JSON. Ett alternativ att importera data till Expense är med XML-filer som importeras enligt schemalagd rutin. Alternativen skiljer sig i implementering för både er som kund och oss som mottagande system. Om detta är av intresse, kontakta support för mer information.

Expense API-koppling

Detta alternativ innebär att ni publicerar er data (exempelvis interna konton som projekt) via en JSON-baserad ”REST”-API vilket möjliggör att Expense har tillgång till exempelvis projekten i realtid, det vill säga att direkt när ett projekt lagts upp i grundsystemet, syns det som ett sökbart alternativ direkt vid konteringen i Expense. Support på Expense öppnar upp för det externa API:et med en intern inställning. För att sätta upp en koppling till ett externt API behöver ni skapa ett API som returnerar JSON (https://en.wikipedia.org/wiki/JSON). Resultatet ska returneras som en lista med dimensioner, det ska finnas med fält för kod och beskrivning, se exempel under rubriken exempel. Om det ska vara möjligt att söka bland projekten så behöver ert API klara av att ta emot en söksträng i URL:en som sedan filtrerar resultatet.

Beskrivning inställningar i Expense, Administrera/Interna konton/aktuell dimension

När man valt externt API som inmatningstyp, dyker det upp ett antal inställningar. Här följer en beskrivning utav dessa inställningar.

API Url

Här fyller man i URL:en till ert API. Här kan ni använda er av variabeln <%search%>, <%search%> kommer bytas ut mot det man söker på när man väljer dimension och då ska ert API returnera ett urval baserat på sökningen. Var ni väljer att lägga denna variabel varierar beroende på hur ni valt att skriva ert API. Men förslagsvis så gör man något liknande det här: https://exempelkund.com/project?s=<%search%>

Envelope

Om ni väljer att returnera resultatet i ett så kallat envelope så anger ni namnet på det. Se skillnad mellan de olika sätten under rubriken exempel. Om inget envelope används så kan detta fält lämnas tomt. I exemplet med envelope så skulle projects angetts.

Param för kod

Här fyller man i vad man valt att döpa fältet för kod till. I exemplet nedan skulle projectCode angetts.

Param för beskrivning

Här fyller man i vad man valt att döpa fältet för beskrivning till. I exemplet nedanskulle description angetts.

Exempel

Exempelsvar utan envelope:

HEADER: Content-Type: application/json; charset=utf-8 (default är ISO-8859-1 om charset inte anges)

BODY:

{"projectCode":"1234","description":"Exempelprojekt"}, {"projectCode":"6789","description":"Ytterligare ett projekt"}

Exempelsvar med envelope:

HEADER: Content-Type: application/json; charset=utf-8 (default är ISO-8859-1 om charset inte anges)

BODY:

projects:

{"projectCode":"1234","description":"Exempelprojekt"}, {"projectCode":"6789","description":"Ytterligare ett projekt"}

]

Säkerhet

I dagsläget har Expense inte stöd för någon form av sessionsbaserad autentisering. Vi rekommenderar istället att API:et använder HTTPS, låses till att bara ta emot anslutningar från vår IP-adress samt för extra säkerhet använder någon form av token i URL:en.